cribl-control-plane 0.2.1rc11__py3-none-any.whl → 0.4.0a6__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 (128) hide show
  1. cribl_control_plane/_version.py +4 -4
  2. cribl_control_plane/acl.py +4 -4
  3. cribl_control_plane/branches.py +4 -4
  4. cribl_control_plane/commits.py +28 -28
  5. cribl_control_plane/commits_files.py +8 -8
  6. cribl_control_plane/configs_versions.py +8 -4
  7. cribl_control_plane/destinations.py +20 -20
  8. cribl_control_plane/destinations_pq.py +8 -8
  9. cribl_control_plane/groups_sdk.py +48 -24
  10. cribl_control_plane/hectokens.py +16 -8
  11. cribl_control_plane/lakedatasets.py +40 -20
  12. cribl_control_plane/models/__init__.py +568 -214
  13. cribl_control_plane/models/createconfiggroupbyproductop.py +20 -1
  14. cribl_control_plane/models/createcribllakedatasetbylakeidop.py +19 -1
  15. cribl_control_plane/models/createinputhectokenbyidop.py +20 -1
  16. cribl_control_plane/models/{countedlistgitdiffresult.py → createinputop.py} +9 -5
  17. cribl_control_plane/models/{countedlistgitshowresult.py → createoutputop.py} +9 -5
  18. cribl_control_plane/models/createoutputtestbyidop.py +20 -1
  19. cribl_control_plane/models/{countedlistpackinstallinfo.py → createpacksop.py} +6 -2
  20. cribl_control_plane/models/createpipelineop.py +24 -0
  21. cribl_control_plane/models/createroutesappendbyidop.py +20 -2
  22. cribl_control_plane/models/createversioncommitop.py +19 -1
  23. cribl_control_plane/models/{countedliststring.py → createversionpushop.py} +6 -2
  24. cribl_control_plane/models/createversionrevertop.py +19 -1
  25. cribl_control_plane/models/createversionundoop.py +18 -1
  26. cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +20 -1
  27. cribl_control_plane/models/deletecribllakedatasetbylakeidandidop.py +20 -1
  28. cribl_control_plane/models/deleteinputbyidop.py +20 -1
  29. cribl_control_plane/models/deleteoutputbyidop.py +20 -1
  30. cribl_control_plane/models/deleteoutputpqbyidop.py +19 -1
  31. cribl_control_plane/models/deletepacksbyidop.py +20 -1
  32. cribl_control_plane/models/deletepipelinebyidop.py +20 -1
  33. cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +19 -1
  34. cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +19 -1
  35. cribl_control_plane/models/getconfiggroupbyproductandidop.py +19 -1
  36. cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +19 -1
  37. cribl_control_plane/models/getcribllakedatasetbylakeidandidop.py +20 -1
  38. cribl_control_plane/models/getcribllakedatasetbylakeidop.py +20 -1
  39. cribl_control_plane/models/getinputbyidop.py +20 -1
  40. cribl_control_plane/models/getmasterworkerentryop.py +18 -1
  41. cribl_control_plane/models/getoutputbyidop.py +20 -1
  42. cribl_control_plane/models/getoutputpqbyidop.py +20 -1
  43. cribl_control_plane/models/getoutputsamplesbyidop.py +20 -1
  44. cribl_control_plane/models/getpacksbyidop.py +20 -1
  45. cribl_control_plane/models/getpacksop.py +19 -1
  46. cribl_control_plane/models/getpipelinebyidop.py +20 -1
  47. cribl_control_plane/models/getroutesbyidop.py +20 -1
  48. cribl_control_plane/models/getsummaryop.py +19 -1
  49. cribl_control_plane/models/{countedlistbranchinfo.py → getversionbranchop.py} +6 -2
  50. cribl_control_plane/models/getversioncountop.py +19 -1
  51. cribl_control_plane/models/getversiondiffop.py +19 -1
  52. cribl_control_plane/models/getversionfilesop.py +19 -1
  53. cribl_control_plane/models/{countedlistgitinfo.py → getversioninfoop.py} +6 -2
  54. cribl_control_plane/models/getversionop.py +19 -1
  55. cribl_control_plane/models/getversionshowop.py +19 -1
  56. cribl_control_plane/models/getversionstatusop.py +19 -1
  57. cribl_control_plane/models/input.py +18 -15
  58. cribl_control_plane/models/inputcloudflarehec.py +513 -0
  59. cribl_control_plane/models/inputfile.py +7 -0
  60. cribl_control_plane/models/listconfiggroupbyproductop.py +19 -1
  61. cribl_control_plane/models/{countedlistinput.py → listinputop.py} +6 -2
  62. cribl_control_plane/models/listmasterworkerentryop.py +19 -1
  63. cribl_control_plane/models/{countedlistoutput.py → listoutputop.py} +6 -2
  64. cribl_control_plane/models/{countedlistpipeline.py → listpipelineop.py} +6 -2
  65. cribl_control_plane/models/{countedlistroutes.py → listroutesop.py} +6 -2
  66. cribl_control_plane/models/output.py +23 -17
  67. cribl_control_plane/models/outputazureblob.py +14 -0
  68. cribl_control_plane/models/outputazuredataexplorer.py +7 -0
  69. cribl_control_plane/models/outputchronicle.py +5 -0
  70. cribl_control_plane/models/outputcloudflarer2.py +632 -0
  71. cribl_control_plane/models/outputcribllake.py +14 -0
  72. cribl_control_plane/models/outputdatabricks.py +19 -0
  73. cribl_control_plane/models/outputdls3.py +14 -0
  74. cribl_control_plane/models/outputexabeam.py +7 -0
  75. cribl_control_plane/models/outputfilesystem.py +14 -0
  76. cribl_control_plane/models/outputgooglecloudstorage.py +14 -0
  77. cribl_control_plane/models/outputmicrosoftfabric.py +540 -0
  78. cribl_control_plane/models/outputminio.py +19 -4
  79. cribl_control_plane/models/outputs3.py +14 -0
  80. cribl_control_plane/models/outputsecuritylake.py +14 -0
  81. cribl_control_plane/models/outputsyslog.py +7 -0
  82. cribl_control_plane/models/runnablejobcollection.py +0 -8
  83. cribl_control_plane/models/runnablejobexecutor.py +0 -4
  84. cribl_control_plane/models/runnablejobscheduledsearch.py +0 -4
  85. cribl_control_plane/models/updateconfiggroupbyproductandidop.py +19 -1
  86. cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +20 -1
  87. cribl_control_plane/models/updatecribllakedatasetbylakeidandidop.py +20 -1
  88. cribl_control_plane/models/updateinputbyidop.py +19 -1
  89. cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +20 -1
  90. cribl_control_plane/models/updateoutputbyidop.py +19 -1
  91. cribl_control_plane/models/updatepacksbyidop.py +20 -1
  92. cribl_control_plane/models/updatepipelinebyidop.py +19 -1
  93. cribl_control_plane/models/updateroutesbyidop.py +19 -1
  94. cribl_control_plane/nodes.py +12 -8
  95. cribl_control_plane/packs.py +20 -20
  96. cribl_control_plane/pipelines.py +20 -20
  97. cribl_control_plane/routes_sdk.py +20 -16
  98. cribl_control_plane/samples.py +8 -8
  99. cribl_control_plane/sources.py +20 -20
  100. cribl_control_plane/statuses.py +4 -4
  101. cribl_control_plane/summaries.py +4 -8
  102. cribl_control_plane/teams.py +4 -4
  103. cribl_control_plane/utils/retries.py +69 -5
  104. cribl_control_plane/utils/unmarshal_json_response.py +15 -1
  105. cribl_control_plane/versions_configs.py +4 -4
  106. {cribl_control_plane-0.2.1rc11.dist-info → cribl_control_plane-0.4.0a6.dist-info}/METADATA +6 -14
  107. {cribl_control_plane-0.2.1rc11.dist-info → cribl_control_plane-0.4.0a6.dist-info}/RECORD +109 -123
  108. cribl_control_plane-0.4.0a6.dist-info/licenses/LICENSE +201 -0
  109. cribl_control_plane/models/countedlistconfiggroup.py +0 -20
  110. cribl_control_plane/models/countedlistcribllakedataset.py +0 -20
  111. cribl_control_plane/models/countedlistdistributedsummary.py +0 -20
  112. cribl_control_plane/models/countedlistgitcommitsummary.py +0 -20
  113. cribl_control_plane/models/countedlistgitcountresult.py +0 -20
  114. cribl_control_plane/models/countedlistgitfilesresponse.py +0 -20
  115. cribl_control_plane/models/countedlistgitlogresult.py +0 -20
  116. cribl_control_plane/models/countedlistgitrevertresult.py +0 -20
  117. cribl_control_plane/models/countedlistgitstatusresult.py +0 -20
  118. cribl_control_plane/models/countedlistinputsplunkhec.py +0 -20
  119. cribl_control_plane/models/countedlistjobinfo.py +0 -20
  120. cribl_control_plane/models/countedlistmasterworkerentry.py +0 -20
  121. cribl_control_plane/models/countedlistnumber.py +0 -19
  122. cribl_control_plane/models/countedlistobject.py +0 -19
  123. cribl_control_plane/models/countedlistoutputsamplesresponse.py +0 -20
  124. cribl_control_plane/models/countedlistoutputtestresponse.py +0 -20
  125. cribl_control_plane/models/countedlistpackinfo.py +0 -20
  126. cribl_control_plane/models/countedlistteamaccesscontrollist.py +0 -20
  127. cribl_control_plane/models/countedlistuseraccesscontrollist.py +0 -20
  128. {cribl_control_plane-0.2.1rc11.dist-info → cribl_control_plane-0.4.0a6.dist-info}/WHEEL +0 -0
@@ -33,7 +33,7 @@ class Sources(BaseSDK):
33
33
  server_url: Optional[str] = None,
34
34
  timeout_ms: Optional[int] = None,
35
35
  http_headers: Optional[Mapping[str, str]] = None,
36
- ) -> models.CountedListInput:
36
+ ) -> models.ListInputResponse:
37
37
  r"""List all Sources
38
38
 
39
39
  Get a list of all Sources.
@@ -93,7 +93,7 @@ class Sources(BaseSDK):
93
93
 
94
94
  response_data: Any = None
95
95
  if utils.match_response(http_res, "200", "application/json"):
96
- return unmarshal_json_response(models.CountedListInput, http_res)
96
+ return unmarshal_json_response(models.ListInputResponse, http_res)
97
97
  if utils.match_response(http_res, "500", "application/json"):
98
98
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
99
99
  raise errors.Error(response_data, http_res)
@@ -113,7 +113,7 @@ class Sources(BaseSDK):
113
113
  server_url: Optional[str] = None,
114
114
  timeout_ms: Optional[int] = None,
115
115
  http_headers: Optional[Mapping[str, str]] = None,
116
- ) -> models.CountedListInput:
116
+ ) -> models.ListInputResponse:
117
117
  r"""List all Sources
118
118
 
119
119
  Get a list of all Sources.
@@ -173,7 +173,7 @@ class Sources(BaseSDK):
173
173
 
174
174
  response_data: Any = None
175
175
  if utils.match_response(http_res, "200", "application/json"):
176
- return unmarshal_json_response(models.CountedListInput, http_res)
176
+ return unmarshal_json_response(models.ListInputResponse, http_res)
177
177
  if utils.match_response(http_res, "500", "application/json"):
178
178
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
179
179
  raise errors.Error(response_data, http_res)
@@ -194,7 +194,7 @@ class Sources(BaseSDK):
194
194
  server_url: Optional[str] = None,
195
195
  timeout_ms: Optional[int] = None,
196
196
  http_headers: Optional[Mapping[str, str]] = None,
197
- ) -> models.CountedListInput:
197
+ ) -> models.CreateInputResponse:
198
198
  r"""Create a Source
199
199
 
200
200
  Create a new Source.
@@ -263,7 +263,7 @@ class Sources(BaseSDK):
263
263
 
264
264
  response_data: Any = None
265
265
  if utils.match_response(http_res, "200", "application/json"):
266
- return unmarshal_json_response(models.CountedListInput, http_res)
266
+ return unmarshal_json_response(models.CreateInputResponse, http_res)
267
267
  if utils.match_response(http_res, "500", "application/json"):
268
268
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
269
269
  raise errors.Error(response_data, http_res)
@@ -284,7 +284,7 @@ class Sources(BaseSDK):
284
284
  server_url: Optional[str] = None,
285
285
  timeout_ms: Optional[int] = None,
286
286
  http_headers: Optional[Mapping[str, str]] = None,
287
- ) -> models.CountedListInput:
287
+ ) -> models.CreateInputResponse:
288
288
  r"""Create a Source
289
289
 
290
290
  Create a new Source.
@@ -353,7 +353,7 @@ class Sources(BaseSDK):
353
353
 
354
354
  response_data: Any = None
355
355
  if utils.match_response(http_res, "200", "application/json"):
356
- return unmarshal_json_response(models.CountedListInput, http_res)
356
+ return unmarshal_json_response(models.CreateInputResponse, http_res)
357
357
  if utils.match_response(http_res, "500", "application/json"):
358
358
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
359
359
  raise errors.Error(response_data, http_res)
@@ -374,7 +374,7 @@ class Sources(BaseSDK):
374
374
  server_url: Optional[str] = None,
375
375
  timeout_ms: Optional[int] = None,
376
376
  http_headers: Optional[Mapping[str, str]] = None,
377
- ) -> models.CountedListInput:
377
+ ) -> models.GetInputByIDResponse:
378
378
  r"""Get a Source
379
379
 
380
380
  Get the specified Source.
@@ -440,7 +440,7 @@ class Sources(BaseSDK):
440
440
 
441
441
  response_data: Any = None
442
442
  if utils.match_response(http_res, "200", "application/json"):
443
- return unmarshal_json_response(models.CountedListInput, http_res)
443
+ return unmarshal_json_response(models.GetInputByIDResponse, http_res)
444
444
  if utils.match_response(http_res, "500", "application/json"):
445
445
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
446
446
  raise errors.Error(response_data, http_res)
@@ -461,7 +461,7 @@ class Sources(BaseSDK):
461
461
  server_url: Optional[str] = None,
462
462
  timeout_ms: Optional[int] = None,
463
463
  http_headers: Optional[Mapping[str, str]] = None,
464
- ) -> models.CountedListInput:
464
+ ) -> models.GetInputByIDResponse:
465
465
  r"""Get a Source
466
466
 
467
467
  Get the specified Source.
@@ -527,7 +527,7 @@ class Sources(BaseSDK):
527
527
 
528
528
  response_data: Any = None
529
529
  if utils.match_response(http_res, "200", "application/json"):
530
- return unmarshal_json_response(models.CountedListInput, http_res)
530
+ return unmarshal_json_response(models.GetInputByIDResponse, http_res)
531
531
  if utils.match_response(http_res, "500", "application/json"):
532
532
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
533
533
  raise errors.Error(response_data, http_res)
@@ -549,7 +549,7 @@ class Sources(BaseSDK):
549
549
  server_url: Optional[str] = None,
550
550
  timeout_ms: Optional[int] = None,
551
551
  http_headers: Optional[Mapping[str, str]] = None,
552
- ) -> models.CountedListInput:
552
+ ) -> models.UpdateInputByIDResponse:
553
553
  r"""Update a Source
554
554
 
555
555
  Update the specified Source.</br></br>Provide a complete representation of the Source that you want to update in the request body. This endpoint does not support partial updates. Cribl removes any omitted fields when updating the Source.</br></br>Confirm that the configuration in your request body is correct before sending the request. If the configuration is incorrect, the updated Source might not function as expected.
@@ -620,7 +620,7 @@ class Sources(BaseSDK):
620
620
 
621
621
  response_data: Any = None
622
622
  if utils.match_response(http_res, "200", "application/json"):
623
- return unmarshal_json_response(models.CountedListInput, http_res)
623
+ return unmarshal_json_response(models.UpdateInputByIDResponse, http_res)
624
624
  if utils.match_response(http_res, "500", "application/json"):
625
625
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
626
626
  raise errors.Error(response_data, http_res)
@@ -642,7 +642,7 @@ class Sources(BaseSDK):
642
642
  server_url: Optional[str] = None,
643
643
  timeout_ms: Optional[int] = None,
644
644
  http_headers: Optional[Mapping[str, str]] = None,
645
- ) -> models.CountedListInput:
645
+ ) -> models.UpdateInputByIDResponse:
646
646
  r"""Update a Source
647
647
 
648
648
  Update the specified Source.</br></br>Provide a complete representation of the Source that you want to update in the request body. This endpoint does not support partial updates. Cribl removes any omitted fields when updating the Source.</br></br>Confirm that the configuration in your request body is correct before sending the request. If the configuration is incorrect, the updated Source might not function as expected.
@@ -713,7 +713,7 @@ class Sources(BaseSDK):
713
713
 
714
714
  response_data: Any = None
715
715
  if utils.match_response(http_res, "200", "application/json"):
716
- return unmarshal_json_response(models.CountedListInput, http_res)
716
+ return unmarshal_json_response(models.UpdateInputByIDResponse, http_res)
717
717
  if utils.match_response(http_res, "500", "application/json"):
718
718
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
719
719
  raise errors.Error(response_data, http_res)
@@ -734,7 +734,7 @@ class Sources(BaseSDK):
734
734
  server_url: Optional[str] = None,
735
735
  timeout_ms: Optional[int] = None,
736
736
  http_headers: Optional[Mapping[str, str]] = None,
737
- ) -> models.CountedListInput:
737
+ ) -> models.DeleteInputByIDResponse:
738
738
  r"""Delete a Source
739
739
 
740
740
  Delete the specified Source.
@@ -800,7 +800,7 @@ class Sources(BaseSDK):
800
800
 
801
801
  response_data: Any = None
802
802
  if utils.match_response(http_res, "200", "application/json"):
803
- return unmarshal_json_response(models.CountedListInput, http_res)
803
+ return unmarshal_json_response(models.DeleteInputByIDResponse, http_res)
804
804
  if utils.match_response(http_res, "500", "application/json"):
805
805
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
806
806
  raise errors.Error(response_data, http_res)
@@ -821,7 +821,7 @@ class Sources(BaseSDK):
821
821
  server_url: Optional[str] = None,
822
822
  timeout_ms: Optional[int] = None,
823
823
  http_headers: Optional[Mapping[str, str]] = None,
824
- ) -> models.CountedListInput:
824
+ ) -> models.DeleteInputByIDResponse:
825
825
  r"""Delete a Source
826
826
 
827
827
  Delete the specified Source.
@@ -887,7 +887,7 @@ class Sources(BaseSDK):
887
887
 
888
888
  response_data: Any = None
889
889
  if utils.match_response(http_res, "200", "application/json"):
890
- return unmarshal_json_response(models.CountedListInput, http_res)
890
+ return unmarshal_json_response(models.DeleteInputByIDResponse, http_res)
891
891
  if utils.match_response(http_res, "500", "application/json"):
892
892
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
893
893
  raise errors.Error(response_data, http_res)
@@ -18,7 +18,7 @@ class Statuses(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.CountedListGitStatusResult:
21
+ ) -> models.GetVersionStatusResponse:
22
22
  r"""Get the status of the current working tree
23
23
 
24
24
  Get the status of the current working tree of the Git repository used for Cribl configuration. The response includes details about modified, staged, untracked, and conflicted files, as well as branch and remote tracking information.
@@ -84,7 +84,7 @@ class Statuses(BaseSDK):
84
84
 
85
85
  response_data: Any = None
86
86
  if utils.match_response(http_res, "200", "application/json"):
87
- return unmarshal_json_response(models.CountedListGitStatusResult, http_res)
87
+ return unmarshal_json_response(models.GetVersionStatusResponse, http_res)
88
88
  if utils.match_response(http_res, "500", "application/json"):
89
89
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
90
90
  raise errors.Error(response_data, http_res)
@@ -105,7 +105,7 @@ class Statuses(BaseSDK):
105
105
  server_url: Optional[str] = None,
106
106
  timeout_ms: Optional[int] = None,
107
107
  http_headers: Optional[Mapping[str, str]] = None,
108
- ) -> models.CountedListGitStatusResult:
108
+ ) -> models.GetVersionStatusResponse:
109
109
  r"""Get the status of the current working tree
110
110
 
111
111
  Get the status of the current working tree of the Git repository used for Cribl configuration. The response includes details about modified, staged, untracked, and conflicted files, as well as branch and remote tracking information.
@@ -171,7 +171,7 @@ class Statuses(BaseSDK):
171
171
 
172
172
  response_data: Any = None
173
173
  if utils.match_response(http_res, "200", "application/json"):
174
- return unmarshal_json_response(models.CountedListGitStatusResult, http_res)
174
+ return unmarshal_json_response(models.GetVersionStatusResponse, http_res)
175
175
  if utils.match_response(http_res, "500", "application/json"):
176
176
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
177
177
  raise errors.Error(response_data, http_res)
@@ -18,7 +18,7 @@ class Summaries(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.CountedListDistributedSummary:
21
+ ) -> models.GetSummaryResponse:
22
22
  r"""Get a summary of the Distributed deployment
23
23
 
24
24
  Get a summary of the Distributed deployment. The response includes counts of Worker Groups, Edge Fleets, Pipelines, Routes, Sources, Destinations, and Worker and Edge Nodes, as well as statistics for the Worker and Edge Nodes.
@@ -84,9 +84,7 @@ class Summaries(BaseSDK):
84
84
 
85
85
  response_data: Any = None
86
86
  if utils.match_response(http_res, "200", "application/json"):
87
- return unmarshal_json_response(
88
- models.CountedListDistributedSummary, http_res
89
- )
87
+ return unmarshal_json_response(models.GetSummaryResponse, http_res)
90
88
  if utils.match_response(http_res, "500", "application/json"):
91
89
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
92
90
  raise errors.Error(response_data, http_res)
@@ -107,7 +105,7 @@ class Summaries(BaseSDK):
107
105
  server_url: Optional[str] = None,
108
106
  timeout_ms: Optional[int] = None,
109
107
  http_headers: Optional[Mapping[str, str]] = None,
110
- ) -> models.CountedListDistributedSummary:
108
+ ) -> models.GetSummaryResponse:
111
109
  r"""Get a summary of the Distributed deployment
112
110
 
113
111
  Get a summary of the Distributed deployment. The response includes counts of Worker Groups, Edge Fleets, Pipelines, Routes, Sources, Destinations, and Worker and Edge Nodes, as well as statistics for the Worker and Edge Nodes.
@@ -173,9 +171,7 @@ class Summaries(BaseSDK):
173
171
 
174
172
  response_data: Any = None
175
173
  if utils.match_response(http_res, "200", "application/json"):
176
- return unmarshal_json_response(
177
- models.CountedListDistributedSummary, http_res
178
- )
174
+ return unmarshal_json_response(models.GetSummaryResponse, http_res)
179
175
  if utils.match_response(http_res, "500", "application/json"):
180
176
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
181
177
  raise errors.Error(response_data, http_res)
@@ -20,7 +20,7 @@ class Teams(BaseSDK):
20
20
  server_url: Optional[str] = None,
21
21
  timeout_ms: Optional[int] = None,
22
22
  http_headers: Optional[Mapping[str, str]] = None,
23
- ) -> models.CountedListTeamAccessControlList:
23
+ ) -> models.GetConfigGroupACLTeamsByProductAndIDResponse:
24
24
  r"""Get the Access Control List for teams with permissions on a Worker Group or Edge Fleet for the specified Cribl product
25
25
 
26
26
  Get the Access Control List (ACL) for teams that have permissions on a Worker Group or Edge Fleet for the specified Cribl product.
@@ -91,7 +91,7 @@ class Teams(BaseSDK):
91
91
  response_data: Any = None
92
92
  if utils.match_response(http_res, "200", "application/json"):
93
93
  return unmarshal_json_response(
94
- models.CountedListTeamAccessControlList, http_res
94
+ models.GetConfigGroupACLTeamsByProductAndIDResponse, http_res
95
95
  )
96
96
  if utils.match_response(http_res, "500", "application/json"):
97
97
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
@@ -115,7 +115,7 @@ class Teams(BaseSDK):
115
115
  server_url: Optional[str] = None,
116
116
  timeout_ms: Optional[int] = None,
117
117
  http_headers: Optional[Mapping[str, str]] = None,
118
- ) -> models.CountedListTeamAccessControlList:
118
+ ) -> models.GetConfigGroupACLTeamsByProductAndIDResponse:
119
119
  r"""Get the Access Control List for teams with permissions on a Worker Group or Edge Fleet for the specified Cribl product
120
120
 
121
121
  Get the Access Control List (ACL) for teams that have permissions on a Worker Group or Edge Fleet for the specified Cribl product.
@@ -186,7 +186,7 @@ class Teams(BaseSDK):
186
186
  response_data: Any = None
187
187
  if utils.match_response(http_res, "200", "application/json"):
188
188
  return unmarshal_json_response(
189
- models.CountedListTeamAccessControlList, http_res
189
+ models.GetConfigGroupACLTeamsByProductAndIDResponse, http_res
190
190
  )
191
191
  if utils.match_response(http_res, "500", "application/json"):
192
192
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
@@ -3,7 +3,9 @@
3
3
  import asyncio
4
4
  import random
5
5
  import time
6
- from typing import List
6
+ from datetime import datetime
7
+ from email.utils import parsedate_to_datetime
8
+ from typing import List, Optional
7
9
 
8
10
  import httpx
9
11
 
@@ -51,9 +53,11 @@ class Retries:
51
53
 
52
54
  class TemporaryError(Exception):
53
55
  response: httpx.Response
56
+ retry_after: Optional[int]
54
57
 
55
58
  def __init__(self, response: httpx.Response):
56
59
  self.response = response
60
+ self.retry_after = _parse_retry_after_header(response)
57
61
 
58
62
 
59
63
  class PermanentError(Exception):
@@ -63,6 +67,62 @@ class PermanentError(Exception):
63
67
  self.inner = inner
64
68
 
65
69
 
70
+ def _parse_retry_after_header(response: httpx.Response) -> Optional[int]:
71
+ """Parse Retry-After header from response.
72
+
73
+ Returns:
74
+ Retry interval in milliseconds, or None if header is missing or invalid.
75
+ """
76
+ retry_after_header = response.headers.get("retry-after")
77
+ if not retry_after_header:
78
+ return None
79
+
80
+ try:
81
+ seconds = float(retry_after_header)
82
+ return round(seconds * 1000)
83
+ except ValueError:
84
+ pass
85
+
86
+ try:
87
+ retry_date = parsedate_to_datetime(retry_after_header)
88
+ delta = (retry_date - datetime.now(retry_date.tzinfo)).total_seconds()
89
+ return round(max(0, delta) * 1000)
90
+ except (ValueError, TypeError):
91
+ pass
92
+
93
+ return None
94
+
95
+
96
+ def _get_sleep_interval(
97
+ exception: Exception,
98
+ initial_interval: int,
99
+ max_interval: int,
100
+ exponent: float,
101
+ retries: int,
102
+ ) -> float:
103
+ """Get sleep interval for retry with exponential backoff.
104
+
105
+ Args:
106
+ exception: The exception that triggered the retry.
107
+ initial_interval: Initial retry interval in milliseconds.
108
+ max_interval: Maximum retry interval in milliseconds.
109
+ exponent: Base for exponential backoff calculation.
110
+ retries: Current retry attempt count.
111
+
112
+ Returns:
113
+ Sleep interval in seconds.
114
+ """
115
+ if (
116
+ isinstance(exception, TemporaryError)
117
+ and exception.retry_after is not None
118
+ and exception.retry_after > 0
119
+ ):
120
+ return exception.retry_after / 1000
121
+
122
+ sleep = (initial_interval / 1000) * exponent**retries + random.uniform(0, 1)
123
+ return min(sleep, max_interval / 1000)
124
+
125
+
66
126
  def retry(func, retries: Retries):
67
127
  if retries.config.strategy == "backoff":
68
128
 
@@ -183,8 +243,10 @@ def retry_with_backoff(
183
243
  return exception.response
184
244
 
185
245
  raise
186
- sleep = (initial_interval / 1000) * exponent**retries + random.uniform(0, 1)
187
- sleep = min(sleep, max_interval / 1000)
246
+
247
+ sleep = _get_sleep_interval(
248
+ exception, initial_interval, max_interval, exponent, retries
249
+ )
188
250
  time.sleep(sleep)
189
251
  retries += 1
190
252
 
@@ -211,7 +273,9 @@ async def retry_with_backoff_async(
211
273
  return exception.response
212
274
 
213
275
  raise
214
- sleep = (initial_interval / 1000) * exponent**retries + random.uniform(0, 1)
215
- sleep = min(sleep, max_interval / 1000)
276
+
277
+ sleep = _get_sleep_interval(
278
+ exception, initial_interval, max_interval, exponent, retries
279
+ )
216
280
  await asyncio.sleep(sleep)
217
281
  retries += 1
@@ -1,12 +1,26 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
- from typing import Any, Optional
3
+ from typing import Any, Optional, Type, TypeVar, overload
4
4
 
5
5
  import httpx
6
6
 
7
7
  from .serializers import unmarshal_json
8
8
  from cribl_control_plane import errors
9
9
 
10
+ T = TypeVar("T")
11
+
12
+
13
+ @overload
14
+ def unmarshal_json_response(
15
+ typ: Type[T], http_res: httpx.Response, body: Optional[str] = None
16
+ ) -> T: ...
17
+
18
+
19
+ @overload
20
+ def unmarshal_json_response(
21
+ typ: Any, http_res: httpx.Response, body: Optional[str] = None
22
+ ) -> Any: ...
23
+
10
24
 
11
25
  def unmarshal_json_response(
12
26
  typ: Any, http_res: httpx.Response, body: Optional[str] = None
@@ -17,7 +17,7 @@ class VersionsConfigs(BaseSDK):
17
17
  server_url: Optional[str] = None,
18
18
  timeout_ms: Optional[int] = None,
19
19
  http_headers: Optional[Mapping[str, str]] = None,
20
- ) -> models.CountedListGitInfo:
20
+ ) -> models.GetVersionInfoResponse:
21
21
  r"""Get the configuration and status for the Git integration
22
22
 
23
23
  Get the configuration and versioning status for the Git integration for the Cribl configuration.
@@ -77,7 +77,7 @@ class VersionsConfigs(BaseSDK):
77
77
 
78
78
  response_data: Any = None
79
79
  if utils.match_response(http_res, "200", "application/json"):
80
- return unmarshal_json_response(models.CountedListGitInfo, http_res)
80
+ return unmarshal_json_response(models.GetVersionInfoResponse, http_res)
81
81
  if utils.match_response(http_res, "500", "application/json"):
82
82
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
83
83
  raise errors.Error(response_data, http_res)
@@ -97,7 +97,7 @@ class VersionsConfigs(BaseSDK):
97
97
  server_url: Optional[str] = None,
98
98
  timeout_ms: Optional[int] = None,
99
99
  http_headers: Optional[Mapping[str, str]] = None,
100
- ) -> models.CountedListGitInfo:
100
+ ) -> models.GetVersionInfoResponse:
101
101
  r"""Get the configuration and status for the Git integration
102
102
 
103
103
  Get the configuration and versioning status for the Git integration for the Cribl configuration.
@@ -157,7 +157,7 @@ class VersionsConfigs(BaseSDK):
157
157
 
158
158
  response_data: Any = None
159
159
  if utils.match_response(http_res, "200", "application/json"):
160
- return unmarshal_json_response(models.CountedListGitInfo, http_res)
160
+ return unmarshal_json_response(models.GetVersionInfoResponse, http_res)
161
161
  if utils.match_response(http_res, "500", "application/json"):
162
162
  response_data = unmarshal_json_response(errors.ErrorData, http_res)
163
163
  raise errors.Error(response_data, http_res)
@@ -1,7 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cribl-control-plane
3
- Version: 0.2.1rc11
3
+ Version: 0.4.0a6
4
4
  Summary: Python Client SDK Generated by Speakeasy.
5
+ License-File: LICENSE
5
6
  Author: Speakeasy
6
7
  Requires-Python: >=3.9.2
7
8
  Classifier: Programming Language :: Python :: 3
@@ -17,20 +18,11 @@ Project-URL: Repository, https://github.com/criblio/cribl_control_plane_sdk_pyth
17
18
  Description-Content-Type: text/markdown
18
19
 
19
20
  # cribl_control_plane_sdk_python
21
+ <!-- Start Summary [summary] -->
22
+ ## Summary
20
23
 
21
- The Cribl Python SDK for the control plane provides operational control over Cribl resources and helps streamline the process of integrating with Cribl.
22
-
23
- In addition to the usage examples in this repository, the Cribl documentation includes [code examples for common use cases](https://docs.cribl.io/cribl-as-code/code-examples).
24
-
25
- Complementary API reference documentation is available at https://docs.cribl.io/cribl-as-code/api-reference. Product documentation is available at https://docs.cribl.io.
26
-
27
- > [!IMPORTANT]
28
- > **Preview Feature**
29
- > The Cribl SDKs are Preview features that are still being developed. We do not recommend using them in a production environment, because the features might not be fully tested or optimized for performance, and related documentation could be incomplete.
30
- >
31
- > Please continue to submit feedback through normal Cribl support channels, but assistance might be limited while the features remain in Preview.
32
-
33
- <!-- No Summary [summary] -->
24
+ Cribl API Reference: This API Reference lists available REST endpoints, along with their supported operations for accessing, creating, updating, or deleting resources. See our complementary product documentation at [docs.cribl.io](http://docs.cribl.io).
25
+ <!-- End Summary [summary] -->
34
26
 
35
27
  <!-- Start Table of Contents [toc] -->
36
28
  ## Table of Contents