cribl-control-plane 0.2.1rc1__py3-none-any.whl → 0.2.1rc2__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.

Potentially problematic release.


This version of cribl-control-plane might be problematic. Click here for more details.

Files changed (32) hide show
  1. cribl_control_plane/_version.py +3 -3
  2. cribl_control_plane/errors/__init__.py +8 -5
  3. cribl_control_plane/errors/{healthstatus_error.py → healthserverstatus_error.py} +10 -9
  4. cribl_control_plane/groups_sdk.py +48 -27
  5. cribl_control_plane/health.py +22 -16
  6. cribl_control_plane/models/__init__.py +47 -156
  7. cribl_control_plane/models/authtoken.py +4 -7
  8. cribl_control_plane/models/configgroup.py +8 -7
  9. cribl_control_plane/models/createconfiggroupbyproductop.py +6 -5
  10. cribl_control_plane/models/createroutesappendbyidop.py +2 -2
  11. cribl_control_plane/models/deleteoutputpqbyidop.py +2 -2
  12. cribl_control_plane/models/groupcreaterequest.py +152 -0
  13. cribl_control_plane/models/{healthstatus.py → healthserverstatus.py} +7 -7
  14. cribl_control_plane/models/logininfo.py +3 -3
  15. cribl_control_plane/models/pipeline.py +4 -4
  16. cribl_control_plane/pipelines.py +8 -8
  17. cribl_control_plane/routes_sdk.py +6 -6
  18. cribl_control_plane/tokens.py +23 -15
  19. {cribl_control_plane-0.2.1rc1.dist-info → cribl_control_plane-0.2.1rc2.dist-info}/METADATA +4 -13
  20. {cribl_control_plane-0.2.1rc1.dist-info → cribl_control_plane-0.2.1rc2.dist-info}/RECORD +21 -31
  21. cribl_control_plane/mappings.py +0 -1185
  22. cribl_control_plane/models/createadminproductsmappingsactivatebyproductop.py +0 -52
  23. cribl_control_plane/models/createadminproductsmappingsbyproductop.py +0 -53
  24. cribl_control_plane/models/deleteadminproductsmappingsbyproductandidop.py +0 -51
  25. cribl_control_plane/models/error.py +0 -16
  26. cribl_control_plane/models/getadminproductsmappingsbyproductandidop.py +0 -51
  27. cribl_control_plane/models/getadminproductsmappingsbyproductop.py +0 -44
  28. cribl_control_plane/models/gethealthinfoop.py +0 -17
  29. cribl_control_plane/models/mappingruleset.py +0 -95
  30. cribl_control_plane/models/rulesetid.py +0 -13
  31. cribl_control_plane/models/updateadminproductsmappingsbyproductandidop.py +0 -63
  32. {cribl_control_plane-0.2.1rc1.dist-info → cribl_control_plane-0.2.1rc2.dist-info}/WHEEL +0 -0
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "cribl-control-plane"
6
- __version__: str = "0.2.1rc1"
7
- __openapi_doc_version__: str = "4.15.0-alpha.1761420802292-a60a4283"
6
+ __version__: str = "0.2.1rc2"
7
+ __openapi_doc_version__: str = "4.15.0-alpha.1761606328595-4d5d0f38"
8
8
  __gen_version__: str = "2.730.5"
9
- __user_agent__: str = "speakeasy-sdk/python 0.2.1rc1 2.730.5 4.15.0-alpha.1761420802292-a60a4283 cribl-control-plane"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.2.1rc2 2.730.5 4.15.0-alpha.1761606328595-4d5d0f38 cribl-control-plane"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
@@ -9,7 +9,10 @@ import sys
9
9
  if TYPE_CHECKING:
10
10
  from .apierror import APIError
11
11
  from .error import Error, ErrorData
12
- from .healthstatus_error import HealthStatusError, HealthStatusErrorData
12
+ from .healthserverstatus_error import (
13
+ HealthServerStatusError,
14
+ HealthServerStatusErrorData,
15
+ )
13
16
  from .no_response_error import NoResponseError
14
17
  from .responsevalidationerror import ResponseValidationError
15
18
 
@@ -18,8 +21,8 @@ __all__ = [
18
21
  "CriblControlPlaneError",
19
22
  "Error",
20
23
  "ErrorData",
21
- "HealthStatusError",
22
- "HealthStatusErrorData",
24
+ "HealthServerStatusError",
25
+ "HealthServerStatusErrorData",
23
26
  "NoResponseError",
24
27
  "ResponseValidationError",
25
28
  ]
@@ -28,8 +31,8 @@ _dynamic_imports: dict[str, str] = {
28
31
  "APIError": ".apierror",
29
32
  "Error": ".error",
30
33
  "ErrorData": ".error",
31
- "HealthStatusError": ".healthstatus_error",
32
- "HealthStatusErrorData": ".healthstatus_error",
34
+ "HealthServerStatusError": ".healthserverstatus_error",
35
+ "HealthServerStatusErrorData": ".healthserverstatus_error",
33
36
  "NoResponseError": ".no_response_error",
34
37
  "ResponseValidationError": ".responsevalidationerror",
35
38
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
  from cribl_control_plane.errors import CriblControlPlaneError
5
- from cribl_control_plane.models import healthstatus as models_healthstatus
5
+ from cribl_control_plane.models import healthserverstatus as models_healthserverstatus
6
6
  from cribl_control_plane.types import BaseModel
7
7
  from cribl_control_plane.utils import validate_open_enum
8
8
  from dataclasses import dataclass, field
@@ -13,25 +13,26 @@ from typing import Optional
13
13
  from typing_extensions import Annotated
14
14
 
15
15
 
16
- class HealthStatusErrorData(BaseModel):
16
+ class HealthServerStatusErrorData(BaseModel):
17
+ start_time: Annotated[float, pydantic.Field(alias="startTime")]
18
+
17
19
  status: Annotated[
18
- models_healthstatus.Status, PlainValidator(validate_open_enum(False))
20
+ models_healthserverstatus.Status, PlainValidator(validate_open_enum(False))
19
21
  ]
20
22
 
21
- start_time: Annotated[float, pydantic.Field(alias="startTime")]
22
-
23
23
  role: Annotated[
24
- Optional[models_healthstatus.Role], PlainValidator(validate_open_enum(False))
24
+ Optional[models_healthserverstatus.Role],
25
+ PlainValidator(validate_open_enum(False)),
25
26
  ] = None
26
27
 
27
28
 
28
29
  @dataclass(unsafe_hash=True)
29
- class HealthStatusError(CriblControlPlaneError):
30
- data: HealthStatusErrorData = field(hash=False)
30
+ class HealthServerStatusError(CriblControlPlaneError):
31
+ data: HealthServerStatusErrorData = field(hash=False)
31
32
 
32
33
  def __init__(
33
34
  self,
34
- data: HealthStatusErrorData,
35
+ data: HealthServerStatusErrorData,
35
36
  raw_response: httpx.Response,
36
37
  body: Optional[str] = None,
37
38
  ):
@@ -6,7 +6,6 @@ from cribl_control_plane import errors, models, utils
6
6
  from cribl_control_plane._hooks import HookContext
7
7
  from cribl_control_plane.acl import ACL
8
8
  from cribl_control_plane.groups_configs import GroupsConfigs
9
- from cribl_control_plane.mappings import Mappings
10
9
  from cribl_control_plane.types import OptionalNullable, UNSET
11
10
  from cribl_control_plane.utils import get_security_from_env
12
11
  from cribl_control_plane.utils.unmarshal_json_response import unmarshal_json_response
@@ -16,7 +15,6 @@ from typing import Any, List, Mapping, Optional, Union
16
15
  class GroupsSDK(BaseSDK):
17
16
  r"""Actions related to Groups"""
18
17
 
19
- mappings: Mappings
20
18
  configs: GroupsConfigs
21
19
  acl: ACL
22
20
 
@@ -28,7 +26,6 @@ class GroupsSDK(BaseSDK):
28
26
  self._init_sdks()
29
27
 
30
28
  def _init_sdks(self):
31
- self.mappings = Mappings(self.sdk_configuration, parent_ref=self.parent_ref)
32
29
  self.configs = GroupsConfigs(self.sdk_configuration, parent_ref=self.parent_ref)
33
30
  self.acl = ACL(self.sdk_configuration, parent_ref=self.parent_ref)
34
31
 
@@ -224,11 +221,14 @@ class GroupsSDK(BaseSDK):
224
221
  cloud: Optional[
225
222
  Union[models.ConfigGroupCloud, models.ConfigGroupCloudTypedDict]
226
223
  ] = None,
227
- config_version: Optional[str] = None,
228
224
  deploying_worker_count: Optional[float] = None,
229
225
  description: Optional[str] = None,
230
- estimated_ingest_rate: Optional[models.EstimatedIngestRate] = None,
231
- git: Optional[Union[models.Git, models.GitTypedDict]] = None,
226
+ estimated_ingest_rate: Optional[
227
+ models.GroupCreateRequestEstimatedIngestRate
228
+ ] = None,
229
+ git: Optional[
230
+ Union[models.GroupCreateRequestGit, models.GroupCreateRequestGitTypedDict]
231
+ ] = None,
232
232
  incompatible_worker_count: Optional[float] = None,
233
233
  inherits: Optional[str] = None,
234
234
  is_fleet: Optional[bool] = None,
@@ -243,9 +243,10 @@ class GroupsSDK(BaseSDK):
243
243
  name: Optional[str] = None,
244
244
  on_prem: Optional[bool] = None,
245
245
  provisioned: Optional[bool] = None,
246
+ source_group_id: Optional[str] = None,
246
247
  streamtags: Optional[List[str]] = None,
247
248
  tags: Optional[str] = None,
248
- type_: Optional[models.ConfigGroupType] = None,
249
+ type_: Optional[models.GroupCreateRequestType] = None,
249
250
  upgrade_version: Optional[str] = None,
250
251
  worker_count: Optional[float] = None,
251
252
  worker_remote_access: Optional[bool] = None,
@@ -261,7 +262,6 @@ class GroupsSDK(BaseSDK):
261
262
  :param product: Name of the Cribl product to add the Worker Group or Edge Fleet to.
262
263
  :param id:
263
264
  :param cloud:
264
- :param config_version:
265
265
  :param deploying_worker_count:
266
266
  :param description:
267
267
  :param estimated_ingest_rate: Maximum expected volume of data ingested by the @{group}. (This setting is available only on @{group}s consisting of Cribl-managed Cribl.Cloud @{node}s.)
@@ -275,6 +275,7 @@ class GroupsSDK(BaseSDK):
275
275
  :param name:
276
276
  :param on_prem:
277
277
  :param provisioned:
278
+ :param source_group_id:
278
279
  :param streamtags:
279
280
  :param tags:
280
281
  :param type:
@@ -298,15 +299,16 @@ class GroupsSDK(BaseSDK):
298
299
 
299
300
  request = models.CreateConfigGroupByProductRequest(
300
301
  product=product,
301
- config_group=models.ConfigGroup(
302
+ group_create_request=models.GroupCreateRequest(
302
303
  cloud=utils.get_pydantic_model(
303
304
  cloud, Optional[models.ConfigGroupCloud]
304
305
  ),
305
- config_version=config_version,
306
306
  deploying_worker_count=deploying_worker_count,
307
307
  description=description,
308
308
  estimated_ingest_rate=estimated_ingest_rate,
309
- git=utils.get_pydantic_model(git, Optional[models.Git]),
309
+ git=utils.get_pydantic_model(
310
+ git, Optional[models.GroupCreateRequestGit]
311
+ ),
310
312
  id=id,
311
313
  incompatible_worker_count=incompatible_worker_count,
312
314
  inherits=inherits,
@@ -319,6 +321,7 @@ class GroupsSDK(BaseSDK):
319
321
  name=name,
320
322
  on_prem=on_prem,
321
323
  provisioned=provisioned,
324
+ source_group_id=source_group_id,
322
325
  streamtags=streamtags,
323
326
  tags=tags,
324
327
  type=type_,
@@ -342,7 +345,11 @@ class GroupsSDK(BaseSDK):
342
345
  http_headers=http_headers,
343
346
  security=self.sdk_configuration.security,
344
347
  get_serialized_body=lambda: utils.serialize_request_body(
345
- request.config_group, False, False, "json", models.ConfigGroup
348
+ request.group_create_request,
349
+ False,
350
+ False,
351
+ "json",
352
+ models.GroupCreateRequest,
346
353
  ),
347
354
  timeout_ms=timeout_ms,
348
355
  )
@@ -395,11 +402,14 @@ class GroupsSDK(BaseSDK):
395
402
  cloud: Optional[
396
403
  Union[models.ConfigGroupCloud, models.ConfigGroupCloudTypedDict]
397
404
  ] = None,
398
- config_version: Optional[str] = None,
399
405
  deploying_worker_count: Optional[float] = None,
400
406
  description: Optional[str] = None,
401
- estimated_ingest_rate: Optional[models.EstimatedIngestRate] = None,
402
- git: Optional[Union[models.Git, models.GitTypedDict]] = None,
407
+ estimated_ingest_rate: Optional[
408
+ models.GroupCreateRequestEstimatedIngestRate
409
+ ] = None,
410
+ git: Optional[
411
+ Union[models.GroupCreateRequestGit, models.GroupCreateRequestGitTypedDict]
412
+ ] = None,
403
413
  incompatible_worker_count: Optional[float] = None,
404
414
  inherits: Optional[str] = None,
405
415
  is_fleet: Optional[bool] = None,
@@ -414,9 +424,10 @@ class GroupsSDK(BaseSDK):
414
424
  name: Optional[str] = None,
415
425
  on_prem: Optional[bool] = None,
416
426
  provisioned: Optional[bool] = None,
427
+ source_group_id: Optional[str] = None,
417
428
  streamtags: Optional[List[str]] = None,
418
429
  tags: Optional[str] = None,
419
- type_: Optional[models.ConfigGroupType] = None,
430
+ type_: Optional[models.GroupCreateRequestType] = None,
420
431
  upgrade_version: Optional[str] = None,
421
432
  worker_count: Optional[float] = None,
422
433
  worker_remote_access: Optional[bool] = None,
@@ -432,7 +443,6 @@ class GroupsSDK(BaseSDK):
432
443
  :param product: Name of the Cribl product to add the Worker Group or Edge Fleet to.
433
444
  :param id:
434
445
  :param cloud:
435
- :param config_version:
436
446
  :param deploying_worker_count:
437
447
  :param description:
438
448
  :param estimated_ingest_rate: Maximum expected volume of data ingested by the @{group}. (This setting is available only on @{group}s consisting of Cribl-managed Cribl.Cloud @{node}s.)
@@ -446,6 +456,7 @@ class GroupsSDK(BaseSDK):
446
456
  :param name:
447
457
  :param on_prem:
448
458
  :param provisioned:
459
+ :param source_group_id:
449
460
  :param streamtags:
450
461
  :param tags:
451
462
  :param type:
@@ -469,15 +480,16 @@ class GroupsSDK(BaseSDK):
469
480
 
470
481
  request = models.CreateConfigGroupByProductRequest(
471
482
  product=product,
472
- config_group=models.ConfigGroup(
483
+ group_create_request=models.GroupCreateRequest(
473
484
  cloud=utils.get_pydantic_model(
474
485
  cloud, Optional[models.ConfigGroupCloud]
475
486
  ),
476
- config_version=config_version,
477
487
  deploying_worker_count=deploying_worker_count,
478
488
  description=description,
479
489
  estimated_ingest_rate=estimated_ingest_rate,
480
- git=utils.get_pydantic_model(git, Optional[models.Git]),
490
+ git=utils.get_pydantic_model(
491
+ git, Optional[models.GroupCreateRequestGit]
492
+ ),
481
493
  id=id,
482
494
  incompatible_worker_count=incompatible_worker_count,
483
495
  inherits=inherits,
@@ -490,6 +502,7 @@ class GroupsSDK(BaseSDK):
490
502
  name=name,
491
503
  on_prem=on_prem,
492
504
  provisioned=provisioned,
505
+ source_group_id=source_group_id,
493
506
  streamtags=streamtags,
494
507
  tags=tags,
495
508
  type=type_,
@@ -513,7 +526,11 @@ class GroupsSDK(BaseSDK):
513
526
  http_headers=http_headers,
514
527
  security=self.sdk_configuration.security,
515
528
  get_serialized_body=lambda: utils.serialize_request_body(
516
- request.config_group, False, False, "json", models.ConfigGroup
529
+ request.group_create_request,
530
+ False,
531
+ False,
532
+ "json",
533
+ models.GroupCreateRequest,
517
534
  ),
518
535
  timeout_ms=timeout_ms,
519
536
  )
@@ -760,8 +777,10 @@ class GroupsSDK(BaseSDK):
760
777
  config_version: Optional[str] = None,
761
778
  deploying_worker_count: Optional[float] = None,
762
779
  description: Optional[str] = None,
763
- estimated_ingest_rate: Optional[models.EstimatedIngestRate] = None,
764
- git: Optional[Union[models.Git, models.GitTypedDict]] = None,
780
+ estimated_ingest_rate: Optional[models.ConfigGroupEstimatedIngestRate] = None,
781
+ git: Optional[
782
+ Union[models.ConfigGroupGit, models.ConfigGroupGitTypedDict]
783
+ ] = None,
765
784
  incompatible_worker_count: Optional[float] = None,
766
785
  inherits: Optional[str] = None,
767
786
  is_fleet: Optional[bool] = None,
@@ -841,7 +860,7 @@ class GroupsSDK(BaseSDK):
841
860
  deploying_worker_count=deploying_worker_count,
842
861
  description=description,
843
862
  estimated_ingest_rate=estimated_ingest_rate,
844
- git=utils.get_pydantic_model(git, Optional[models.Git]),
863
+ git=utils.get_pydantic_model(git, Optional[models.ConfigGroupGit]),
845
864
  id=id,
846
865
  incompatible_worker_count=incompatible_worker_count,
847
866
  inherits=inherits,
@@ -934,8 +953,10 @@ class GroupsSDK(BaseSDK):
934
953
  config_version: Optional[str] = None,
935
954
  deploying_worker_count: Optional[float] = None,
936
955
  description: Optional[str] = None,
937
- estimated_ingest_rate: Optional[models.EstimatedIngestRate] = None,
938
- git: Optional[Union[models.Git, models.GitTypedDict]] = None,
956
+ estimated_ingest_rate: Optional[models.ConfigGroupEstimatedIngestRate] = None,
957
+ git: Optional[
958
+ Union[models.ConfigGroupGit, models.ConfigGroupGitTypedDict]
959
+ ] = None,
939
960
  incompatible_worker_count: Optional[float] = None,
940
961
  inherits: Optional[str] = None,
941
962
  is_fleet: Optional[bool] = None,
@@ -1015,7 +1036,7 @@ class GroupsSDK(BaseSDK):
1015
1036
  deploying_worker_count=deploying_worker_count,
1016
1037
  description=description,
1017
1038
  estimated_ingest_rate=estimated_ingest_rate,
1018
- git=utils.get_pydantic_model(git, Optional[models.Git]),
1039
+ git=utils.get_pydantic_model(git, Optional[models.ConfigGroupGit]),
1019
1040
  id=id,
1020
1041
  incompatible_worker_count=incompatible_worker_count,
1021
1042
  inherits=inherits,
@@ -18,9 +18,11 @@ class Health(BaseSDK):
18
18
  server_url: Optional[str] = None,
19
19
  timeout_ms: Optional[int] = None,
20
20
  http_headers: Optional[Mapping[str, str]] = None,
21
- ) -> models.GetHealthInfoResponse:
21
+ ) -> models.HealthServerStatus:
22
22
  r"""Retrieve health status of the server
23
23
 
24
+ Get the current health status of the server.
25
+
24
26
  :param retries: Override the default retry configuration for this method
25
27
  :param server_url: Override the default server URL for this method
26
28
  :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -62,31 +64,32 @@ class Health(BaseSDK):
62
64
  hook_ctx=HookContext(
63
65
  config=self.sdk_configuration,
64
66
  base_url=base_url or "",
65
- operation_id="getHealthInfo",
67
+ operation_id="getHealth",
66
68
  oauth2_scopes=[],
67
69
  security_source=None,
68
70
  ),
69
71
  request=req,
70
- error_status_codes=["420", "4XX", "5XX"],
72
+ error_status_codes=["420", "4XX", "500", "5XX"],
71
73
  retry_config=retry_config,
72
74
  )
73
75
 
74
76
  response_data: Any = None
75
77
  if utils.match_response(http_res, "200", "application/json"):
76
- return unmarshal_json_response(models.HealthStatus, http_res)
78
+ return unmarshal_json_response(models.HealthServerStatus, http_res)
77
79
  if utils.match_response(http_res, "420", "application/json"):
78
80
  response_data = unmarshal_json_response(
79
- errors.HealthStatusErrorData, http_res
81
+ errors.HealthServerStatusErrorData, http_res
80
82
  )
81
- raise errors.HealthStatusError(response_data, http_res)
83
+ raise errors.HealthServerStatusError(response_data, http_res)
84
+ if utils.match_response(http_res, "500", "application/json"):
85
+ response_data = unmarshal_json_response(errors.ErrorData, http_res)
86
+ raise errors.Error(response_data, http_res)
82
87
  if utils.match_response(http_res, "4XX", "*"):
83
88
  http_res_text = utils.stream_to_text(http_res)
84
89
  raise errors.APIError("API error occurred", http_res, http_res_text)
85
90
  if utils.match_response(http_res, "5XX", "*"):
86
91
  http_res_text = utils.stream_to_text(http_res)
87
92
  raise errors.APIError("API error occurred", http_res, http_res_text)
88
- if utils.match_response(http_res, "default", "application/json"):
89
- return unmarshal_json_response(models.Error, http_res)
90
93
 
91
94
  raise errors.APIError("Unexpected response received", http_res)
92
95
 
@@ -97,9 +100,11 @@ class Health(BaseSDK):
97
100
  server_url: Optional[str] = None,
98
101
  timeout_ms: Optional[int] = None,
99
102
  http_headers: Optional[Mapping[str, str]] = None,
100
- ) -> models.GetHealthInfoResponse:
103
+ ) -> models.HealthServerStatus:
101
104
  r"""Retrieve health status of the server
102
105
 
106
+ Get the current health status of the server.
107
+
103
108
  :param retries: Override the default retry configuration for this method
104
109
  :param server_url: Override the default server URL for this method
105
110
  :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -141,30 +146,31 @@ class Health(BaseSDK):
141
146
  hook_ctx=HookContext(
142
147
  config=self.sdk_configuration,
143
148
  base_url=base_url or "",
144
- operation_id="getHealthInfo",
149
+ operation_id="getHealth",
145
150
  oauth2_scopes=[],
146
151
  security_source=None,
147
152
  ),
148
153
  request=req,
149
- error_status_codes=["420", "4XX", "5XX"],
154
+ error_status_codes=["420", "4XX", "500", "5XX"],
150
155
  retry_config=retry_config,
151
156
  )
152
157
 
153
158
  response_data: Any = None
154
159
  if utils.match_response(http_res, "200", "application/json"):
155
- return unmarshal_json_response(models.HealthStatus, http_res)
160
+ return unmarshal_json_response(models.HealthServerStatus, http_res)
156
161
  if utils.match_response(http_res, "420", "application/json"):
157
162
  response_data = unmarshal_json_response(
158
- errors.HealthStatusErrorData, http_res
163
+ errors.HealthServerStatusErrorData, http_res
159
164
  )
160
- raise errors.HealthStatusError(response_data, http_res)
165
+ raise errors.HealthServerStatusError(response_data, http_res)
166
+ if utils.match_response(http_res, "500", "application/json"):
167
+ response_data = unmarshal_json_response(errors.ErrorData, http_res)
168
+ raise errors.Error(response_data, http_res)
161
169
  if utils.match_response(http_res, "4XX", "*"):
162
170
  http_res_text = await utils.stream_to_text_async(http_res)
163
171
  raise errors.APIError("API error occurred", http_res, http_res_text)
164
172
  if utils.match_response(http_res, "5XX", "*"):
165
173
  http_res_text = await utils.stream_to_text_async(http_res)
166
174
  raise errors.APIError("API error occurred", http_res, http_res_text)
167
- if utils.match_response(http_res, "default", "application/json"):
168
- return unmarshal_json_response(models.Error, http_res)
169
175
 
170
176
  raise errors.APIError("Unexpected response received", http_res)