cribl-control-plane 0.3.0b2__py3-none-any.whl → 0.3.0b4__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 (113) 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 -24
  5. cribl_control_plane/health.py +22 -16
  6. cribl_control_plane/models/__init__.py +152 -29
  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/input.py +15 -15
  15. cribl_control_plane/models/inputappscope.py +20 -16
  16. cribl_control_plane/models/inputconfluentcloud.py +110 -0
  17. cribl_control_plane/models/inputcriblhttp.py +20 -16
  18. cribl_control_plane/models/inputcribllakehttp.py +20 -16
  19. cribl_control_plane/models/inputcribltcp.py +20 -16
  20. cribl_control_plane/models/inputdatadogagent.py +20 -16
  21. cribl_control_plane/models/inputedgeprometheus.py +44 -36
  22. cribl_control_plane/models/inputelastic.py +44 -27
  23. cribl_control_plane/models/inputeventhub.py +118 -0
  24. cribl_control_plane/models/inputfile.py +7 -2
  25. cribl_control_plane/models/inputfirehose.py +20 -16
  26. cribl_control_plane/models/inputgrafana.py +39 -31
  27. cribl_control_plane/models/inputhttp.py +20 -16
  28. cribl_control_plane/models/inputhttpraw.py +20 -16
  29. cribl_control_plane/models/inputkafka.py +108 -0
  30. cribl_control_plane/models/inputloki.py +20 -16
  31. cribl_control_plane/models/inputmetrics.py +20 -16
  32. cribl_control_plane/models/inputmodeldriventelemetry.py +20 -16
  33. cribl_control_plane/models/inputopentelemetry.py +19 -15
  34. cribl_control_plane/models/inputprometheus.py +44 -36
  35. cribl_control_plane/models/inputprometheusrw.py +20 -16
  36. cribl_control_plane/models/inputsplunk.py +20 -16
  37. cribl_control_plane/models/inputsplunkhec.py +19 -15
  38. cribl_control_plane/models/inputsyslog.py +39 -31
  39. cribl_control_plane/models/inputsystemmetrics.py +20 -10
  40. cribl_control_plane/models/inputtcp.py +30 -16
  41. cribl_control_plane/models/inputtcpjson.py +20 -16
  42. cribl_control_plane/models/inputwindowsmetrics.py +20 -10
  43. cribl_control_plane/models/inputwineventlogs.py +14 -0
  44. cribl_control_plane/models/inputwizwebhook.py +20 -16
  45. cribl_control_plane/models/inputzscalerhec.py +19 -15
  46. cribl_control_plane/models/logininfo.py +3 -3
  47. cribl_control_plane/models/output.py +21 -21
  48. cribl_control_plane/models/outputazureblob.py +7 -0
  49. cribl_control_plane/models/outputazuredataexplorer.py +283 -93
  50. cribl_control_plane/models/outputazureeventhub.py +169 -21
  51. cribl_control_plane/models/outputazurelogs.py +49 -21
  52. cribl_control_plane/models/outputchronicle.py +49 -21
  53. cribl_control_plane/models/outputclickhouse.py +49 -21
  54. cribl_control_plane/models/outputcloudwatch.py +49 -21
  55. cribl_control_plane/models/outputconfluentcloud.py +167 -22
  56. cribl_control_plane/models/outputcriblhttp.py +49 -21
  57. cribl_control_plane/models/outputcribltcp.py +49 -21
  58. cribl_control_plane/models/outputcrowdstrikenextgensiem.py +50 -22
  59. cribl_control_plane/models/outputdatabricks.py +7 -0
  60. cribl_control_plane/models/outputdatadog.py +49 -21
  61. cribl_control_plane/models/outputdataset.py +49 -21
  62. cribl_control_plane/models/outputdls3.py +7 -0
  63. cribl_control_plane/models/outputdynatracehttp.py +49 -21
  64. cribl_control_plane/models/outputdynatraceotlp.py +49 -21
  65. cribl_control_plane/models/outputelastic.py +74 -21
  66. cribl_control_plane/models/outputelasticcloud.py +74 -21
  67. cribl_control_plane/models/outputfilesystem.py +7 -0
  68. cribl_control_plane/models/outputgooglechronicle.py +65 -22
  69. cribl_control_plane/models/outputgooglecloudlogging.py +50 -22
  70. cribl_control_plane/models/outputgooglecloudstorage.py +7 -0
  71. cribl_control_plane/models/outputgooglepubsub.py +49 -21
  72. cribl_control_plane/models/outputgrafanacloud.py +98 -42
  73. cribl_control_plane/models/outputgraphite.py +49 -21
  74. cribl_control_plane/models/outputhoneycomb.py +49 -21
  75. cribl_control_plane/models/outputhumiohec.py +49 -21
  76. cribl_control_plane/models/outputinfluxdb.py +49 -21
  77. cribl_control_plane/models/outputkafka.py +162 -19
  78. cribl_control_plane/models/outputkinesis.py +56 -21
  79. cribl_control_plane/models/outputloki.py +47 -19
  80. cribl_control_plane/models/outputminio.py +7 -0
  81. cribl_control_plane/models/outputmsk.py +54 -19
  82. cribl_control_plane/models/outputnewrelic.py +49 -21
  83. cribl_control_plane/models/outputnewrelicevents.py +50 -22
  84. cribl_control_plane/models/outputopentelemetry.py +49 -21
  85. cribl_control_plane/models/outputprometheus.py +49 -21
  86. cribl_control_plane/models/outputs3.py +7 -0
  87. cribl_control_plane/models/outputsentinel.py +49 -21
  88. cribl_control_plane/models/outputsentineloneaisiem.py +50 -22
  89. cribl_control_plane/models/outputservicenow.py +49 -21
  90. cribl_control_plane/models/outputsignalfx.py +49 -21
  91. cribl_control_plane/models/outputsns.py +47 -19
  92. cribl_control_plane/models/outputsplunk.py +49 -21
  93. cribl_control_plane/models/outputsplunkhec.py +124 -21
  94. cribl_control_plane/models/outputsplunklb.py +49 -21
  95. cribl_control_plane/models/outputsqs.py +47 -19
  96. cribl_control_plane/models/outputstatsd.py +49 -21
  97. cribl_control_plane/models/outputstatsdext.py +49 -21
  98. cribl_control_plane/models/outputsumologic.py +49 -21
  99. cribl_control_plane/models/outputsyslog.py +129 -99
  100. cribl_control_plane/models/outputtcpjson.py +49 -21
  101. cribl_control_plane/models/outputwavefront.py +49 -21
  102. cribl_control_plane/models/outputwebhook.py +49 -21
  103. cribl_control_plane/models/outputxsiam.py +47 -19
  104. cribl_control_plane/models/runnablejobcollection.py +12 -8
  105. cribl_control_plane/models/runnablejobexecutor.py +12 -8
  106. cribl_control_plane/models/runnablejobscheduledsearch.py +12 -8
  107. cribl_control_plane/routes_sdk.py +6 -6
  108. cribl_control_plane/tokens.py +23 -15
  109. {cribl_control_plane-0.3.0b2.dist-info → cribl_control_plane-0.3.0b4.dist-info}/METADATA +4 -4
  110. {cribl_control_plane-0.3.0b2.dist-info → cribl_control_plane-0.3.0b4.dist-info}/RECORD +111 -112
  111. cribl_control_plane/models/error.py +0 -16
  112. cribl_control_plane/models/gethealthinfoop.py +0 -17
  113. {cribl_control_plane-0.3.0b2.dist-info → cribl_control_plane-0.3.0b4.dist-info}/WHEEL +0 -0
@@ -3,18 +3,15 @@
3
3
  from __future__ import annotations
4
4
  from cribl_control_plane.types import BaseModel
5
5
  import pydantic
6
- from typing import Optional
7
- from typing_extensions import Annotated, NotRequired, TypedDict
6
+ from typing_extensions import Annotated, TypedDict
8
7
 
9
8
 
10
9
  class AuthTokenTypedDict(TypedDict):
10
+ force_password_change: bool
11
11
  token: str
12
- force_password_change: NotRequired[bool]
13
12
 
14
13
 
15
14
  class AuthToken(BaseModel):
16
- token: str
15
+ force_password_change: Annotated[bool, pydantic.Field(alias="forcePasswordChange")]
17
16
 
18
- force_password_change: Annotated[
19
- Optional[bool], pydantic.Field(alias="forcePasswordChange")
20
- ] = None
17
+ token: str
@@ -14,7 +14,7 @@ from typing import List, Optional
14
14
  from typing_extensions import Annotated, NotRequired, TypedDict
15
15
 
16
16
 
17
- class EstimatedIngestRate(int, Enum, metaclass=utils.OpenEnumMeta):
17
+ class ConfigGroupEstimatedIngestRate(int, Enum, metaclass=utils.OpenEnumMeta):
18
18
  r"""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.)"""
19
19
 
20
20
  # 12 MB/sec
@@ -37,13 +37,13 @@ class EstimatedIngestRate(int, Enum, metaclass=utils.OpenEnumMeta):
37
37
  RATE180_MB_PER_SEC = 15360
38
38
 
39
39
 
40
- class GitTypedDict(TypedDict):
40
+ class ConfigGroupGitTypedDict(TypedDict):
41
41
  commit: NotRequired[str]
42
42
  local_changes: NotRequired[float]
43
43
  log: NotRequired[List[CommitTypedDict]]
44
44
 
45
45
 
46
- class Git(BaseModel):
46
+ class ConfigGroupGit(BaseModel):
47
47
  commit: Optional[str] = None
48
48
 
49
49
  local_changes: Annotated[Optional[float], pydantic.Field(alias="localChanges")] = (
@@ -63,9 +63,9 @@ class ConfigGroupTypedDict(TypedDict):
63
63
  config_version: NotRequired[str]
64
64
  deploying_worker_count: NotRequired[float]
65
65
  description: NotRequired[str]
66
- estimated_ingest_rate: NotRequired[EstimatedIngestRate]
66
+ estimated_ingest_rate: NotRequired[ConfigGroupEstimatedIngestRate]
67
67
  r"""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.)"""
68
- git: NotRequired[GitTypedDict]
68
+ git: NotRequired[ConfigGroupGitTypedDict]
69
69
  incompatible_worker_count: NotRequired[float]
70
70
  inherits: NotRequired[str]
71
71
  is_fleet: NotRequired[bool]
@@ -100,13 +100,14 @@ class ConfigGroup(BaseModel):
100
100
 
101
101
  estimated_ingest_rate: Annotated[
102
102
  Annotated[
103
- Optional[EstimatedIngestRate], PlainValidator(validate_open_enum(True))
103
+ Optional[ConfigGroupEstimatedIngestRate],
104
+ PlainValidator(validate_open_enum(True)),
104
105
  ],
105
106
  pydantic.Field(alias="estimatedIngestRate"),
106
107
  ] = None
107
108
  r"""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.)"""
108
109
 
109
- git: Optional[Git] = None
110
+ git: Optional[ConfigGroupGit] = None
110
111
 
111
112
  incompatible_worker_count: Annotated[
112
113
  Optional[float], pydantic.Field(alias="incompatibleWorkerCount")
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
  from .configgroup import ConfigGroup, ConfigGroupTypedDict
5
+ from .groupcreaterequest import GroupCreateRequest, GroupCreateRequestTypedDict
5
6
  from .productscore import ProductsCore
6
7
  from cribl_control_plane.types import BaseModel
7
8
  from cribl_control_plane.utils import (
@@ -18,8 +19,8 @@ from typing_extensions import Annotated, NotRequired, TypedDict
18
19
  class CreateConfigGroupByProductRequestTypedDict(TypedDict):
19
20
  product: ProductsCore
20
21
  r"""Name of the Cribl product to add the Worker Group or Edge Fleet to."""
21
- config_group: ConfigGroupTypedDict
22
- r"""ConfigGroup object"""
22
+ group_create_request: GroupCreateRequestTypedDict
23
+ r"""GroupCreateRequest object"""
23
24
 
24
25
 
25
26
  class CreateConfigGroupByProductRequest(BaseModel):
@@ -29,11 +30,11 @@ class CreateConfigGroupByProductRequest(BaseModel):
29
30
  ]
30
31
  r"""Name of the Cribl product to add the Worker Group or Edge Fleet to."""
31
32
 
32
- config_group: Annotated[
33
- ConfigGroup,
33
+ group_create_request: Annotated[
34
+ GroupCreateRequest,
34
35
  FieldMetadata(request=RequestMetadata(media_type="application/json")),
35
36
  ]
36
- r"""ConfigGroup object"""
37
+ r"""GroupCreateRequest object"""
37
38
 
38
39
 
39
40
  class CreateConfigGroupByProductResponseTypedDict(TypedDict):
@@ -11,7 +11,7 @@ from typing_extensions import Annotated, NotRequired, TypedDict
11
11
 
12
12
  class CreateRoutesAppendByIDRequestTypedDict(TypedDict):
13
13
  id: str
14
- r"""The <code>id</code> of the Routing table to append the Route to. The supported value is <code>default</code>."""
14
+ r"""The <code>id</code> of the Routing table to add the Route to. The supported value is <code>default</code>."""
15
15
  request_body: List[RouteConfTypedDict]
16
16
  r"""RouteDefinitions object"""
17
17
 
@@ -20,7 +20,7 @@ class CreateRoutesAppendByIDRequest(BaseModel):
20
20
  id: Annotated[
21
21
  str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
22
22
  ]
23
- r"""The <code>id</code> of the Routing table to append the Route to. The supported value is <code>default</code>."""
23
+ r"""The <code>id</code> of the Routing table to add the Route to. The supported value is <code>default</code>."""
24
24
 
25
25
  request_body: Annotated[
26
26
  List[RouteConf],
@@ -20,7 +20,7 @@ class DeleteOutputPqByIDRequest(BaseModel):
20
20
 
21
21
 
22
22
  class DeleteOutputPqByIDResponseTypedDict(TypedDict):
23
- r"""a list of string objects"""
23
+ r"""A list of job ids for the background job that clears the persistent queue"""
24
24
 
25
25
  count: NotRequired[int]
26
26
  r"""number of items present in the items array"""
@@ -28,7 +28,7 @@ class DeleteOutputPqByIDResponseTypedDict(TypedDict):
28
28
 
29
29
 
30
30
  class DeleteOutputPqByIDResponse(BaseModel):
31
- r"""a list of string objects"""
31
+ r"""A list of job ids for the background job that clears the persistent queue"""
32
32
 
33
33
  count: Optional[int] = None
34
34
  r"""number of items present in the items array"""
@@ -0,0 +1,152 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .commit import Commit, CommitTypedDict
5
+ from .configgroupcloud import ConfigGroupCloud, ConfigGroupCloudTypedDict
6
+ from .configgrouplookups import ConfigGroupLookups, ConfigGroupLookupsTypedDict
7
+ from cribl_control_plane import utils
8
+ from cribl_control_plane.types import BaseModel
9
+ from cribl_control_plane.utils import validate_open_enum
10
+ from enum import Enum
11
+ import pydantic
12
+ from pydantic.functional_validators import PlainValidator
13
+ from typing import List, Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class GroupCreateRequestEstimatedIngestRate(int, Enum, metaclass=utils.OpenEnumMeta):
18
+ r"""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.)"""
19
+
20
+ # 12 MB/sec
21
+ RATE12_MB_PER_SEC = 1024
22
+ # 24 MB/sec
23
+ RATE24_MB_PER_SEC = 2048
24
+ # 36 MB/sec
25
+ RATE36_MB_PER_SEC = 3072
26
+ # 48 MB/sec
27
+ RATE48_MB_PER_SEC = 4096
28
+ # 60 MB/sec
29
+ RATE60_MB_PER_SEC = 5120
30
+ # 84 MB/sec
31
+ RATE84_MB_PER_SEC = 7168
32
+ # 120 MB/sec
33
+ RATE120_MB_PER_SEC = 10240
34
+ # 156 MB/sec
35
+ RATE156_MB_PER_SEC = 13312
36
+ # 180 MB/sec
37
+ RATE180_MB_PER_SEC = 15360
38
+
39
+
40
+ class GroupCreateRequestGitTypedDict(TypedDict):
41
+ commit: NotRequired[str]
42
+ local_changes: NotRequired[float]
43
+ log: NotRequired[List[CommitTypedDict]]
44
+
45
+
46
+ class GroupCreateRequestGit(BaseModel):
47
+ commit: Optional[str] = None
48
+
49
+ local_changes: Annotated[Optional[float], pydantic.Field(alias="localChanges")] = (
50
+ None
51
+ )
52
+
53
+ log: Optional[List[Commit]] = None
54
+
55
+
56
+ class GroupCreateRequestType(str, Enum, metaclass=utils.OpenEnumMeta):
57
+ LAKE_ACCESS = "lake_access"
58
+
59
+
60
+ class GroupCreateRequestTypedDict(TypedDict):
61
+ id: str
62
+ cloud: NotRequired[ConfigGroupCloudTypedDict]
63
+ deploying_worker_count: NotRequired[float]
64
+ description: NotRequired[str]
65
+ estimated_ingest_rate: NotRequired[GroupCreateRequestEstimatedIngestRate]
66
+ r"""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.)"""
67
+ git: NotRequired[GroupCreateRequestGitTypedDict]
68
+ incompatible_worker_count: NotRequired[float]
69
+ inherits: NotRequired[str]
70
+ is_fleet: NotRequired[bool]
71
+ is_search: NotRequired[bool]
72
+ lookup_deployments: NotRequired[List[ConfigGroupLookupsTypedDict]]
73
+ max_worker_age: NotRequired[str]
74
+ name: NotRequired[str]
75
+ on_prem: NotRequired[bool]
76
+ provisioned: NotRequired[bool]
77
+ source_group_id: NotRequired[str]
78
+ streamtags: NotRequired[List[str]]
79
+ tags: NotRequired[str]
80
+ type: NotRequired[GroupCreateRequestType]
81
+ upgrade_version: NotRequired[str]
82
+ worker_count: NotRequired[float]
83
+ worker_remote_access: NotRequired[bool]
84
+
85
+
86
+ class GroupCreateRequest(BaseModel):
87
+ id: str
88
+
89
+ cloud: Optional[ConfigGroupCloud] = None
90
+
91
+ deploying_worker_count: Annotated[
92
+ Optional[float], pydantic.Field(alias="deployingWorkerCount")
93
+ ] = None
94
+
95
+ description: Optional[str] = None
96
+
97
+ estimated_ingest_rate: Annotated[
98
+ Annotated[
99
+ Optional[GroupCreateRequestEstimatedIngestRate],
100
+ PlainValidator(validate_open_enum(True)),
101
+ ],
102
+ pydantic.Field(alias="estimatedIngestRate"),
103
+ ] = None
104
+ r"""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.)"""
105
+
106
+ git: Optional[GroupCreateRequestGit] = None
107
+
108
+ incompatible_worker_count: Annotated[
109
+ Optional[float], pydantic.Field(alias="incompatibleWorkerCount")
110
+ ] = None
111
+
112
+ inherits: Optional[str] = None
113
+
114
+ is_fleet: Annotated[Optional[bool], pydantic.Field(alias="isFleet")] = None
115
+
116
+ is_search: Annotated[Optional[bool], pydantic.Field(alias="isSearch")] = None
117
+
118
+ lookup_deployments: Annotated[
119
+ Optional[List[ConfigGroupLookups]], pydantic.Field(alias="lookupDeployments")
120
+ ] = None
121
+
122
+ max_worker_age: Annotated[Optional[str], pydantic.Field(alias="maxWorkerAge")] = (
123
+ None
124
+ )
125
+
126
+ name: Optional[str] = None
127
+
128
+ on_prem: Annotated[Optional[bool], pydantic.Field(alias="onPrem")] = None
129
+
130
+ provisioned: Optional[bool] = None
131
+
132
+ source_group_id: Annotated[Optional[str], pydantic.Field(alias="sourceGroupId")] = (
133
+ None
134
+ )
135
+
136
+ streamtags: Optional[List[str]] = None
137
+
138
+ tags: Optional[str] = None
139
+
140
+ type: Annotated[
141
+ Optional[GroupCreateRequestType], PlainValidator(validate_open_enum(False))
142
+ ] = None
143
+
144
+ upgrade_version: Annotated[
145
+ Optional[str], pydantic.Field(alias="upgradeVersion")
146
+ ] = None
147
+
148
+ worker_count: Annotated[Optional[float], pydantic.Field(alias="workerCount")] = None
149
+
150
+ worker_remote_access: Annotated[
151
+ Optional[bool], pydantic.Field(alias="workerRemoteAccess")
152
+ ] = None
@@ -12,25 +12,25 @@ from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
13
13
 
14
14
  class Role(str, Enum, metaclass=utils.OpenEnumMeta):
15
- PRIMARY = "primary"
16
15
  STANDBY = "standby"
16
+ PRIMARY = "primary"
17
17
 
18
18
 
19
19
  class Status(str, Enum, metaclass=utils.OpenEnumMeta):
20
- HEALTHY = "healthy"
21
20
  SHUTTING_DOWN = "shutting down"
21
+ HEALTHY = "healthy"
22
22
  STANDBY = "standby"
23
23
 
24
24
 
25
- class HealthStatusTypedDict(TypedDict):
26
- status: Status
25
+ class HealthServerStatusTypedDict(TypedDict):
27
26
  start_time: float
27
+ status: Status
28
28
  role: NotRequired[Role]
29
29
 
30
30
 
31
- class HealthStatus(BaseModel):
32
- status: Annotated[Status, PlainValidator(validate_open_enum(False))]
33
-
31
+ class HealthServerStatus(BaseModel):
34
32
  start_time: Annotated[float, pydantic.Field(alias="startTime")]
35
33
 
34
+ status: Annotated[Status, PlainValidator(validate_open_enum(False))]
35
+
36
36
  role: Annotated[Optional[Role], PlainValidator(validate_open_enum(False))] = None
@@ -75,59 +75,59 @@ from typing_extensions import Annotated, TypeAliasType
75
75
  InputTypedDict = TypeAliasType(
76
76
  "InputTypedDict",
77
77
  Union[
78
- InputDatagenTypedDict,
79
- InputKubeEventsTypedDict,
80
78
  InputCriblTypedDict,
79
+ InputKubeEventsTypedDict,
80
+ InputDatagenTypedDict,
81
81
  InputCriblmetricsTypedDict,
82
82
  InputKubeMetricsTypedDict,
83
- InputCollectionTypedDict,
84
83
  InputSystemStateTypedDict,
84
+ InputCollectionTypedDict,
85
85
  InputModelDrivenTelemetryTypedDict,
86
86
  InputSystemMetricsTypedDict,
87
87
  InputWindowsMetricsTypedDict,
88
88
  InputJournalFilesTypedDict,
89
- InputWinEventLogsTypedDict,
90
89
  InputRawUDPTypedDict,
91
- InputExecTypedDict,
92
90
  InputKubeLogsTypedDict,
93
- InputMetricsTypedDict,
91
+ InputExecTypedDict,
94
92
  InputSnmpTypedDict,
93
+ InputMetricsTypedDict,
94
+ InputWinEventLogsTypedDict,
95
95
  InputCriblTCPTypedDict,
96
96
  InputNetflowTypedDict,
97
97
  InputTcpjsonTypedDict,
98
98
  InputGooglePubsubTypedDict,
99
99
  InputOffice365ServiceTypedDict,
100
100
  InputWizTypedDict,
101
- InputTCPTypedDict,
102
101
  InputFirehoseTypedDict,
103
102
  InputCriblHTTPTypedDict,
104
103
  InputDatadogAgentTypedDict,
105
104
  InputOffice365MgmtTypedDict,
106
- InputFileTypedDict,
105
+ InputTCPTypedDict,
107
106
  InputSplunkTypedDict,
108
- InputWefTypedDict,
107
+ InputFileTypedDict,
109
108
  InputAppscopeTypedDict,
109
+ InputWefTypedDict,
110
110
  InputHTTPRawTypedDict,
111
111
  InputWizWebhookTypedDict,
112
- InputHTTPTypedDict,
113
112
  InputCriblLakeHTTPTypedDict,
114
- InputAzureBlobTypedDict,
115
- InputSqsTypedDict,
113
+ InputHTTPTypedDict,
116
114
  InputZscalerHecTypedDict,
115
+ InputSqsTypedDict,
116
+ InputAzureBlobTypedDict,
117
117
  InputKinesisTypedDict,
118
118
  InputConfluentCloudTypedDict,
119
119
  InputEventhubTypedDict,
120
120
  InputKafkaTypedDict,
121
121
  InputElasticTypedDict,
122
- InputOffice365MsgTraceTypedDict,
123
122
  InputSplunkHecTypedDict,
123
+ InputOffice365MsgTraceTypedDict,
124
124
  InputLokiTypedDict,
125
125
  InputPrometheusRwTypedDict,
126
- InputPrometheusTypedDict,
127
126
  InputCrowdstrikeTypedDict,
128
- InputEdgePrometheusTypedDict,
127
+ InputPrometheusTypedDict,
129
128
  InputOpenTelemetryTypedDict,
130
129
  InputS3TypedDict,
130
+ InputEdgePrometheusTypedDict,
131
131
  InputSecurityLakeTypedDict,
132
132
  InputMskTypedDict,
133
133
  InputS3InventoryTypedDict,
@@ -7,7 +7,7 @@ from cribl_control_plane.utils import validate_open_enum
7
7
  from enum import Enum
8
8
  import pydantic
9
9
  from pydantic.functional_validators import PlainValidator
10
- from typing import Any, List, Optional
10
+ from typing import List, Optional
11
11
  from typing_extensions import Annotated, NotRequired, TypedDict
12
12
 
13
13
 
@@ -221,6 +221,12 @@ class InputAppscopeMaximumTLSVersion(str, Enum, metaclass=utils.OpenEnumMeta):
221
221
 
222
222
  class InputAppscopeTLSSettingsServerSideTypedDict(TypedDict):
223
223
  disabled: NotRequired[bool]
224
+ request_cert: NotRequired[bool]
225
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
226
+ reject_unauthorized: NotRequired[bool]
227
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
228
+ common_name_regex: NotRequired[str]
229
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
224
230
  certificate_name: NotRequired[str]
225
231
  r"""The name of the predefined certificate"""
226
232
  priv_key_path: NotRequired[str]
@@ -231,10 +237,6 @@ class InputAppscopeTLSSettingsServerSideTypedDict(TypedDict):
231
237
  r"""Path on server containing certificates to use. PEM format. Can reference $ENV_VARS."""
232
238
  ca_path: NotRequired[str]
233
239
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
234
- request_cert: NotRequired[bool]
235
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
236
- reject_unauthorized: NotRequired[Any]
237
- common_name_regex: NotRequired[Any]
238
240
  min_version: NotRequired[InputAppscopeMinimumTLSVersion]
239
241
  max_version: NotRequired[InputAppscopeMaximumTLSVersion]
240
242
 
@@ -242,6 +244,19 @@ class InputAppscopeTLSSettingsServerSideTypedDict(TypedDict):
242
244
  class InputAppscopeTLSSettingsServerSide(BaseModel):
243
245
  disabled: Optional[bool] = True
244
246
 
247
+ request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
248
+ r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
249
+
250
+ reject_unauthorized: Annotated[
251
+ Optional[bool], pydantic.Field(alias="rejectUnauthorized")
252
+ ] = True
253
+ r"""Reject certificates not authorized by a CA in the CA certificate path or by another trusted CA (such as the system's)"""
254
+
255
+ common_name_regex: Annotated[
256
+ Optional[str], pydantic.Field(alias="commonNameRegex")
257
+ ] = "/.*/"
258
+ r"""Regex matching allowable common names in peer certificates' subject attribute"""
259
+
245
260
  certificate_name: Annotated[
246
261
  Optional[str], pydantic.Field(alias="certificateName")
247
262
  ] = None
@@ -259,17 +274,6 @@ class InputAppscopeTLSSettingsServerSide(BaseModel):
259
274
  ca_path: Annotated[Optional[str], pydantic.Field(alias="caPath")] = None
260
275
  r"""Path on server containing CA certificates to use. PEM format. Can reference $ENV_VARS."""
261
276
 
262
- request_cert: Annotated[Optional[bool], pydantic.Field(alias="requestCert")] = False
263
- r"""Require clients to present their certificates. Used to perform client authentication using SSL certs."""
264
-
265
- reject_unauthorized: Annotated[
266
- Optional[Any], pydantic.Field(alias="rejectUnauthorized")
267
- ] = None
268
-
269
- common_name_regex: Annotated[
270
- Optional[Any], pydantic.Field(alias="commonNameRegex")
271
- ] = None
272
-
273
277
  min_version: Annotated[
274
278
  Annotated[
275
279
  Optional[InputAppscopeMinimumTLSVersion],
@@ -341,6 +341,13 @@ class InputConfluentCloudKafkaSchemaRegistryAuthentication(BaseModel):
341
341
  tls: Optional[InputConfluentCloudKafkaSchemaRegistryTLSSettingsClientSide] = None
342
342
 
343
343
 
344
+ class InputConfluentCloudAuthenticationMethod(str, Enum, metaclass=utils.OpenEnumMeta):
345
+ r"""Enter credentials directly, or select a stored secret"""
346
+
347
+ MANUAL = "manual"
348
+ SECRET = "secret"
349
+
350
+
344
351
  class InputConfluentCloudSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
345
352
  # PLAIN
346
353
  PLAIN = "plain"
@@ -352,13 +359,58 @@ class InputConfluentCloudSASLMechanism(str, Enum, metaclass=utils.OpenEnumMeta):
352
359
  KERBEROS = "kerberos"
353
360
 
354
361
 
362
+ class InputConfluentCloudOauthParamTypedDict(TypedDict):
363
+ name: str
364
+ value: str
365
+
366
+
367
+ class InputConfluentCloudOauthParam(BaseModel):
368
+ name: str
369
+
370
+ value: str
371
+
372
+
373
+ class InputConfluentCloudSaslExtensionTypedDict(TypedDict):
374
+ name: str
375
+ value: str
376
+
377
+
378
+ class InputConfluentCloudSaslExtension(BaseModel):
379
+ name: str
380
+
381
+ value: str
382
+
383
+
355
384
  class InputConfluentCloudAuthenticationTypedDict(TypedDict):
356
385
  r"""Authentication parameters to use when connecting to brokers. Using TLS is highly recommended."""
357
386
 
358
387
  disabled: NotRequired[bool]
388
+ username: NotRequired[str]
389
+ password: NotRequired[str]
390
+ auth_type: NotRequired[InputConfluentCloudAuthenticationMethod]
391
+ r"""Enter credentials directly, or select a stored secret"""
392
+ credentials_secret: NotRequired[str]
393
+ r"""Select or create a secret that references your credentials"""
359
394
  mechanism: NotRequired[InputConfluentCloudSASLMechanism]
395
+ keytab_location: NotRequired[str]
396
+ r"""Location of keytab file for authentication principal"""
397
+ principal: NotRequired[str]
398
+ r"""Authentication principal, such as `kafka_user@example.com`"""
399
+ broker_service_class: NotRequired[str]
400
+ r"""Kerberos service class for Kafka brokers, such as `kafka`"""
360
401
  oauth_enabled: NotRequired[bool]
361
402
  r"""Enable OAuth authentication"""
403
+ token_url: NotRequired[str]
404
+ r"""URL of the token endpoint to use for OAuth authentication"""
405
+ client_id: NotRequired[str]
406
+ r"""Client ID to use for OAuth authentication"""
407
+ oauth_secret_type: NotRequired[str]
408
+ client_text_secret: NotRequired[str]
409
+ r"""Select or create a stored text secret"""
410
+ oauth_params: NotRequired[List[InputConfluentCloudOauthParamTypedDict]]
411
+ r"""Additional fields to send to the token endpoint, such as scope or audience"""
412
+ sasl_extensions: NotRequired[List[InputConfluentCloudSaslExtensionTypedDict]]
413
+ r"""Additional SASL extension fields, such as Confluent's logicalCluster or identityPoolId"""
362
414
 
363
415
 
364
416
  class InputConfluentCloudAuthentication(BaseModel):
@@ -366,16 +418,74 @@ class InputConfluentCloudAuthentication(BaseModel):
366
418
 
367
419
  disabled: Optional[bool] = True
368
420
 
421
+ username: Optional[str] = None
422
+
423
+ password: Optional[str] = None
424
+
425
+ auth_type: Annotated[
426
+ Annotated[
427
+ Optional[InputConfluentCloudAuthenticationMethod],
428
+ PlainValidator(validate_open_enum(False)),
429
+ ],
430
+ pydantic.Field(alias="authType"),
431
+ ] = InputConfluentCloudAuthenticationMethod.MANUAL
432
+ r"""Enter credentials directly, or select a stored secret"""
433
+
434
+ credentials_secret: Annotated[
435
+ Optional[str], pydantic.Field(alias="credentialsSecret")
436
+ ] = None
437
+ r"""Select or create a secret that references your credentials"""
438
+
369
439
  mechanism: Annotated[
370
440
  Optional[InputConfluentCloudSASLMechanism],
371
441
  PlainValidator(validate_open_enum(False)),
372
442
  ] = InputConfluentCloudSASLMechanism.PLAIN
373
443
 
444
+ keytab_location: Annotated[
445
+ Optional[str], pydantic.Field(alias="keytabLocation")
446
+ ] = None
447
+ r"""Location of keytab file for authentication principal"""
448
+
449
+ principal: Optional[str] = None
450
+ r"""Authentication principal, such as `kafka_user@example.com`"""
451
+
452
+ broker_service_class: Annotated[
453
+ Optional[str], pydantic.Field(alias="brokerServiceClass")
454
+ ] = None
455
+ r"""Kerberos service class for Kafka brokers, such as `kafka`"""
456
+
374
457
  oauth_enabled: Annotated[Optional[bool], pydantic.Field(alias="oauthEnabled")] = (
375
458
  False
376
459
  )
377
460
  r"""Enable OAuth authentication"""
378
461
 
462
+ token_url: Annotated[Optional[str], pydantic.Field(alias="tokenUrl")] = None
463
+ r"""URL of the token endpoint to use for OAuth authentication"""
464
+
465
+ client_id: Annotated[Optional[str], pydantic.Field(alias="clientId")] = None
466
+ r"""Client ID to use for OAuth authentication"""
467
+
468
+ oauth_secret_type: Annotated[
469
+ Optional[str], pydantic.Field(alias="oauthSecretType")
470
+ ] = "secret"
471
+
472
+ client_text_secret: Annotated[
473
+ Optional[str], pydantic.Field(alias="clientTextSecret")
474
+ ] = None
475
+ r"""Select or create a stored text secret"""
476
+
477
+ oauth_params: Annotated[
478
+ Optional[List[InputConfluentCloudOauthParam]],
479
+ pydantic.Field(alias="oauthParams"),
480
+ ] = None
481
+ r"""Additional fields to send to the token endpoint, such as scope or audience"""
482
+
483
+ sasl_extensions: Annotated[
484
+ Optional[List[InputConfluentCloudSaslExtension]],
485
+ pydantic.Field(alias="saslExtensions"),
486
+ ] = None
487
+ r"""Additional SASL extension fields, such as Confluent's logicalCluster or identityPoolId"""
488
+
379
489
 
380
490
  class InputConfluentCloudMetadatumTypedDict(TypedDict):
381
491
  name: str