cribl-control-plane 0.0.39__py3-none-any.whl → 0.4.0b23__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.
- cribl_control_plane/_hooks/clientcredentials.py +92 -42
- cribl_control_plane/_version.py +4 -4
- cribl_control_plane/acl.py +21 -9
- cribl_control_plane/auth_sdk.py +6 -3
- cribl_control_plane/basesdk.py +17 -1
- cribl_control_plane/branches.py +28 -8
- cribl_control_plane/commits.py +119 -47
- cribl_control_plane/commits_files.py +44 -24
- cribl_control_plane/configs_versions.py +16 -10
- cribl_control_plane/cribl.py +495 -0
- cribl_control_plane/destinations.py +86 -34
- cribl_control_plane/destinations_pq.py +34 -14
- cribl_control_plane/errors/__init__.py +23 -8
- cribl_control_plane/errors/apierror.py +2 -0
- cribl_control_plane/errors/criblcontrolplaneerror.py +11 -7
- cribl_control_plane/errors/error.py +4 -2
- cribl_control_plane/errors/healthserverstatus_error.py +41 -0
- cribl_control_plane/errors/no_response_error.py +5 -1
- cribl_control_plane/errors/responsevalidationerror.py +2 -0
- cribl_control_plane/functions.py +367 -0
- cribl_control_plane/groups_configs.py +8 -3
- cribl_control_plane/groups_sdk.py +156 -94
- cribl_control_plane/health.py +34 -14
- cribl_control_plane/hectokens.py +44 -20
- cribl_control_plane/httpclient.py +0 -1
- cribl_control_plane/lakedatasets.py +156 -62
- cribl_control_plane/models/__init__.py +3298 -479
- cribl_control_plane/models/addhectokenrequest.py +7 -1
- cribl_control_plane/models/authtoken.py +5 -1
- cribl_control_plane/models/backupssettings_union.py +37 -0
- cribl_control_plane/models/{lookupversions.py → branchinfo.py} +4 -4
- cribl_control_plane/models/cacheconnection.py +30 -2
- cribl_control_plane/models/cacheconnectionbackfillstatus.py +2 -1
- cribl_control_plane/models/cloudprovider.py +2 -1
- cribl_control_plane/models/collectorazureblob.py +130 -0
- cribl_control_plane/models/collectorconf.py +56 -0
- cribl_control_plane/models/collectorcribllake.py +27 -0
- cribl_control_plane/models/collectordatabase.py +92 -0
- cribl_control_plane/models/collectorfilesystem.py +66 -0
- cribl_control_plane/models/collectorgooglecloudstorage.py +131 -0
- cribl_control_plane/models/collectorhealthcheck.py +269 -0
- cribl_control_plane/models/collectorrest.py +340 -0
- cribl_control_plane/models/collectors3.py +239 -0
- cribl_control_plane/models/collectorscript.py +59 -0
- cribl_control_plane/models/collectorsplunk.py +253 -0
- cribl_control_plane/models/configgroup.py +62 -8
- cribl_control_plane/models/configgroupcloud.py +17 -3
- cribl_control_plane/models/countedbranchinfo.py +20 -0
- cribl_control_plane/models/countedconfiggroup.py +20 -0
- cribl_control_plane/models/countedcribllakedataset.py +20 -0
- cribl_control_plane/models/counteddistributedsummary.py +20 -0
- cribl_control_plane/models/countedfunctionresponse.py +20 -0
- cribl_control_plane/models/countedgitcommitsummary.py +20 -0
- cribl_control_plane/models/countedgitcountresult.py +20 -0
- cribl_control_plane/models/{createinputop.py → countedgitdiffresult.py} +5 -9
- cribl_control_plane/models/countedgitfilesresponse.py +20 -0
- cribl_control_plane/models/{getversioninfoop.py → countedgitinfo.py} +2 -6
- cribl_control_plane/models/countedgitlogresult.py +20 -0
- cribl_control_plane/models/countedgitrevertresult.py +20 -0
- cribl_control_plane/models/countedgitshowresult.py +20 -0
- cribl_control_plane/models/countedgitstatusresult.py +20 -0
- cribl_control_plane/models/{listinputop.py → countedinput.py} +2 -6
- cribl_control_plane/models/countedinputsplunkhec.py +20 -0
- cribl_control_plane/models/countedjobinfo.py +20 -0
- cribl_control_plane/models/countedmasterworkerentry.py +20 -0
- cribl_control_plane/models/countednumber.py +19 -0
- cribl_control_plane/models/{getversionbranchop.py → countedobject.py} +2 -6
- cribl_control_plane/models/{listoutputop.py → countedoutput.py} +2 -6
- cribl_control_plane/models/{createoutputop.py → countedoutputsamplesresponse.py} +5 -9
- cribl_control_plane/models/countedoutputtestresponse.py +20 -0
- cribl_control_plane/models/countedpackinfo.py +20 -0
- cribl_control_plane/models/{createpacksop.py → countedpackinstallinfo.py} +2 -6
- cribl_control_plane/models/{listpipelineop.py → countedpipeline.py} +2 -6
- cribl_control_plane/models/{listroutesop.py → countedroutes.py} +2 -6
- cribl_control_plane/models/countedstring.py +19 -0
- cribl_control_plane/models/countedsystemsettingsconf.py +20 -0
- cribl_control_plane/models/countedteamaccesscontrollist.py +20 -0
- cribl_control_plane/models/counteduseraccesscontrollist.py +20 -0
- cribl_control_plane/models/createauthloginop.py +18 -0
- cribl_control_plane/models/createconfiggroupbyproductop.py +26 -27
- cribl_control_plane/models/createcribllakedatasetbylakeidop.py +1 -19
- cribl_control_plane/models/createinputhectokenbyidop.py +1 -19
- cribl_control_plane/models/createoutputtestbyidop.py +1 -20
- cribl_control_plane/models/createroutesappendbyidop.py +4 -22
- cribl_control_plane/models/createversioncommitop.py +1 -19
- cribl_control_plane/models/createversionrevertop.py +3 -21
- cribl_control_plane/models/createversionundoop.py +1 -18
- cribl_control_plane/models/criblevent.py +15 -0
- cribl_control_plane/models/cribllakedataset.py +23 -3
- cribl_control_plane/models/cribllakedatasetupdate.py +95 -0
- cribl_control_plane/models/datasetmetadata.py +18 -2
- cribl_control_plane/models/deleteconfiggroupbyproductandidop.py +18 -21
- cribl_control_plane/models/deletecribllakedatasetbylakeidandidop.py +1 -20
- cribl_control_plane/models/deleteinputbyidop.py +1 -20
- cribl_control_plane/models/deleteoutputbyidop.py +1 -20
- cribl_control_plane/models/deleteoutputpqbyidop.py +1 -19
- cribl_control_plane/models/deletepacksbyidop.py +1 -20
- cribl_control_plane/models/deletepipelinebyidop.py +3 -22
- cribl_control_plane/models/difffiles.py +130 -0
- cribl_control_plane/models/diffline.py +26 -0
- cribl_control_plane/models/difflinecontext.py +28 -0
- cribl_control_plane/models/difflinedelete.py +25 -0
- cribl_control_plane/models/difflineinsert.py +25 -0
- cribl_control_plane/models/distributedsummary.py +6 -0
- cribl_control_plane/models/functionaggregatemetrics.py +206 -0
- cribl_control_plane/models/functionaggregation.py +172 -0
- cribl_control_plane/models/functionautotimestamp.py +173 -0
- cribl_control_plane/models/functioncef.py +111 -0
- cribl_control_plane/models/functionchain.py +75 -0
- cribl_control_plane/models/functionclone.py +75 -0
- cribl_control_plane/models/functioncode.py +96 -0
- cribl_control_plane/models/functioncomment.py +75 -0
- cribl_control_plane/models/functiondistinct.py +99 -0
- cribl_control_plane/models/functiondnslookup.py +250 -0
- cribl_control_plane/models/functiondrop.py +73 -0
- cribl_control_plane/models/functiondropdimensions.py +87 -0
- cribl_control_plane/models/functiondynamicsampling.py +121 -0
- cribl_control_plane/models/functioneval.py +103 -0
- cribl_control_plane/models/functioneventbreaker.py +103 -0
- cribl_control_plane/models/functioneventstats.py +92 -0
- cribl_control_plane/models/functionexternaldata.py +73 -0
- cribl_control_plane/models/functionflatten.py +90 -0
- cribl_control_plane/models/functionfoldkeys.py +89 -0
- cribl_control_plane/models/functiongenstats.py +73 -0
- cribl_control_plane/models/functiongeoip.py +120 -0
- cribl_control_plane/models/functiongrok.py +95 -0
- cribl_control_plane/models/functionhandlebar.py +112 -0
- cribl_control_plane/models/functionjoin.py +112 -0
- cribl_control_plane/models/functionjsonunroll.py +80 -0
- cribl_control_plane/models/functionlakeexport.py +102 -0
- cribl_control_plane/models/functionlimit.py +75 -0
- cribl_control_plane/models/functionlocalsearchdatatypeparser.py +76 -0
- cribl_control_plane/models/functionlocalsearchrulesetrunner.py +97 -0
- cribl_control_plane/models/functionlookup.py +148 -0
- cribl_control_plane/models/functionmask.py +121 -0
- cribl_control_plane/models/functionmvexpand.py +128 -0
- cribl_control_plane/models/functionmvpull.py +99 -0
- cribl_control_plane/models/functionnotificationpolicies.py +186 -0
- cribl_control_plane/models/functionnotifications.py +85 -0
- cribl_control_plane/models/functionnotify.py +196 -0
- cribl_control_plane/models/functionnumerify.py +119 -0
- cribl_control_plane/models/functionotlplogs.py +82 -0
- cribl_control_plane/models/functionotlpmetrics.py +118 -0
- cribl_control_plane/models/functionotlptraces.py +111 -0
- cribl_control_plane/models/functionpack.py +80 -0
- cribl_control_plane/models/functionpivot.py +85 -0
- cribl_control_plane/models/functionpublishmetrics.py +153 -0
- cribl_control_plane/models/functionredis.py +173 -0
- cribl_control_plane/models/functionregexextract.py +112 -0
- cribl_control_plane/models/functionregexfilter.py +95 -0
- cribl_control_plane/models/functionrename.py +107 -0
- cribl_control_plane/models/functionresponse.py +242 -0
- cribl_control_plane/models/functionrollupmetrics.py +114 -0
- cribl_control_plane/models/functionsampling.py +90 -0
- cribl_control_plane/models/functionsend.py +141 -0
- cribl_control_plane/models/functionsensitivedatascanner.py +128 -0
- cribl_control_plane/models/functionserde.py +161 -0
- cribl_control_plane/models/functionserialize.py +134 -0
- cribl_control_plane/models/functionsidlookup.py +93 -0
- cribl_control_plane/models/functionsnmptrapserialize.py +144 -0
- cribl_control_plane/models/functionsort.py +97 -0
- cribl_control_plane/models/functionstore.py +132 -0
- cribl_control_plane/models/functionsuppress.py +115 -0
- cribl_control_plane/models/functiontee.py +90 -0
- cribl_control_plane/models/functiontrimtimestamp.py +75 -0
- cribl_control_plane/models/functionunion.py +80 -0
- cribl_control_plane/models/functionunroll.py +80 -0
- cribl_control_plane/models/functionwindow.py +96 -0
- cribl_control_plane/models/functionxmlunroll.py +92 -0
- cribl_control_plane/models/getconfiggroupaclbyproductandidop.py +24 -20
- cribl_control_plane/models/getconfiggroupaclteamsbyproductandidop.py +24 -20
- cribl_control_plane/models/getconfiggroupbyproductandidop.py +14 -19
- cribl_control_plane/models/getconfiggroupconfigversionbyproductandidop.py +18 -20
- cribl_control_plane/models/getcribllakedatasetbylakeidandidop.py +1 -20
- cribl_control_plane/models/getcribllakedatasetbylakeidop.py +54 -14
- cribl_control_plane/models/getfunctionsbyidop.py +18 -0
- cribl_control_plane/models/getinputbyidop.py +1 -20
- cribl_control_plane/models/getmasterworkerentryop.py +1 -18
- cribl_control_plane/models/getoutputbyidop.py +1 -20
- cribl_control_plane/models/getoutputpqbyidop.py +1 -19
- cribl_control_plane/models/getoutputsamplesbyidop.py +1 -20
- cribl_control_plane/models/getpacksbyidop.py +1 -20
- cribl_control_plane/models/getpacksop.py +1 -19
- cribl_control_plane/models/getpipelinebyidop.py +3 -22
- cribl_control_plane/models/getroutesbyidop.py +3 -22
- cribl_control_plane/models/getsummaryop.py +18 -20
- cribl_control_plane/models/getversioncountop.py +3 -21
- cribl_control_plane/models/getversiondiffop.py +1 -18
- cribl_control_plane/models/getversionfilesop.py +3 -22
- cribl_control_plane/models/getversionop.py +1 -19
- cribl_control_plane/models/getversionshowop.py +1 -18
- cribl_control_plane/models/getversionstatusop.py +1 -19
- cribl_control_plane/models/{routecloneconf.py → gitcountresult.py} +4 -4
- cribl_control_plane/models/gitdiffresult.py +16 -0
- cribl_control_plane/models/gitinfo.py +14 -3
- cribl_control_plane/models/gitshowresult.py +19 -0
- cribl_control_plane/models/groupcreaterequest.py +172 -0
- cribl_control_plane/models/hbcriblinfo.py +42 -7
- cribl_control_plane/models/healthserverstatus.py +55 -0
- cribl_control_plane/models/heartbeatmetadata.py +6 -11
- cribl_control_plane/models/input.py +83 -78
- cribl_control_plane/models/inputappscope.py +126 -30
- cribl_control_plane/models/inputazureblob.py +62 -6
- cribl_control_plane/models/inputcloudflarehec.py +518 -0
- cribl_control_plane/models/inputcollection.py +47 -4
- cribl_control_plane/models/inputconfluentcloud.py +258 -32
- cribl_control_plane/models/inputcribl.py +47 -4
- cribl_control_plane/models/inputcriblhttp.py +121 -30
- cribl_control_plane/models/inputcribllakehttp.py +136 -30
- cribl_control_plane/models/inputcriblmetrics.py +48 -4
- cribl_control_plane/models/inputcribltcp.py +122 -24
- cribl_control_plane/models/inputcrowdstrike.py +92 -10
- cribl_control_plane/models/inputdatadogagent.py +98 -24
- cribl_control_plane/models/inputdatagen.py +47 -4
- cribl_control_plane/models/inputedgeprometheus.py +210 -50
- cribl_control_plane/models/inputelastic.py +167 -36
- cribl_control_plane/models/inputeventhub.py +209 -6
- cribl_control_plane/models/inputexec.py +59 -6
- cribl_control_plane/models/inputfile.py +78 -10
- cribl_control_plane/models/inputfirehose.py +97 -24
- cribl_control_plane/models/inputgooglepubsub.py +67 -6
- cribl_control_plane/models/inputgrafana.py +251 -71
- cribl_control_plane/models/inputhttp.py +97 -24
- cribl_control_plane/models/inputhttpraw.py +97 -24
- cribl_control_plane/models/inputjournalfiles.py +48 -4
- cribl_control_plane/models/inputkafka.py +252 -28
- cribl_control_plane/models/inputkinesis.py +130 -14
- cribl_control_plane/models/inputkubeevents.py +47 -4
- cribl_control_plane/models/inputkubelogs.py +61 -8
- cribl_control_plane/models/inputkubemetrics.py +61 -8
- cribl_control_plane/models/inputloki.py +113 -34
- cribl_control_plane/models/inputmetrics.py +97 -24
- cribl_control_plane/models/inputmodeldriventelemetry.py +107 -26
- cribl_control_plane/models/inputmsk.py +145 -32
- cribl_control_plane/models/inputnetflow.py +47 -4
- cribl_control_plane/models/inputoffice365mgmt.py +112 -14
- cribl_control_plane/models/inputoffice365msgtrace.py +114 -16
- cribl_control_plane/models/inputoffice365service.py +114 -16
- cribl_control_plane/models/inputopentelemetry.py +143 -32
- cribl_control_plane/models/inputprometheus.py +193 -44
- cribl_control_plane/models/inputprometheusrw.py +114 -27
- cribl_control_plane/models/inputrawudp.py +47 -4
- cribl_control_plane/models/inputs3.py +78 -8
- cribl_control_plane/models/inputs3inventory.py +92 -10
- cribl_control_plane/models/inputsecuritylake.py +93 -10
- cribl_control_plane/models/inputsnmp.py +112 -21
- cribl_control_plane/models/inputsplunk.py +130 -28
- cribl_control_plane/models/inputsplunkhec.py +119 -29
- cribl_control_plane/models/inputsplunksearch.py +112 -15
- cribl_control_plane/models/inputsqs.py +99 -16
- cribl_control_plane/models/inputsyslog.py +189 -47
- cribl_control_plane/models/inputsystemmetrics.py +202 -32
- cribl_control_plane/models/inputsystemstate.py +61 -8
- cribl_control_plane/models/inputtcp.py +122 -26
- cribl_control_plane/models/inputtcpjson.py +112 -26
- cribl_control_plane/models/inputwef.py +144 -15
- cribl_control_plane/models/inputwindowsmetrics.py +186 -33
- cribl_control_plane/models/inputwineventlogs.py +93 -11
- cribl_control_plane/models/inputwiz.py +173 -8
- cribl_control_plane/models/inputwizwebhook.py +97 -24
- cribl_control_plane/models/inputzscalerhec.py +119 -29
- cribl_control_plane/models/jobinfo.py +34 -0
- cribl_control_plane/models/jobstatus.py +48 -0
- cribl_control_plane/models/lakedatasetmetrics.py +17 -0
- cribl_control_plane/models/lakehouseconnectiontype.py +2 -1
- cribl_control_plane/models/listconfiggroupbyproductop.py +14 -19
- cribl_control_plane/models/listmasterworkerentryop.py +1 -19
- cribl_control_plane/models/logininfo.py +3 -3
- cribl_control_plane/models/masterworkerentry.py +20 -13
- cribl_control_plane/models/nodeactiveupgradestatus.py +2 -1
- cribl_control_plane/models/nodefailedupgradestatus.py +2 -1
- cribl_control_plane/models/nodeprovidedinfo.py +13 -11
- cribl_control_plane/models/nodeskippedupgradestatus.py +2 -1
- cribl_control_plane/models/nodeupgradestate.py +2 -1
- cribl_control_plane/models/nodeupgradestatus.py +51 -5
- cribl_control_plane/models/outpostnodeinfo.py +16 -0
- cribl_control_plane/models/output.py +104 -90
- cribl_control_plane/models/outputazureblob.py +171 -18
- cribl_control_plane/models/outputazuredataexplorer.py +514 -90
- cribl_control_plane/models/outputazureeventhub.py +315 -31
- cribl_control_plane/models/outputazurelogs.py +145 -26
- cribl_control_plane/models/outputchronicle.py +532 -0
- cribl_control_plane/models/outputclickhouse.py +205 -34
- cribl_control_plane/models/outputcloudflarer2.py +632 -0
- cribl_control_plane/models/outputcloudwatch.py +129 -23
- cribl_control_plane/models/outputconfluentcloud.py +384 -57
- cribl_control_plane/models/outputcriblhttp.py +198 -31
- cribl_control_plane/models/outputcribllake.py +156 -16
- cribl_control_plane/models/outputcribltcp.py +194 -29
- cribl_control_plane/models/outputcrowdstrikenextgensiem.py +172 -28
- cribl_control_plane/models/outputdatabricks.py +501 -0
- cribl_control_plane/models/outputdatadog.py +199 -31
- cribl_control_plane/models/outputdataset.py +181 -29
- cribl_control_plane/models/outputdiskspool.py +17 -2
- cribl_control_plane/models/outputdls3.py +233 -24
- cribl_control_plane/models/outputdynatracehttp.py +208 -34
- cribl_control_plane/models/outputdynatraceotlp.py +210 -36
- cribl_control_plane/models/outputelastic.py +199 -30
- cribl_control_plane/models/outputelasticcloud.py +171 -26
- cribl_control_plane/models/outputexabeam.py +96 -10
- cribl_control_plane/models/outputfilesystem.py +139 -14
- cribl_control_plane/models/outputgooglechronicle.py +216 -35
- cribl_control_plane/models/outputgooglecloudlogging.py +174 -31
- cribl_control_plane/models/outputgooglecloudstorage.py +215 -24
- cribl_control_plane/models/outputgooglepubsub.py +131 -23
- cribl_control_plane/models/outputgrafanacloud.py +376 -74
- cribl_control_plane/models/outputgraphite.py +128 -25
- cribl_control_plane/models/outputhoneycomb.py +145 -26
- cribl_control_plane/models/outputhumiohec.py +162 -28
- cribl_control_plane/models/outputinfluxdb.py +165 -28
- cribl_control_plane/models/outputkafka.py +375 -52
- cribl_control_plane/models/outputkinesis.py +165 -27
- cribl_control_plane/models/outputloki.py +164 -34
- cribl_control_plane/models/outputmicrosoftfabric.py +540 -0
- cribl_control_plane/models/outputminio.py +225 -25
- cribl_control_plane/models/outputmsk.py +267 -54
- cribl_control_plane/models/outputnewrelic.py +171 -29
- cribl_control_plane/models/outputnewrelicevents.py +163 -28
- cribl_control_plane/models/outputopentelemetry.py +240 -40
- cribl_control_plane/models/outputprometheus.py +145 -26
- cribl_control_plane/models/outputring.py +49 -8
- cribl_control_plane/models/outputs3.py +233 -26
- cribl_control_plane/models/outputsecuritylake.py +179 -18
- cribl_control_plane/models/outputsentinel.py +172 -29
- cribl_control_plane/models/outputsentineloneaisiem.py +178 -32
- cribl_control_plane/models/outputservicenow.py +223 -38
- cribl_control_plane/models/outputsignalfx.py +145 -26
- cribl_control_plane/models/outputsns.py +143 -25
- cribl_control_plane/models/outputsplunk.py +206 -36
- cribl_control_plane/models/outputsplunkhec.py +238 -26
- cribl_control_plane/models/outputsplunklb.py +262 -42
- cribl_control_plane/models/outputsqs.py +163 -33
- cribl_control_plane/models/outputstatsd.py +127 -25
- cribl_control_plane/models/outputstatsdext.py +128 -25
- cribl_control_plane/models/outputsumologic.py +146 -25
- cribl_control_plane/models/outputsyslog.py +318 -46
- cribl_control_plane/models/outputtcpjson.py +186 -32
- cribl_control_plane/models/outputwavefront.py +145 -26
- cribl_control_plane/models/outputwebhook.py +211 -33
- cribl_control_plane/models/outputxsiam.py +143 -26
- cribl_control_plane/models/packinfo.py +8 -5
- cribl_control_plane/models/packinstallinfo.py +11 -8
- cribl_control_plane/models/piisettings_union.py +31 -0
- cribl_control_plane/models/productscore.py +2 -1
- cribl_control_plane/models/rbacresource.py +2 -1
- cribl_control_plane/models/resourcepolicy.py +15 -2
- cribl_control_plane/models/rollbacksettings_union.py +44 -0
- cribl_control_plane/models/routeconf.py +3 -4
- cribl_control_plane/models/runnablejob.py +27 -0
- cribl_control_plane/models/runnablejobcollection.py +628 -0
- cribl_control_plane/models/runnablejobexecutor.py +360 -0
- cribl_control_plane/models/runnablejobscheduledsearch.py +279 -0
- cribl_control_plane/models/snisettings_union.py +31 -0
- cribl_control_plane/models/systemsettingsconf.py +291 -0
- cribl_control_plane/models/tlssettings_union.py +43 -0
- cribl_control_plane/models/updateconfiggroupbyproductandidop.py +19 -20
- cribl_control_plane/models/updateconfiggroupdeploybyproductandidop.py +19 -21
- cribl_control_plane/models/updatecribllakedatasetbylakeidandidop.py +10 -25
- cribl_control_plane/models/updatehectokenrequest.py +7 -1
- cribl_control_plane/models/updateinputbyidop.py +1 -19
- cribl_control_plane/models/updateinputhectokenbyidandtokenop.py +1 -19
- cribl_control_plane/models/updateoutputbyidop.py +1 -19
- cribl_control_plane/models/updatepacksbyidop.py +1 -20
- cribl_control_plane/models/updatepacksop.py +25 -0
- cribl_control_plane/models/updatepipelinebyidop.py +5 -23
- cribl_control_plane/models/updateroutesbyidop.py +3 -21
- cribl_control_plane/models/upgradegroupsettings_union.py +43 -0
- cribl_control_plane/models/upgradepackageurls.py +20 -0
- cribl_control_plane/models/upgradesettings.py +38 -0
- cribl_control_plane/models/uploadpackresponse.py +13 -0
- cribl_control_plane/models/workertypes.py +2 -1
- cribl_control_plane/nodes.py +37 -23
- cribl_control_plane/packs.py +292 -37
- cribl_control_plane/pipelines.py +98 -48
- cribl_control_plane/routes_sdk.py +86 -50
- cribl_control_plane/samples.py +32 -16
- cribl_control_plane/sdk.py +26 -6
- cribl_control_plane/settings.py +20 -0
- cribl_control_plane/sources.py +85 -33
- cribl_control_plane/statuses.py +16 -6
- cribl_control_plane/summaries.py +16 -6
- cribl_control_plane/system_sdk.py +20 -0
- cribl_control_plane/teams.py +16 -6
- cribl_control_plane/tokens.py +49 -21
- cribl_control_plane/utils/__init__.py +15 -3
- cribl_control_plane/utils/annotations.py +32 -8
- cribl_control_plane/utils/eventstreaming.py +10 -0
- cribl_control_plane/utils/forms.py +21 -10
- cribl_control_plane/utils/queryparams.py +14 -2
- cribl_control_plane/utils/retries.py +69 -5
- cribl_control_plane/utils/unmarshal_json_response.py +15 -1
- cribl_control_plane/versions.py +11 -6
- cribl_control_plane/versions_configs.py +16 -6
- {cribl_control_plane-0.0.39.dist-info → cribl_control_plane-0.4.0b23.dist-info}/METADATA +99 -43
- cribl_control_plane-0.4.0b23.dist-info/RECORD +450 -0
- {cribl_control_plane-0.0.39.dist-info → cribl_control_plane-0.4.0b23.dist-info}/WHEEL +1 -1
- cribl_control_plane-0.4.0b23.dist-info/licenses/LICENSE +201 -0
- cribl_control_plane/errors/healthstatus_error.py +0 -32
- cribl_control_plane/models/appmode.py +0 -13
- cribl_control_plane/models/createpipelineop.py +0 -24
- cribl_control_plane/models/createversionpushop.py +0 -23
- cribl_control_plane/models/healthstatus.py +0 -33
- cribl_control_plane-0.0.39.dist-info/RECORD +0 -315
|
@@ -21,6 +21,7 @@ class Credentials:
|
|
|
21
21
|
client_id: str
|
|
22
22
|
client_secret: str
|
|
23
23
|
token_url: str
|
|
24
|
+
scopes: Optional[List[str]]
|
|
24
25
|
additional_properties: Dict[str, str]
|
|
25
26
|
|
|
26
27
|
def __init__(
|
|
@@ -28,25 +29,27 @@ class Credentials:
|
|
|
28
29
|
client_id: str,
|
|
29
30
|
client_secret: str,
|
|
30
31
|
token_url: str,
|
|
32
|
+
scopes: Optional[List[str]],
|
|
31
33
|
additional_properties: Optional[Dict[str, str]] = None,
|
|
32
34
|
):
|
|
33
35
|
self.client_id = client_id
|
|
34
36
|
self.client_secret = client_secret
|
|
35
37
|
self.token_url = token_url
|
|
38
|
+
self.scopes = scopes
|
|
36
39
|
self.additional_properties = additional_properties or {}
|
|
37
40
|
|
|
38
41
|
|
|
39
42
|
class Session:
|
|
40
43
|
credentials: Credentials
|
|
41
44
|
token: str
|
|
42
|
-
scopes:
|
|
45
|
+
scopes: List[str]
|
|
43
46
|
expires_at: Optional[int] = None
|
|
44
47
|
|
|
45
48
|
def __init__(
|
|
46
49
|
self,
|
|
47
50
|
credentials: Credentials,
|
|
48
51
|
token: str,
|
|
49
|
-
scopes:
|
|
52
|
+
scopes: List[str],
|
|
50
53
|
expires_at: Optional[int] = None,
|
|
51
54
|
):
|
|
52
55
|
self.credentials = credentials
|
|
@@ -57,7 +60,7 @@ class Session:
|
|
|
57
60
|
|
|
58
61
|
class ClientCredentialsHook(SDKInitHook, BeforeRequestHook, AfterErrorHook):
|
|
59
62
|
client: HttpClient
|
|
60
|
-
sessions: Dict[str, Session] = {}
|
|
63
|
+
sessions: Dict[str, Dict[str, Session]] = {}
|
|
61
64
|
|
|
62
65
|
def sdk_init(self, config: SDKConfiguration) -> SDKConfiguration:
|
|
63
66
|
if config.client is None:
|
|
@@ -69,8 +72,7 @@ class ClientCredentialsHook(SDKInitHook, BeforeRequestHook, AfterErrorHook):
|
|
|
69
72
|
def before_request(
|
|
70
73
|
self, hook_ctx: BeforeRequestContext, request: httpx.Request
|
|
71
74
|
) -> httpx.Request:
|
|
72
|
-
if hook_ctx
|
|
73
|
-
# OAuth2 not in use
|
|
75
|
+
if self.is_hook_disabled(hook_ctx):
|
|
74
76
|
return request
|
|
75
77
|
|
|
76
78
|
credentials = self.get_credentials(hook_ctx)
|
|
@@ -81,22 +83,24 @@ class ClientCredentialsHook(SDKInitHook, BeforeRequestHook, AfterErrorHook):
|
|
|
81
83
|
credentials.client_id, credentials.client_secret
|
|
82
84
|
)
|
|
83
85
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
):
|
|
91
|
-
sess = self.do_token_request(
|
|
86
|
+
scopes = self.get_required_scopes(credentials, hook_ctx)
|
|
87
|
+
session = self.get_existing_session(session_key, scopes)
|
|
88
|
+
|
|
89
|
+
if session is None:
|
|
90
|
+
# Create new session
|
|
91
|
+
session = self.do_token_request(
|
|
92
92
|
hook_ctx,
|
|
93
93
|
credentials,
|
|
94
|
-
|
|
94
|
+
scopes,
|
|
95
95
|
)
|
|
96
96
|
|
|
97
|
-
self.sessions
|
|
97
|
+
if session_key not in self.sessions:
|
|
98
|
+
self.sessions[session_key] = {}
|
|
99
|
+
|
|
100
|
+
scope_key = self.get_scope_key(scopes)
|
|
101
|
+
self.sessions[session_key][scope_key] = session
|
|
98
102
|
|
|
99
|
-
request.headers["Authorization"] = f"Bearer {
|
|
103
|
+
request.headers["Authorization"] = f"Bearer {session.token}"
|
|
100
104
|
|
|
101
105
|
return request
|
|
102
106
|
|
|
@@ -106,8 +110,7 @@ class ClientCredentialsHook(SDKInitHook, BeforeRequestHook, AfterErrorHook):
|
|
|
106
110
|
response: Optional[httpx.Response],
|
|
107
111
|
error: Optional[Exception],
|
|
108
112
|
) -> Union[Tuple[Optional[httpx.Response], Optional[Exception]], Exception]:
|
|
109
|
-
if hook_ctx
|
|
110
|
-
# OAuth2 not in use
|
|
113
|
+
if self.is_hook_disabled(hook_ctx):
|
|
111
114
|
return (response, error)
|
|
112
115
|
|
|
113
116
|
# We don't want to refresh the token if the error is not related to the token
|
|
@@ -122,12 +125,15 @@ class ClientCredentialsHook(SDKInitHook, BeforeRequestHook, AfterErrorHook):
|
|
|
122
125
|
session_key = self.get_session_key(
|
|
123
126
|
credentials.client_id, credentials.client_secret
|
|
124
127
|
)
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
+
scopes = self.get_required_scopes(credentials, hook_ctx)
|
|
129
|
+
scope_key = self.get_scope_key(scopes)
|
|
130
|
+
self.remove_session(session_key, scope_key)
|
|
128
131
|
|
|
129
132
|
return (response, error)
|
|
130
133
|
|
|
134
|
+
def is_hook_disabled(self, hook_ctx: HookContext) -> bool:
|
|
135
|
+
return hook_ctx.oauth2_scopes is None
|
|
136
|
+
|
|
131
137
|
def get_credentials(self, hook_ctx: HookContext) -> Optional[Credentials]:
|
|
132
138
|
source = hook_ctx.security_source
|
|
133
139
|
|
|
@@ -145,21 +151,19 @@ class ClientCredentialsHook(SDKInitHook, BeforeRequestHook, AfterErrorHook):
|
|
|
145
151
|
# Extract additional properties from security object
|
|
146
152
|
additional_properties = {}
|
|
147
153
|
for key, value in dict(security.client_oauth).items():
|
|
148
|
-
if key not in ["client_id", "client_secret", "token_url"]:
|
|
154
|
+
if key not in ["client_id", "client_secret", "token_url", "scopes"]:
|
|
149
155
|
additional_properties[key] = value
|
|
150
156
|
|
|
151
157
|
return Credentials(
|
|
152
158
|
client_id=security.client_oauth.client_id,
|
|
153
159
|
client_secret=security.client_oauth.client_secret,
|
|
154
160
|
token_url=security.client_oauth.token_url,
|
|
161
|
+
scopes=None,
|
|
155
162
|
additional_properties=additional_properties,
|
|
156
163
|
)
|
|
157
164
|
|
|
158
165
|
def do_token_request(
|
|
159
|
-
self,
|
|
160
|
-
hook_ctx: HookContext,
|
|
161
|
-
credentials: Credentials,
|
|
162
|
-
scopes: Optional[List[str]],
|
|
166
|
+
self, hook_ctx: HookContext, credentials: Credentials, scopes: List[str]
|
|
163
167
|
) -> Session:
|
|
164
168
|
payload = {
|
|
165
169
|
"grant_type": "client_credentials",
|
|
@@ -167,7 +171,7 @@ class ClientCredentialsHook(SDKInitHook, BeforeRequestHook, AfterErrorHook):
|
|
|
167
171
|
"client_secret": credentials.client_secret,
|
|
168
172
|
}
|
|
169
173
|
|
|
170
|
-
if
|
|
174
|
+
if len(scopes) > 0:
|
|
171
175
|
payload["scope"] = " ".join(scopes)
|
|
172
176
|
|
|
173
177
|
# Add additional properties to payload
|
|
@@ -188,7 +192,7 @@ class ClientCredentialsHook(SDKInitHook, BeforeRequestHook, AfterErrorHook):
|
|
|
188
192
|
|
|
189
193
|
response_data = response.json()
|
|
190
194
|
|
|
191
|
-
if response_data.get("token_type") != "
|
|
195
|
+
if response_data.get("token_type", "").lower() != "bearer":
|
|
192
196
|
raise Exception("Unexpected token type from token endpoint")
|
|
193
197
|
|
|
194
198
|
expires_at = None
|
|
@@ -203,24 +207,70 @@ class ClientCredentialsHook(SDKInitHook, BeforeRequestHook, AfterErrorHook):
|
|
|
203
207
|
)
|
|
204
208
|
|
|
205
209
|
def get_session_key(self, client_id: str, client_secret: str) -> str:
|
|
210
|
+
"""Generate a consistent session key for the given client ID and secret."""
|
|
206
211
|
return hashlib.md5(f"{client_id}:{client_secret}".encode()).hexdigest()
|
|
207
212
|
|
|
213
|
+
def get_required_scopes(
|
|
214
|
+
self, credentials: Credentials, hook_ctx: HookContext
|
|
215
|
+
) -> List[str]:
|
|
216
|
+
"""Return the list of scopes that need to be requested."""
|
|
217
|
+
if credentials.scopes is not None:
|
|
218
|
+
return credentials.scopes
|
|
219
|
+
return hook_ctx.oauth2_scopes or []
|
|
220
|
+
|
|
221
|
+
def get_scope_key(self, scopes: List[str]) -> str:
|
|
222
|
+
"""Generate a consistent scope key for the given scopes."""
|
|
223
|
+
if not scopes:
|
|
224
|
+
return ""
|
|
225
|
+
|
|
226
|
+
sorted_scopes = sorted(scopes)
|
|
227
|
+
return "&".join(sorted_scopes)
|
|
228
|
+
|
|
229
|
+
def remove_session(self, client_key: str, scope_key: str) -> None:
|
|
230
|
+
"""Remove a session and clean up empty client session maps."""
|
|
231
|
+
if client_key in self.sessions and scope_key in self.sessions[client_key]:
|
|
232
|
+
del self.sessions[client_key][scope_key]
|
|
233
|
+
|
|
234
|
+
# Clean up empty client sessions
|
|
235
|
+
if not self.sessions[client_key]:
|
|
236
|
+
del self.sessions[client_key]
|
|
237
|
+
|
|
238
|
+
def get_existing_session(
|
|
239
|
+
self, client_key: str, required_scopes: List[str]
|
|
240
|
+
) -> Optional[Session]:
|
|
241
|
+
"""Find the best session for the required scopes."""
|
|
242
|
+
if client_key not in self.sessions:
|
|
243
|
+
return None
|
|
244
|
+
|
|
245
|
+
client_sessions = self.sessions[client_key]
|
|
246
|
+
scope_key = self.get_scope_key(required_scopes)
|
|
247
|
+
|
|
248
|
+
if scope_key in client_sessions:
|
|
249
|
+
exact_match = client_sessions[scope_key]
|
|
250
|
+
if self.has_token_expired(exact_match.expires_at):
|
|
251
|
+
self.remove_session(client_key, scope_key)
|
|
252
|
+
else:
|
|
253
|
+
return exact_match
|
|
254
|
+
|
|
255
|
+
# If no exact match was found, look for a superset match
|
|
256
|
+
for key, session in client_sessions.items():
|
|
257
|
+
if self.has_token_expired(session.expires_at):
|
|
258
|
+
self.remove_session(client_key, key)
|
|
259
|
+
elif self.has_required_scopes(session.scopes, required_scopes):
|
|
260
|
+
return session
|
|
261
|
+
|
|
262
|
+
return None
|
|
263
|
+
|
|
208
264
|
def has_required_scopes(
|
|
209
|
-
self, scopes:
|
|
265
|
+
self, scopes: List[str], required_scopes: List[str]
|
|
210
266
|
) -> bool:
|
|
211
|
-
if scopes
|
|
212
|
-
return False
|
|
213
|
-
|
|
267
|
+
"""Check if all required scopes are present in the given scopes."""
|
|
214
268
|
return all(scope in scopes for scope in required_scopes)
|
|
215
269
|
|
|
216
|
-
def get_scopes(
|
|
217
|
-
self, required_scopes: List[str], sess: Optional[Session]
|
|
218
|
-
) -> List[str]:
|
|
219
|
-
scopes = required_scopes.copy()
|
|
220
|
-
if sess is not None and sess.scopes is not None:
|
|
221
|
-
scopes.extend(sess.scopes)
|
|
222
|
-
scopes = list(set(scopes))
|
|
223
|
-
return scopes
|
|
224
|
-
|
|
225
270
|
def has_token_expired(self, expires_at: Optional[int]) -> bool:
|
|
226
|
-
|
|
271
|
+
"""
|
|
272
|
+
Check if the token has expired.
|
|
273
|
+
If no expires_in field was returned by the authorization server, the token is considered to never expire.
|
|
274
|
+
A 60-second buffer is applied to refresh tokens before they actually expire.
|
|
275
|
+
"""
|
|
276
|
+
return expires_at is not None and time.time() + 60 >= expires_at
|
cribl_control_plane/_version.py
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import importlib.metadata
|
|
4
4
|
|
|
5
5
|
__title__: str = "cribl-control-plane"
|
|
6
|
-
__version__: str = "0.
|
|
7
|
-
__openapi_doc_version__: str = "4.
|
|
8
|
-
__gen_version__: str = "2.
|
|
9
|
-
__user_agent__: str = "speakeasy-sdk/python 0.
|
|
6
|
+
__version__: str = "0.4.0b23"
|
|
7
|
+
__openapi_doc_version__: str = "4.16.0-alpha.1765487092497-ed578836"
|
|
8
|
+
__gen_version__: str = "2.778.0"
|
|
9
|
+
__user_agent__: str = "speakeasy-sdk/python 0.4.0b23 2.778.0 4.16.0-alpha.1765487092497-ed578836 cribl-control-plane"
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
if __package__ is not None:
|
cribl_control_plane/acl.py
CHANGED
|
@@ -14,13 +14,15 @@ from typing import Any, Mapping, Optional
|
|
|
14
14
|
class ACL(BaseSDK):
|
|
15
15
|
teams: Teams
|
|
16
16
|
|
|
17
|
-
def __init__(
|
|
18
|
-
|
|
17
|
+
def __init__(
|
|
18
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
19
|
+
) -> None:
|
|
20
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
19
21
|
self.sdk_configuration = sdk_config
|
|
20
22
|
self._init_sdks()
|
|
21
23
|
|
|
22
24
|
def _init_sdks(self):
|
|
23
|
-
self.teams = Teams(self.sdk_configuration)
|
|
25
|
+
self.teams = Teams(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
24
26
|
|
|
25
27
|
def get(
|
|
26
28
|
self,
|
|
@@ -32,7 +34,7 @@ class ACL(BaseSDK):
|
|
|
32
34
|
server_url: Optional[str] = None,
|
|
33
35
|
timeout_ms: Optional[int] = None,
|
|
34
36
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
35
|
-
) -> models.
|
|
37
|
+
) -> models.CountedUserAccessControlList:
|
|
36
38
|
r"""Get the Access Control List for a Worker Group or Edge Fleet
|
|
37
39
|
|
|
38
40
|
Get the Access Control List (ACL) for the specified Worker Group or Edge Fleet.
|
|
@@ -74,16 +76,21 @@ class ACL(BaseSDK):
|
|
|
74
76
|
accept_header_value="application/json",
|
|
75
77
|
http_headers=http_headers,
|
|
76
78
|
security=self.sdk_configuration.security,
|
|
79
|
+
allow_empty_value=None,
|
|
77
80
|
timeout_ms=timeout_ms,
|
|
78
81
|
)
|
|
79
82
|
|
|
80
83
|
if retries == UNSET:
|
|
81
84
|
if self.sdk_configuration.retry_config is not UNSET:
|
|
82
85
|
retries = self.sdk_configuration.retry_config
|
|
86
|
+
else:
|
|
87
|
+
retries = utils.RetryConfig(
|
|
88
|
+
"backoff", utils.BackoffStrategy(500, 60000, 1.5, 3600000), True
|
|
89
|
+
)
|
|
83
90
|
|
|
84
91
|
retry_config = None
|
|
85
92
|
if isinstance(retries, utils.RetryConfig):
|
|
86
|
-
retry_config = (retries, ["429"
|
|
93
|
+
retry_config = (retries, ["429"])
|
|
87
94
|
|
|
88
95
|
http_res = self.do_request(
|
|
89
96
|
hook_ctx=HookContext(
|
|
@@ -103,7 +110,7 @@ class ACL(BaseSDK):
|
|
|
103
110
|
response_data: Any = None
|
|
104
111
|
if utils.match_response(http_res, "200", "application/json"):
|
|
105
112
|
return unmarshal_json_response(
|
|
106
|
-
models.
|
|
113
|
+
models.CountedUserAccessControlList, http_res
|
|
107
114
|
)
|
|
108
115
|
if utils.match_response(http_res, "500", "application/json"):
|
|
109
116
|
response_data = unmarshal_json_response(errors.ErrorData, http_res)
|
|
@@ -127,7 +134,7 @@ class ACL(BaseSDK):
|
|
|
127
134
|
server_url: Optional[str] = None,
|
|
128
135
|
timeout_ms: Optional[int] = None,
|
|
129
136
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
130
|
-
) -> models.
|
|
137
|
+
) -> models.CountedUserAccessControlList:
|
|
131
138
|
r"""Get the Access Control List for a Worker Group or Edge Fleet
|
|
132
139
|
|
|
133
140
|
Get the Access Control List (ACL) for the specified Worker Group or Edge Fleet.
|
|
@@ -169,16 +176,21 @@ class ACL(BaseSDK):
|
|
|
169
176
|
accept_header_value="application/json",
|
|
170
177
|
http_headers=http_headers,
|
|
171
178
|
security=self.sdk_configuration.security,
|
|
179
|
+
allow_empty_value=None,
|
|
172
180
|
timeout_ms=timeout_ms,
|
|
173
181
|
)
|
|
174
182
|
|
|
175
183
|
if retries == UNSET:
|
|
176
184
|
if self.sdk_configuration.retry_config is not UNSET:
|
|
177
185
|
retries = self.sdk_configuration.retry_config
|
|
186
|
+
else:
|
|
187
|
+
retries = utils.RetryConfig(
|
|
188
|
+
"backoff", utils.BackoffStrategy(500, 60000, 1.5, 3600000), True
|
|
189
|
+
)
|
|
178
190
|
|
|
179
191
|
retry_config = None
|
|
180
192
|
if isinstance(retries, utils.RetryConfig):
|
|
181
|
-
retry_config = (retries, ["429"
|
|
193
|
+
retry_config = (retries, ["429"])
|
|
182
194
|
|
|
183
195
|
http_res = await self.do_request_async(
|
|
184
196
|
hook_ctx=HookContext(
|
|
@@ -198,7 +210,7 @@ class ACL(BaseSDK):
|
|
|
198
210
|
response_data: Any = None
|
|
199
211
|
if utils.match_response(http_res, "200", "application/json"):
|
|
200
212
|
return unmarshal_json_response(
|
|
201
|
-
models.
|
|
213
|
+
models.CountedUserAccessControlList, http_res
|
|
202
214
|
)
|
|
203
215
|
if utils.match_response(http_res, "500", "application/json"):
|
|
204
216
|
response_data = unmarshal_json_response(errors.ErrorData, http_res)
|
cribl_control_plane/auth_sdk.py
CHANGED
|
@@ -3,15 +3,18 @@
|
|
|
3
3
|
from .basesdk import BaseSDK
|
|
4
4
|
from .sdkconfiguration import SDKConfiguration
|
|
5
5
|
from cribl_control_plane.tokens import Tokens
|
|
6
|
+
from typing import Optional
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class AuthSDK(BaseSDK):
|
|
9
10
|
tokens: Tokens
|
|
10
11
|
|
|
11
|
-
def __init__(
|
|
12
|
-
|
|
12
|
+
def __init__(
|
|
13
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
14
|
+
) -> None:
|
|
15
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
13
16
|
self.sdk_configuration = sdk_config
|
|
14
17
|
self._init_sdks()
|
|
15
18
|
|
|
16
19
|
def _init_sdks(self):
|
|
17
|
-
self.tokens = Tokens(self.sdk_configuration)
|
|
20
|
+
self.tokens = Tokens(self.sdk_configuration, parent_ref=self.parent_ref)
|
cribl_control_plane/basesdk.py
CHANGED
|
@@ -19,9 +19,19 @@ from urllib.parse import parse_qs, urlparse
|
|
|
19
19
|
|
|
20
20
|
class BaseSDK:
|
|
21
21
|
sdk_configuration: SDKConfiguration
|
|
22
|
+
parent_ref: Optional[object] = None
|
|
23
|
+
"""
|
|
24
|
+
Reference to the root SDK instance, if any. This will prevent it from
|
|
25
|
+
being garbage collected while there are active streams.
|
|
26
|
+
"""
|
|
22
27
|
|
|
23
|
-
def __init__(
|
|
28
|
+
def __init__(
|
|
29
|
+
self,
|
|
30
|
+
sdk_config: SDKConfiguration,
|
|
31
|
+
parent_ref: Optional[object] = None,
|
|
32
|
+
) -> None:
|
|
24
33
|
self.sdk_configuration = sdk_config
|
|
34
|
+
self.parent_ref = parent_ref
|
|
25
35
|
|
|
26
36
|
def _get_url(self, base_url, url_variables):
|
|
27
37
|
sdk_url, sdk_variables = self.sdk_configuration.get_server_details()
|
|
@@ -54,6 +64,7 @@ class BaseSDK:
|
|
|
54
64
|
] = None,
|
|
55
65
|
url_override: Optional[str] = None,
|
|
56
66
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
67
|
+
allow_empty_value: Optional[List[str]] = None,
|
|
57
68
|
) -> httpx.Request:
|
|
58
69
|
client = self.sdk_configuration.async_client
|
|
59
70
|
return self._build_request_with_client(
|
|
@@ -74,6 +85,7 @@ class BaseSDK:
|
|
|
74
85
|
get_serialized_body,
|
|
75
86
|
url_override,
|
|
76
87
|
http_headers,
|
|
88
|
+
allow_empty_value,
|
|
77
89
|
)
|
|
78
90
|
|
|
79
91
|
def _build_request(
|
|
@@ -96,6 +108,7 @@ class BaseSDK:
|
|
|
96
108
|
] = None,
|
|
97
109
|
url_override: Optional[str] = None,
|
|
98
110
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
111
|
+
allow_empty_value: Optional[List[str]] = None,
|
|
99
112
|
) -> httpx.Request:
|
|
100
113
|
client = self.sdk_configuration.client
|
|
101
114
|
return self._build_request_with_client(
|
|
@@ -116,6 +129,7 @@ class BaseSDK:
|
|
|
116
129
|
get_serialized_body,
|
|
117
130
|
url_override,
|
|
118
131
|
http_headers,
|
|
132
|
+
allow_empty_value,
|
|
119
133
|
)
|
|
120
134
|
|
|
121
135
|
def _build_request_with_client(
|
|
@@ -139,6 +153,7 @@ class BaseSDK:
|
|
|
139
153
|
] = None,
|
|
140
154
|
url_override: Optional[str] = None,
|
|
141
155
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
156
|
+
allow_empty_value: Optional[List[str]] = None,
|
|
142
157
|
) -> httpx.Request:
|
|
143
158
|
query_params = {}
|
|
144
159
|
|
|
@@ -154,6 +169,7 @@ class BaseSDK:
|
|
|
154
169
|
query_params = utils.get_query_params(
|
|
155
170
|
request if request_has_query_params else None,
|
|
156
171
|
_globals if request_has_query_params else None,
|
|
172
|
+
allow_empty_value,
|
|
157
173
|
)
|
|
158
174
|
else:
|
|
159
175
|
# Pick up the query parameter from the override so they can be
|
cribl_control_plane/branches.py
CHANGED
|
@@ -17,7 +17,7 @@ class Branches(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.
|
|
20
|
+
) -> models.CountedBranchInfo:
|
|
21
21
|
r"""List all branches in the Git repository used for Cribl configuration
|
|
22
22
|
|
|
23
23
|
Get a list of all branches in the Git repository used for Cribl configuration.
|
|
@@ -49,16 +49,21 @@ class Branches(BaseSDK):
|
|
|
49
49
|
accept_header_value="application/json",
|
|
50
50
|
http_headers=http_headers,
|
|
51
51
|
security=self.sdk_configuration.security,
|
|
52
|
+
allow_empty_value=None,
|
|
52
53
|
timeout_ms=timeout_ms,
|
|
53
54
|
)
|
|
54
55
|
|
|
55
56
|
if retries == UNSET:
|
|
56
57
|
if self.sdk_configuration.retry_config is not UNSET:
|
|
57
58
|
retries = self.sdk_configuration.retry_config
|
|
59
|
+
else:
|
|
60
|
+
retries = utils.RetryConfig(
|
|
61
|
+
"backoff", utils.BackoffStrategy(500, 60000, 1.5, 3600000), True
|
|
62
|
+
)
|
|
58
63
|
|
|
59
64
|
retry_config = None
|
|
60
65
|
if isinstance(retries, utils.RetryConfig):
|
|
61
|
-
retry_config = (retries, ["429"
|
|
66
|
+
retry_config = (retries, ["429"])
|
|
62
67
|
|
|
63
68
|
http_res = self.do_request(
|
|
64
69
|
hook_ctx=HookContext(
|
|
@@ -77,7 +82,7 @@ class Branches(BaseSDK):
|
|
|
77
82
|
|
|
78
83
|
response_data: Any = None
|
|
79
84
|
if utils.match_response(http_res, "200", "application/json"):
|
|
80
|
-
return unmarshal_json_response(models.
|
|
85
|
+
return unmarshal_json_response(models.CountedBranchInfo, http_res)
|
|
81
86
|
if utils.match_response(http_res, "500", "application/json"):
|
|
82
87
|
response_data = unmarshal_json_response(errors.ErrorData, http_res)
|
|
83
88
|
raise errors.Error(response_data, http_res)
|
|
@@ -97,7 +102,7 @@ class Branches(BaseSDK):
|
|
|
97
102
|
server_url: Optional[str] = None,
|
|
98
103
|
timeout_ms: Optional[int] = None,
|
|
99
104
|
http_headers: Optional[Mapping[str, str]] = None,
|
|
100
|
-
) -> models.
|
|
105
|
+
) -> models.CountedBranchInfo:
|
|
101
106
|
r"""List all branches in the Git repository used for Cribl configuration
|
|
102
107
|
|
|
103
108
|
Get a list of all branches in the Git repository used for Cribl configuration.
|
|
@@ -129,16 +134,21 @@ class Branches(BaseSDK):
|
|
|
129
134
|
accept_header_value="application/json",
|
|
130
135
|
http_headers=http_headers,
|
|
131
136
|
security=self.sdk_configuration.security,
|
|
137
|
+
allow_empty_value=None,
|
|
132
138
|
timeout_ms=timeout_ms,
|
|
133
139
|
)
|
|
134
140
|
|
|
135
141
|
if retries == UNSET:
|
|
136
142
|
if self.sdk_configuration.retry_config is not UNSET:
|
|
137
143
|
retries = self.sdk_configuration.retry_config
|
|
144
|
+
else:
|
|
145
|
+
retries = utils.RetryConfig(
|
|
146
|
+
"backoff", utils.BackoffStrategy(500, 60000, 1.5, 3600000), True
|
|
147
|
+
)
|
|
138
148
|
|
|
139
149
|
retry_config = None
|
|
140
150
|
if isinstance(retries, utils.RetryConfig):
|
|
141
|
-
retry_config = (retries, ["429"
|
|
151
|
+
retry_config = (retries, ["429"])
|
|
142
152
|
|
|
143
153
|
http_res = await self.do_request_async(
|
|
144
154
|
hook_ctx=HookContext(
|
|
@@ -157,7 +167,7 @@ class Branches(BaseSDK):
|
|
|
157
167
|
|
|
158
168
|
response_data: Any = None
|
|
159
169
|
if utils.match_response(http_res, "200", "application/json"):
|
|
160
|
-
return unmarshal_json_response(models.
|
|
170
|
+
return unmarshal_json_response(models.CountedBranchInfo, http_res)
|
|
161
171
|
if utils.match_response(http_res, "500", "application/json"):
|
|
162
172
|
response_data = unmarshal_json_response(errors.ErrorData, http_res)
|
|
163
173
|
raise errors.Error(response_data, http_res)
|
|
@@ -209,16 +219,21 @@ class Branches(BaseSDK):
|
|
|
209
219
|
accept_header_value="application/json",
|
|
210
220
|
http_headers=http_headers,
|
|
211
221
|
security=self.sdk_configuration.security,
|
|
222
|
+
allow_empty_value=None,
|
|
212
223
|
timeout_ms=timeout_ms,
|
|
213
224
|
)
|
|
214
225
|
|
|
215
226
|
if retries == UNSET:
|
|
216
227
|
if self.sdk_configuration.retry_config is not UNSET:
|
|
217
228
|
retries = self.sdk_configuration.retry_config
|
|
229
|
+
else:
|
|
230
|
+
retries = utils.RetryConfig(
|
|
231
|
+
"backoff", utils.BackoffStrategy(500, 60000, 1.5, 3600000), True
|
|
232
|
+
)
|
|
218
233
|
|
|
219
234
|
retry_config = None
|
|
220
235
|
if isinstance(retries, utils.RetryConfig):
|
|
221
|
-
retry_config = (retries, ["429"
|
|
236
|
+
retry_config = (retries, ["429"])
|
|
222
237
|
|
|
223
238
|
http_res = self.do_request(
|
|
224
239
|
hook_ctx=HookContext(
|
|
@@ -289,16 +304,21 @@ class Branches(BaseSDK):
|
|
|
289
304
|
accept_header_value="application/json",
|
|
290
305
|
http_headers=http_headers,
|
|
291
306
|
security=self.sdk_configuration.security,
|
|
307
|
+
allow_empty_value=None,
|
|
292
308
|
timeout_ms=timeout_ms,
|
|
293
309
|
)
|
|
294
310
|
|
|
295
311
|
if retries == UNSET:
|
|
296
312
|
if self.sdk_configuration.retry_config is not UNSET:
|
|
297
313
|
retries = self.sdk_configuration.retry_config
|
|
314
|
+
else:
|
|
315
|
+
retries = utils.RetryConfig(
|
|
316
|
+
"backoff", utils.BackoffStrategy(500, 60000, 1.5, 3600000), True
|
|
317
|
+
)
|
|
298
318
|
|
|
299
319
|
retry_config = None
|
|
300
320
|
if isinstance(retries, utils.RetryConfig):
|
|
301
|
-
retry_config = (retries, ["429"
|
|
321
|
+
retry_config = (retries, ["429"])
|
|
302
322
|
|
|
303
323
|
http_res = await self.do_request_async(
|
|
304
324
|
hook_ctx=HookContext(
|