nominal-api 0.656.0__py3-none-any.whl → 0.663.2__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 nominal-api might be problematic. Click here for more details.

nominal_api/__init__.py CHANGED
@@ -75,5 +75,5 @@ __all__ = [
75
75
 
76
76
  __conjure_generator_version__ = "4.9.0"
77
77
 
78
- __version__ = "0.656.0"
78
+ __version__ = "0.663.2"
79
79
 
nominal_api/_impl.py CHANGED
@@ -8805,20 +8805,25 @@ class ingest_api_IngestMetadata(ConjureBeanType):
8805
8805
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
8806
8806
  return {
8807
8807
  'timestamp_metadata': ConjureFieldDefinition('timestampMetadata', OptionalTypeWrapper[ingest_api_TimestampMetadata]),
8808
- 'channel_prefix': ConjureFieldDefinition('channelPrefix', OptionalTypeWrapper[str])
8808
+ 'channel_prefix': ConjureFieldDefinition('channelPrefix', OptionalTypeWrapper[str]),
8809
+ 'tag_columns': ConjureFieldDefinition('tagColumns', OptionalTypeWrapper[Dict[api_TagName, api_ColumnName]]),
8810
+ 'additional_file_tags': ConjureFieldDefinition('additionalFileTags', OptionalTypeWrapper[Dict[api_TagName, api_TagValue]])
8809
8811
  }
8810
8812
 
8811
- __slots__: List[str] = ['_timestamp_metadata', '_channel_prefix']
8813
+ __slots__: List[str] = ['_timestamp_metadata', '_channel_prefix', '_tag_columns', '_additional_file_tags']
8812
8814
 
8813
- def __init__(self, channel_prefix: Optional[str] = None, timestamp_metadata: Optional["ingest_api_TimestampMetadata"] = None) -> None:
8815
+ def __init__(self, additional_file_tags: Optional[Dict[str, str]] = None, channel_prefix: Optional[str] = None, tag_columns: Optional[Dict[str, str]] = None, timestamp_metadata: Optional["ingest_api_TimestampMetadata"] = None) -> None:
8814
8816
  self._timestamp_metadata = timestamp_metadata
8815
8817
  self._channel_prefix = channel_prefix
8818
+ self._tag_columns = tag_columns
8819
+ self._additional_file_tags = additional_file_tags
8816
8820
 
8817
8821
  @builtins.property
8818
8822
  def timestamp_metadata(self) -> Optional["ingest_api_TimestampMetadata"]:
8819
8823
  """
8820
- The timestamp metadata will be recovered from the DatasetFiles table if possible.
8821
- If not found, this field must be populated to successfully reingest.
8824
+ The timestamp metadata will be recovered from the dataset files if possible.
8825
+ Older datasets may have unrecoverable timestamp metadata.
8826
+ If unrecoverable, reingestion will throw MissingMetadataForReingest if not provided in request.
8822
8827
  """
8823
8828
  return self._timestamp_metadata
8824
8829
 
@@ -8826,10 +8831,26 @@ If not found, this field must be populated to successfully reingest.
8826
8831
  def channel_prefix(self) -> Optional[str]:
8827
8832
  """
8828
8833
  Channel prefix to use when reingesting the dataset.
8829
- Defaults to empty string.
8834
+ Defaults to empty string. Not recoverable from prior ingests and must be provided in request if needed.
8830
8835
  """
8831
8836
  return self._channel_prefix
8832
8837
 
8838
+ @builtins.property
8839
+ def tag_columns(self) -> Optional[Dict[str, str]]:
8840
+ """
8841
+ A map of tag names to column names to derive the tag values from.
8842
+ Not recoverable from prior ingests and must be provided in request if needed.
8843
+ """
8844
+ return self._tag_columns
8845
+
8846
+ @builtins.property
8847
+ def additional_file_tags(self) -> Optional[Dict[str, str]]:
8848
+ """
8849
+ Additional tags to apply to all dataset files within the the given dataset.
8850
+ Not recoverable from prior ingests and must be provided in request if needed.
8851
+ """
8852
+ return self._additional_file_tags
8853
+
8833
8854
 
8834
8855
  ingest_api_IngestMetadata.__name__ = "IngestMetadata"
8835
8856
  ingest_api_IngestMetadata.__qualname__ = "IngestMetadata"
@@ -9490,7 +9511,7 @@ existing one.
9490
9511
  """
9491
9512
  Re-ingests data from provided source datasets into either an existing target dataset, or a new one.
9492
9513
  Only supported for CSV and Parquet dataset files.
9493
- Cannot ingest from streaming (V2) datasets due to data loss for tags and streaming data.
9514
+ Will only reingest dataset files and will drop streaming data from datasets.
9494
9515
  """
9495
9516
 
9496
9517
  _headers: Dict[str, Any] = {
@@ -9507,7 +9528,7 @@ Cannot ingest from streaming (V2) datasets due to data loss for tags and streami
9507
9528
 
9508
9529
  _json: Any = ConjureEncoder().default(request)
9509
9530
 
9510
- _path = '/ingest/v1/reingest-dataset'
9531
+ _path = '/ingest/v1/reingest-dataset-files'
9511
9532
  _path = _path.format(**_path_params)
9512
9533
 
9513
9534
  _response: Response = self._request(
@@ -10965,8 +10986,8 @@ Will attempt to reingest from datasets in list order.
10965
10986
  def ingest_metadata(self) -> Dict[str, "ingest_api_IngestMetadata"]:
10966
10987
  """
10967
10988
  Mapping of dataset to ingest metadata.
10968
- Ingest metadata will be recovered from existing files if possible.
10969
- If unrecoverable, will fall back to ingest metadata provided in this field.
10989
+ Ingest metadata only needs to be provided in request if it cannot be recovered from prior ingests.
10990
+ See documentation on each field to determine what metadata can be auto-recovered.
10970
10991
  """
10971
10992
  return self._ingest_metadata
10972
10993
 
@@ -12439,6 +12460,72 @@ ingest_workflow_api_ExtractorJobState.__qualname__ = "ExtractorJobState"
12439
12460
  ingest_workflow_api_ExtractorJobState.__module__ = "nominal_api.ingest_workflow_api"
12440
12461
 
12441
12462
 
12463
+ class ingest_workflow_api_FetchExtractorJobLogsRequest(ConjureBeanType):
12464
+ """
12465
+ Request to fetch logs for all containers in a completed extractor job's pod.
12466
+ """
12467
+
12468
+ @builtins.classmethod
12469
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
12470
+ return {
12471
+ 'workspace_rid': ConjureFieldDefinition('workspaceRid', api_rids_WorkspaceRid),
12472
+ 'log_dataset_rid': ConjureFieldDefinition('logDatasetRid', api_rids_DatasetRid),
12473
+ 'ingest_job_uuid': ConjureFieldDefinition('ingestJobUuid', str),
12474
+ 'bearer_token': ConjureFieldDefinition('bearerToken', str),
12475
+ 'extractor_rid': ConjureFieldDefinition('extractorRid', ingest_api_ContainerizedExtractorRid)
12476
+ }
12477
+
12478
+ __slots__: List[str] = ['_workspace_rid', '_log_dataset_rid', '_ingest_job_uuid', '_bearer_token', '_extractor_rid']
12479
+
12480
+ def __init__(self, bearer_token: str, extractor_rid: str, ingest_job_uuid: str, log_dataset_rid: str, workspace_rid: str) -> None:
12481
+ self._workspace_rid = workspace_rid
12482
+ self._log_dataset_rid = log_dataset_rid
12483
+ self._ingest_job_uuid = ingest_job_uuid
12484
+ self._bearer_token = bearer_token
12485
+ self._extractor_rid = extractor_rid
12486
+
12487
+ @builtins.property
12488
+ def workspace_rid(self) -> str:
12489
+ return self._workspace_rid
12490
+
12491
+ @builtins.property
12492
+ def log_dataset_rid(self) -> str:
12493
+ return self._log_dataset_rid
12494
+
12495
+ @builtins.property
12496
+ def ingest_job_uuid(self) -> str:
12497
+ return self._ingest_job_uuid
12498
+
12499
+ @builtins.property
12500
+ def bearer_token(self) -> str:
12501
+ return self._bearer_token
12502
+
12503
+ @builtins.property
12504
+ def extractor_rid(self) -> str:
12505
+ return self._extractor_rid
12506
+
12507
+
12508
+ ingest_workflow_api_FetchExtractorJobLogsRequest.__name__ = "FetchExtractorJobLogsRequest"
12509
+ ingest_workflow_api_FetchExtractorJobLogsRequest.__qualname__ = "FetchExtractorJobLogsRequest"
12510
+ ingest_workflow_api_FetchExtractorJobLogsRequest.__module__ = "nominal_api.ingest_workflow_api"
12511
+
12512
+
12513
+ class ingest_workflow_api_FetchExtractorJobLogsResponse(ConjureBeanType):
12514
+
12515
+ @builtins.classmethod
12516
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
12517
+ return {
12518
+ }
12519
+
12520
+ __slots__: List[str] = []
12521
+
12522
+
12523
+
12524
+ ingest_workflow_api_FetchExtractorJobLogsResponse.__name__ = "FetchExtractorJobLogsResponse"
12525
+ ingest_workflow_api_FetchExtractorJobLogsResponse.__qualname__ = "FetchExtractorJobLogsResponse"
12526
+ ingest_workflow_api_FetchExtractorJobLogsResponse.__module__ = "nominal_api.ingest_workflow_api"
12527
+
12528
+
12442
12529
  class ingest_workflow_api_GetExtractorJobStateRequest(ConjureBeanType):
12443
12530
 
12444
12531
  @builtins.classmethod
@@ -13394,12 +13481,20 @@ class persistent_compute_api_InvalidComputationType(ConjureEnumType):
13394
13481
  '''INTEGRAL'''
13395
13482
  STALENESS_DETECTION = 'STALENESS_DETECTION'
13396
13483
  '''STALENESS_DETECTION'''
13484
+ TIME_RANGE_FILTER = 'TIME_RANGE_FILTER'
13485
+ '''TIME_RANGE_FILTER'''
13397
13486
  FREQUENCY_DOMAIN = 'FREQUENCY_DOMAIN'
13398
13487
  '''FREQUENCY_DOMAIN'''
13399
13488
  CURVE_FITTING = 'CURVE_FITTING'
13400
13489
  '''CURVE_FITTING'''
13401
13490
  PAGE_SUMMARIZATION_STRATEGY = 'PAGE_SUMMARIZATION_STRATEGY'
13402
13491
  '''PAGE_SUMMARIZATION_STRATEGY'''
13492
+ LOOK_BACK_TOO_FAR = 'LOOK_BACK_TOO_FAR'
13493
+ '''LOOK_BACK_TOO_FAR'''
13494
+ LOG_SERIES = 'LOG_SERIES'
13495
+ '''LOG_SERIES'''
13496
+ LITERAL_RANGES = 'LITERAL_RANGES'
13497
+ '''LITERAL_RANGES'''
13403
13498
  UNKNOWN = 'UNKNOWN'
13404
13499
  '''UNKNOWN'''
13405
13500
 
@@ -18222,7 +18317,7 @@ Throws if the asset already has data scopes with data scope names matching those
18222
18317
 
18223
18318
  return
18224
18319
 
18225
- def unarchive(self, auth_header: str, rid: str) -> None:
18320
+ def unarchive(self, auth_header: str, rid: str, include_linked_workbooks: Optional[bool] = None) -> None:
18226
18321
 
18227
18322
  _headers: Dict[str, Any] = {
18228
18323
  'Accept': 'application/json',
@@ -18230,6 +18325,7 @@ Throws if the asset already has data scopes with data scope names matching those
18230
18325
  }
18231
18326
 
18232
18327
  _params: Dict[str, Any] = {
18328
+ 'includeLinkedWorkbooks': include_linked_workbooks,
18233
18329
  }
18234
18330
 
18235
18331
  _path_params: Dict[str, Any] = {
@@ -27395,6 +27491,10 @@ class scout_checklistexecution_api_InvalidStreamingComputeNode(ConjureEnumType):
27395
27491
  '''INTEGRAL'''
27396
27492
  STALENESS_DETECTION = 'STALENESS_DETECTION'
27397
27493
  '''STALENESS_DETECTION'''
27494
+ LITERAL_RANGES = 'LITERAL_RANGES'
27495
+ '''LITERAL_RANGES'''
27496
+ TIME_RANGE_FILTER = 'TIME_RANGE_FILTER'
27497
+ '''TIME_RANGE_FILTER'''
27398
27498
  UNKNOWN = 'UNKNOWN'
27399
27499
  '''UNKNOWN'''
27400
27500
 
@@ -39423,6 +39523,64 @@ scout_compute_api_LatLongPoint.__qualname__ = "LatLongPoint"
39423
39523
  scout_compute_api_LatLongPoint.__module__ = "nominal_api.scout_compute_api"
39424
39524
 
39425
39525
 
39526
+ class scout_compute_api_LiteralRange(ConjureBeanType):
39527
+ """
39528
+ A literal range of values.
39529
+ """
39530
+
39531
+ @builtins.classmethod
39532
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
39533
+ return {
39534
+ 'start_timestamp': ConjureFieldDefinition('startTimestamp', OptionalTypeWrapper[scout_compute_api_TimestampConstant]),
39535
+ 'end_timestamp': ConjureFieldDefinition('endTimestamp', OptionalTypeWrapper[scout_compute_api_TimestampConstant])
39536
+ }
39537
+
39538
+ __slots__: List[str] = ['_start_timestamp', '_end_timestamp']
39539
+
39540
+ def __init__(self, end_timestamp: Optional["scout_compute_api_TimestampConstant"] = None, start_timestamp: Optional["scout_compute_api_TimestampConstant"] = None) -> None:
39541
+ self._start_timestamp = start_timestamp
39542
+ self._end_timestamp = end_timestamp
39543
+
39544
+ @builtins.property
39545
+ def start_timestamp(self) -> Optional["scout_compute_api_TimestampConstant"]:
39546
+ return self._start_timestamp
39547
+
39548
+ @builtins.property
39549
+ def end_timestamp(self) -> Optional["scout_compute_api_TimestampConstant"]:
39550
+ return self._end_timestamp
39551
+
39552
+
39553
+ scout_compute_api_LiteralRange.__name__ = "LiteralRange"
39554
+ scout_compute_api_LiteralRange.__qualname__ = "LiteralRange"
39555
+ scout_compute_api_LiteralRange.__module__ = "nominal_api.scout_compute_api"
39556
+
39557
+
39558
+ class scout_compute_api_LiteralRanges(ConjureBeanType):
39559
+ """
39560
+ A list of literal ranges.
39561
+ """
39562
+
39563
+ @builtins.classmethod
39564
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
39565
+ return {
39566
+ 'literal_ranges': ConjureFieldDefinition('literalRanges', List[scout_compute_api_LiteralRange])
39567
+ }
39568
+
39569
+ __slots__: List[str] = ['_literal_ranges']
39570
+
39571
+ def __init__(self, literal_ranges: List["scout_compute_api_LiteralRange"]) -> None:
39572
+ self._literal_ranges = literal_ranges
39573
+
39574
+ @builtins.property
39575
+ def literal_ranges(self) -> List["scout_compute_api_LiteralRange"]:
39576
+ return self._literal_ranges
39577
+
39578
+
39579
+ scout_compute_api_LiteralRanges.__name__ = "LiteralRanges"
39580
+ scout_compute_api_LiteralRanges.__qualname__ = "LiteralRanges"
39581
+ scout_compute_api_LiteralRanges.__module__ = "nominal_api.scout_compute_api"
39582
+
39583
+
39426
39584
  class scout_compute_api_LogExactMatchCaseInsensitiveFilter(ConjureBeanType):
39427
39585
  """
39428
39586
  Filters points such that the log message in each point contains an exact case-insensitive match of the
@@ -42764,6 +42922,7 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
42764
42922
  _enum_series_equality_ranges_node: Optional["scout_compute_api_EnumSeriesEqualityRanges"] = None
42765
42923
  _function: Optional["scout_compute_api_RangesFunction"] = None
42766
42924
  _intersect_range: Optional["scout_compute_api_IntersectRanges"] = None
42925
+ _literal_ranges: Optional["scout_compute_api_LiteralRanges"] = None
42767
42926
  _min_max_threshold: Optional["scout_compute_api_MinMaxThresholdRanges"] = None
42768
42927
  _not_: Optional["scout_compute_api_NotRanges"] = None
42769
42928
  _on_change: Optional["scout_compute_api_OnChangeRanges"] = None
@@ -42785,6 +42944,7 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
42785
42944
  'enum_series_equality_ranges_node': ConjureFieldDefinition('enumSeriesEqualityRangesNode', scout_compute_api_EnumSeriesEqualityRanges),
42786
42945
  'function': ConjureFieldDefinition('function', scout_compute_api_RangesFunction),
42787
42946
  'intersect_range': ConjureFieldDefinition('intersectRange', scout_compute_api_IntersectRanges),
42947
+ 'literal_ranges': ConjureFieldDefinition('literalRanges', scout_compute_api_LiteralRanges),
42788
42948
  'min_max_threshold': ConjureFieldDefinition('minMaxThreshold', scout_compute_api_MinMaxThresholdRanges),
42789
42949
  'not_': ConjureFieldDefinition('not', scout_compute_api_NotRanges),
42790
42950
  'on_change': ConjureFieldDefinition('onChange', scout_compute_api_OnChangeRanges),
@@ -42806,6 +42966,7 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
42806
42966
  enum_series_equality_ranges_node: Optional["scout_compute_api_EnumSeriesEqualityRanges"] = None,
42807
42967
  function: Optional["scout_compute_api_RangesFunction"] = None,
42808
42968
  intersect_range: Optional["scout_compute_api_IntersectRanges"] = None,
42969
+ literal_ranges: Optional["scout_compute_api_LiteralRanges"] = None,
42809
42970
  min_max_threshold: Optional["scout_compute_api_MinMaxThresholdRanges"] = None,
42810
42971
  not_: Optional["scout_compute_api_NotRanges"] = None,
42811
42972
  on_change: Optional["scout_compute_api_OnChangeRanges"] = None,
@@ -42821,7 +42982,7 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
42821
42982
  type_of_union: Optional[str] = None
42822
42983
  ) -> None:
42823
42984
  if type_of_union is None:
42824
- if (approximate_threshold is not None) + (enum_filter is not None) + (enum_series_equality_ranges_node is not None) + (function is not None) + (intersect_range is not None) + (min_max_threshold is not None) + (not_ is not None) + (on_change is not None) + (peak is not None) + (range_numeric_aggregation is not None) + (raw is not None) + (series_crossover_ranges_node is not None) + (series_equality_ranges_node is not None) + (stability_detection is not None) + (stale_range is not None) + (threshold is not None) + (union_range is not None) != 1:
42985
+ if (approximate_threshold is not None) + (enum_filter is not None) + (enum_series_equality_ranges_node is not None) + (function is not None) + (intersect_range is not None) + (literal_ranges is not None) + (min_max_threshold is not None) + (not_ is not None) + (on_change is not None) + (peak is not None) + (range_numeric_aggregation is not None) + (raw is not None) + (series_crossover_ranges_node is not None) + (series_equality_ranges_node is not None) + (stability_detection is not None) + (stale_range is not None) + (threshold is not None) + (union_range is not None) != 1:
42825
42986
  raise ValueError('a union must contain a single member')
42826
42987
 
42827
42988
  if approximate_threshold is not None:
@@ -42839,6 +43000,9 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
42839
43000
  if intersect_range is not None:
42840
43001
  self._intersect_range = intersect_range
42841
43002
  self._type = 'intersectRange'
43003
+ if literal_ranges is not None:
43004
+ self._literal_ranges = literal_ranges
43005
+ self._type = 'literalRanges'
42842
43006
  if min_max_threshold is not None:
42843
43007
  self._min_max_threshold = min_max_threshold
42844
43008
  self._type = 'minMaxThreshold'
@@ -42901,6 +43065,11 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
42901
43065
  raise ValueError('a union value must not be None')
42902
43066
  self._intersect_range = intersect_range
42903
43067
  self._type = 'intersectRange'
43068
+ elif type_of_union == 'literalRanges':
43069
+ if literal_ranges is None:
43070
+ raise ValueError('a union value must not be None')
43071
+ self._literal_ranges = literal_ranges
43072
+ self._type = 'literalRanges'
42904
43073
  elif type_of_union == 'minMaxThreshold':
42905
43074
  if min_max_threshold is None:
42906
43075
  raise ValueError('a union value must not be None')
@@ -42982,6 +43151,10 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
42982
43151
  def intersect_range(self) -> Optional["scout_compute_api_IntersectRanges"]:
42983
43152
  return self._intersect_range
42984
43153
 
43154
+ @builtins.property
43155
+ def literal_ranges(self) -> Optional["scout_compute_api_LiteralRanges"]:
43156
+ return self._literal_ranges
43157
+
42985
43158
  @builtins.property
42986
43159
  def min_max_threshold(self) -> Optional["scout_compute_api_MinMaxThresholdRanges"]:
42987
43160
  """
@@ -43049,6 +43222,8 @@ class scout_compute_api_RangeSeries(ConjureUnionType):
43049
43222
  return visitor._function(self.function)
43050
43223
  if self._type == 'intersectRange' and self.intersect_range is not None:
43051
43224
  return visitor._intersect_range(self.intersect_range)
43225
+ if self._type == 'literalRanges' and self.literal_ranges is not None:
43226
+ return visitor._literal_ranges(self.literal_ranges)
43052
43227
  if self._type == 'minMaxThreshold' and self.min_max_threshold is not None:
43053
43228
  return visitor._min_max_threshold(self.min_max_threshold)
43054
43229
  if self._type == 'not' and self.not_ is not None:
@@ -43102,6 +43277,10 @@ class scout_compute_api_RangeSeriesVisitor:
43102
43277
  def _intersect_range(self, intersect_range: "scout_compute_api_IntersectRanges") -> Any:
43103
43278
  pass
43104
43279
 
43280
+ @abstractmethod
43281
+ def _literal_ranges(self, literal_ranges: "scout_compute_api_LiteralRanges") -> Any:
43282
+ pass
43283
+
43105
43284
  @abstractmethod
43106
43285
  def _min_max_threshold(self, min_max_threshold: "scout_compute_api_MinMaxThresholdRanges") -> Any:
43107
43286
  pass
@@ -50340,6 +50519,58 @@ scout_compute_resolved_api_LatLongGeoNode.__qualname__ = "LatLongGeoNode"
50340
50519
  scout_compute_resolved_api_LatLongGeoNode.__module__ = "nominal_api.scout_compute_resolved_api"
50341
50520
 
50342
50521
 
50522
+ class scout_compute_resolved_api_LiteralRange(ConjureBeanType):
50523
+
50524
+ @builtins.classmethod
50525
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
50526
+ return {
50527
+ 'start_timestamp': ConjureFieldDefinition('startTimestamp', OptionalTypeWrapper[api_Timestamp]),
50528
+ 'end_timestamp': ConjureFieldDefinition('endTimestamp', OptionalTypeWrapper[api_Timestamp])
50529
+ }
50530
+
50531
+ __slots__: List[str] = ['_start_timestamp', '_end_timestamp']
50532
+
50533
+ def __init__(self, end_timestamp: Optional["api_Timestamp"] = None, start_timestamp: Optional["api_Timestamp"] = None) -> None:
50534
+ self._start_timestamp = start_timestamp
50535
+ self._end_timestamp = end_timestamp
50536
+
50537
+ @builtins.property
50538
+ def start_timestamp(self) -> Optional["api_Timestamp"]:
50539
+ return self._start_timestamp
50540
+
50541
+ @builtins.property
50542
+ def end_timestamp(self) -> Optional["api_Timestamp"]:
50543
+ return self._end_timestamp
50544
+
50545
+
50546
+ scout_compute_resolved_api_LiteralRange.__name__ = "LiteralRange"
50547
+ scout_compute_resolved_api_LiteralRange.__qualname__ = "LiteralRange"
50548
+ scout_compute_resolved_api_LiteralRange.__module__ = "nominal_api.scout_compute_resolved_api"
50549
+
50550
+
50551
+ class scout_compute_resolved_api_LiteralRangesNode(ConjureBeanType):
50552
+
50553
+ @builtins.classmethod
50554
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
50555
+ return {
50556
+ 'literal_ranges': ConjureFieldDefinition('literalRanges', List[scout_compute_resolved_api_LiteralRange])
50557
+ }
50558
+
50559
+ __slots__: List[str] = ['_literal_ranges']
50560
+
50561
+ def __init__(self, literal_ranges: List["scout_compute_resolved_api_LiteralRange"]) -> None:
50562
+ self._literal_ranges = literal_ranges
50563
+
50564
+ @builtins.property
50565
+ def literal_ranges(self) -> List["scout_compute_resolved_api_LiteralRange"]:
50566
+ return self._literal_ranges
50567
+
50568
+
50569
+ scout_compute_resolved_api_LiteralRangesNode.__name__ = "LiteralRangesNode"
50570
+ scout_compute_resolved_api_LiteralRangesNode.__qualname__ = "LiteralRangesNode"
50571
+ scout_compute_resolved_api_LiteralRangesNode.__module__ = "nominal_api.scout_compute_resolved_api"
50572
+
50573
+
50343
50574
  class scout_compute_resolved_api_LogFilterSeriesNode(ConjureBeanType):
50344
50575
 
50345
50576
  @builtins.classmethod
@@ -51898,6 +52129,7 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
51898
52129
  _enum_filter: Optional["scout_compute_resolved_api_EnumFilterRangesNode"] = None
51899
52130
  _extrema: Optional["scout_compute_resolved_api_ExtremaRangesNode"] = None
51900
52131
  _intersect_range: Optional["scout_compute_resolved_api_IntersectRangesNode"] = None
52132
+ _literal_ranges: Optional["scout_compute_resolved_api_LiteralRangesNode"] = None
51901
52133
  _min_max_threshold: Optional["scout_compute_resolved_api_MinMaxThresholdRangesNode"] = None
51902
52134
  _not_: Optional["scout_compute_resolved_api_NotRangesNode"] = None
51903
52135
  _on_change: Optional["scout_compute_resolved_api_OnChangeRangesNode"] = None
@@ -51915,6 +52147,7 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
51915
52147
  'enum_filter': ConjureFieldDefinition('enumFilter', scout_compute_resolved_api_EnumFilterRangesNode),
51916
52148
  'extrema': ConjureFieldDefinition('extrema', scout_compute_resolved_api_ExtremaRangesNode),
51917
52149
  'intersect_range': ConjureFieldDefinition('intersectRange', scout_compute_resolved_api_IntersectRangesNode),
52150
+ 'literal_ranges': ConjureFieldDefinition('literalRanges', scout_compute_resolved_api_LiteralRangesNode),
51918
52151
  'min_max_threshold': ConjureFieldDefinition('minMaxThreshold', scout_compute_resolved_api_MinMaxThresholdRangesNode),
51919
52152
  'not_': ConjureFieldDefinition('not', scout_compute_resolved_api_NotRangesNode),
51920
52153
  'on_change': ConjureFieldDefinition('onChange', scout_compute_resolved_api_OnChangeRangesNode),
@@ -51932,6 +52165,7 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
51932
52165
  enum_filter: Optional["scout_compute_resolved_api_EnumFilterRangesNode"] = None,
51933
52166
  extrema: Optional["scout_compute_resolved_api_ExtremaRangesNode"] = None,
51934
52167
  intersect_range: Optional["scout_compute_resolved_api_IntersectRangesNode"] = None,
52168
+ literal_ranges: Optional["scout_compute_resolved_api_LiteralRangesNode"] = None,
51935
52169
  min_max_threshold: Optional["scout_compute_resolved_api_MinMaxThresholdRangesNode"] = None,
51936
52170
  not_: Optional["scout_compute_resolved_api_NotRangesNode"] = None,
51937
52171
  on_change: Optional["scout_compute_resolved_api_OnChangeRangesNode"] = None,
@@ -51944,7 +52178,7 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
51944
52178
  type_of_union: Optional[str] = None
51945
52179
  ) -> None:
51946
52180
  if type_of_union is None:
51947
- if (enum_equality is not None) + (enum_filter is not None) + (extrema is not None) + (intersect_range is not None) + (min_max_threshold is not None) + (not_ is not None) + (on_change is not None) + (range_numeric_aggregation is not None) + (series_crossover_ranges_node is not None) + (stale_range is not None) + (stability_detection is not None) + (threshold is not None) + (union_range is not None) != 1:
52181
+ if (enum_equality is not None) + (enum_filter is not None) + (extrema is not None) + (intersect_range is not None) + (literal_ranges is not None) + (min_max_threshold is not None) + (not_ is not None) + (on_change is not None) + (range_numeric_aggregation is not None) + (series_crossover_ranges_node is not None) + (stale_range is not None) + (stability_detection is not None) + (threshold is not None) + (union_range is not None) != 1:
51948
52182
  raise ValueError('a union must contain a single member')
51949
52183
 
51950
52184
  if enum_equality is not None:
@@ -51959,6 +52193,9 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
51959
52193
  if intersect_range is not None:
51960
52194
  self._intersect_range = intersect_range
51961
52195
  self._type = 'intersectRange'
52196
+ if literal_ranges is not None:
52197
+ self._literal_ranges = literal_ranges
52198
+ self._type = 'literalRanges'
51962
52199
  if min_max_threshold is not None:
51963
52200
  self._min_max_threshold = min_max_threshold
51964
52201
  self._type = 'minMaxThreshold'
@@ -52007,6 +52244,11 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
52007
52244
  raise ValueError('a union value must not be None')
52008
52245
  self._intersect_range = intersect_range
52009
52246
  self._type = 'intersectRange'
52247
+ elif type_of_union == 'literalRanges':
52248
+ if literal_ranges is None:
52249
+ raise ValueError('a union value must not be None')
52250
+ self._literal_ranges = literal_ranges
52251
+ self._type = 'literalRanges'
52010
52252
  elif type_of_union == 'minMaxThreshold':
52011
52253
  if min_max_threshold is None:
52012
52254
  raise ValueError('a union value must not be None')
@@ -52069,6 +52311,10 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
52069
52311
  def intersect_range(self) -> Optional["scout_compute_resolved_api_IntersectRangesNode"]:
52070
52312
  return self._intersect_range
52071
52313
 
52314
+ @builtins.property
52315
+ def literal_ranges(self) -> Optional["scout_compute_resolved_api_LiteralRangesNode"]:
52316
+ return self._literal_ranges
52317
+
52072
52318
  @builtins.property
52073
52319
  def min_max_threshold(self) -> Optional["scout_compute_resolved_api_MinMaxThresholdRangesNode"]:
52074
52320
  return self._min_max_threshold
@@ -52116,6 +52362,8 @@ class scout_compute_resolved_api_RangesNode(ConjureUnionType):
52116
52362
  return visitor._extrema(self.extrema)
52117
52363
  if self._type == 'intersectRange' and self.intersect_range is not None:
52118
52364
  return visitor._intersect_range(self.intersect_range)
52365
+ if self._type == 'literalRanges' and self.literal_ranges is not None:
52366
+ return visitor._literal_ranges(self.literal_ranges)
52119
52367
  if self._type == 'minMaxThreshold' and self.min_max_threshold is not None:
52120
52368
  return visitor._min_max_threshold(self.min_max_threshold)
52121
52369
  if self._type == 'not' and self.not_ is not None:
@@ -52159,6 +52407,10 @@ class scout_compute_resolved_api_RangesNodeVisitor:
52159
52407
  def _intersect_range(self, intersect_range: "scout_compute_resolved_api_IntersectRangesNode") -> Any:
52160
52408
  pass
52161
52409
 
52410
+ @abstractmethod
52411
+ def _literal_ranges(self, literal_ranges: "scout_compute_resolved_api_LiteralRangesNode") -> Any:
52412
+ pass
52413
+
52162
52414
  @abstractmethod
52163
52415
  def _min_max_threshold(self, min_max_threshold: "scout_compute_resolved_api_MinMaxThresholdRangesNode") -> Any:
52164
52416
  pass
@@ -56874,17 +57126,21 @@ class scout_datareview_api_DataReview(ConjureBeanType):
56874
57126
  'created_at': ConjureFieldDefinition('createdAt', str),
56875
57127
  'created_by': ConjureFieldDefinition('createdBy', scout_rids_api_UserRid),
56876
57128
  'checklist': ConjureFieldDefinition('checklist', scout_datareview_api_ChecklistEvaluation),
57129
+ 'checklist_ref': ConjureFieldDefinition('checklistRef', scout_checks_api_PinnedChecklistRef),
57130
+ 'check_evaluations': ConjureFieldDefinition('checkEvaluations', List[scout_datareview_api_AutomaticCheckEvaluation]),
56877
57131
  'archived': ConjureFieldDefinition('archived', bool)
56878
57132
  }
56879
57133
 
56880
- __slots__: List[str] = ['_rid', '_run_rid', '_created_at', '_created_by', '_checklist', '_archived']
57134
+ __slots__: List[str] = ['_rid', '_run_rid', '_created_at', '_created_by', '_checklist', '_checklist_ref', '_check_evaluations', '_archived']
56881
57135
 
56882
- def __init__(self, archived: bool, checklist: "scout_datareview_api_ChecklistEvaluation", created_at: str, created_by: str, rid: str, run_rid: str) -> None:
57136
+ def __init__(self, archived: bool, check_evaluations: List["scout_datareview_api_AutomaticCheckEvaluation"], checklist: "scout_datareview_api_ChecklistEvaluation", checklist_ref: "scout_checks_api_PinnedChecklistRef", created_at: str, created_by: str, rid: str, run_rid: str) -> None:
56883
57137
  self._rid = rid
56884
57138
  self._run_rid = run_rid
56885
57139
  self._created_at = created_at
56886
57140
  self._created_by = created_by
56887
57141
  self._checklist = checklist
57142
+ self._checklist_ref = checklist_ref
57143
+ self._check_evaluations = check_evaluations
56888
57144
  self._archived = archived
56889
57145
 
56890
57146
  @builtins.property
@@ -56907,6 +57163,14 @@ class scout_datareview_api_DataReview(ConjureBeanType):
56907
57163
  def checklist(self) -> "scout_datareview_api_ChecklistEvaluation":
56908
57164
  return self._checklist
56909
57165
 
57166
+ @builtins.property
57167
+ def checklist_ref(self) -> "scout_checks_api_PinnedChecklistRef":
57168
+ return self._checklist_ref
57169
+
57170
+ @builtins.property
57171
+ def check_evaluations(self) -> List["scout_datareview_api_AutomaticCheckEvaluation"]:
57172
+ return self._check_evaluations
57173
+
56910
57174
  @builtins.property
56911
57175
  def archived(self) -> bool:
56912
57176
  return self._archived
@@ -73292,18 +73556,27 @@ class scout_workbookcommon_api_EventReference(ConjureBeanType):
73292
73556
  @builtins.classmethod
73293
73557
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
73294
73558
  return {
73295
- 'event_uuid': ConjureFieldDefinition('eventUuid', str)
73559
+ 'event_uuid': ConjureFieldDefinition('eventUuid', str),
73560
+ 'rid': ConjureFieldDefinition('rid', OptionalTypeWrapper[api_rids_EventRid])
73296
73561
  }
73297
73562
 
73298
- __slots__: List[str] = ['_event_uuid']
73563
+ __slots__: List[str] = ['_event_uuid', '_rid']
73299
73564
 
73300
- def __init__(self, event_uuid: str) -> None:
73565
+ def __init__(self, event_uuid: str, rid: Optional[str] = None) -> None:
73301
73566
  self._event_uuid = event_uuid
73567
+ self._rid = rid
73302
73568
 
73303
73569
  @builtins.property
73304
73570
  def event_uuid(self) -> str:
73305
73571
  return self._event_uuid
73306
73572
 
73573
+ @builtins.property
73574
+ def rid(self) -> Optional[str]:
73575
+ """
73576
+ The event's unique identifier. This will soon be a required field.
73577
+ """
73578
+ return self._rid
73579
+
73307
73580
 
73308
73581
  scout_workbookcommon_api_EventReference.__name__ = "EventReference"
73309
73582
  scout_workbookcommon_api_EventReference.__qualname__ = "EventReference"
@@ -74282,42 +74555,42 @@ security_api_workspace_UpdateOrRemoveWorkspaceDisplayNameVisitor.__qualname__ =
74282
74555
  security_api_workspace_UpdateOrRemoveWorkspaceDisplayNameVisitor.__module__ = "nominal_api.security_api_workspace"
74283
74556
 
74284
74557
 
74285
- class security_api_workspace_UpdateOrRemoveWorkspaceIconUrl(ConjureUnionType):
74286
- """The request to update the icon url of the workspace. The request will replace the existing icon url
74287
- with the icon url specified if it's provided. Otherwise, the current icon url will be removed from
74558
+ class security_api_workspace_UpdateOrRemoveWorkspaceSymbol(ConjureUnionType):
74559
+ """The request to update the symbol of the workspace. The request will replace the existing symbol
74560
+ with the symbol specified if it's provided. Otherwise, the current symbol will be removed from
74288
74561
  the workspace."""
74289
- _icon_url: Optional[str] = None
74562
+ _symbol: Optional["security_api_workspace_WorkspaceSymbol"] = None
74290
74563
  _remove_type: Optional["security_api_workspace_RemoveType"] = None
74291
74564
 
74292
74565
  @builtins.classmethod
74293
74566
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
74294
74567
  return {
74295
- 'icon_url': ConjureFieldDefinition('iconUrl', str),
74568
+ 'symbol': ConjureFieldDefinition('symbol', security_api_workspace_WorkspaceSymbol),
74296
74569
  'remove_type': ConjureFieldDefinition('removeType', security_api_workspace_RemoveType)
74297
74570
  }
74298
74571
 
74299
74572
  def __init__(
74300
74573
  self,
74301
- icon_url: Optional[str] = None,
74574
+ symbol: Optional["security_api_workspace_WorkspaceSymbol"] = None,
74302
74575
  remove_type: Optional["security_api_workspace_RemoveType"] = None,
74303
74576
  type_of_union: Optional[str] = None
74304
74577
  ) -> None:
74305
74578
  if type_of_union is None:
74306
- if (icon_url is not None) + (remove_type is not None) != 1:
74579
+ if (symbol is not None) + (remove_type is not None) != 1:
74307
74580
  raise ValueError('a union must contain a single member')
74308
74581
 
74309
- if icon_url is not None:
74310
- self._icon_url = icon_url
74311
- self._type = 'iconUrl'
74582
+ if symbol is not None:
74583
+ self._symbol = symbol
74584
+ self._type = 'symbol'
74312
74585
  if remove_type is not None:
74313
74586
  self._remove_type = remove_type
74314
74587
  self._type = 'removeType'
74315
74588
 
74316
- elif type_of_union == 'iconUrl':
74317
- if icon_url is None:
74589
+ elif type_of_union == 'symbol':
74590
+ if symbol is None:
74318
74591
  raise ValueError('a union value must not be None')
74319
- self._icon_url = icon_url
74320
- self._type = 'iconUrl'
74592
+ self._symbol = symbol
74593
+ self._type = 'symbol'
74321
74594
  elif type_of_union == 'removeType':
74322
74595
  if remove_type is None:
74323
74596
  raise ValueError('a union value must not be None')
@@ -74325,31 +74598,31 @@ the workspace."""
74325
74598
  self._type = 'removeType'
74326
74599
 
74327
74600
  @builtins.property
74328
- def icon_url(self) -> Optional[str]:
74329
- return self._icon_url
74601
+ def symbol(self) -> Optional["security_api_workspace_WorkspaceSymbol"]:
74602
+ return self._symbol
74330
74603
 
74331
74604
  @builtins.property
74332
74605
  def remove_type(self) -> Optional["security_api_workspace_RemoveType"]:
74333
74606
  return self._remove_type
74334
74607
 
74335
74608
  def accept(self, visitor) -> Any:
74336
- if not isinstance(visitor, security_api_workspace_UpdateOrRemoveWorkspaceIconUrlVisitor):
74337
- raise ValueError('{} is not an instance of security_api_workspace_UpdateOrRemoveWorkspaceIconUrlVisitor'.format(visitor.__class__.__name__))
74338
- if self._type == 'iconUrl' and self.icon_url is not None:
74339
- return visitor._icon_url(self.icon_url)
74609
+ if not isinstance(visitor, security_api_workspace_UpdateOrRemoveWorkspaceSymbolVisitor):
74610
+ raise ValueError('{} is not an instance of security_api_workspace_UpdateOrRemoveWorkspaceSymbolVisitor'.format(visitor.__class__.__name__))
74611
+ if self._type == 'symbol' and self.symbol is not None:
74612
+ return visitor._symbol(self.symbol)
74340
74613
  if self._type == 'removeType' and self.remove_type is not None:
74341
74614
  return visitor._remove_type(self.remove_type)
74342
74615
 
74343
74616
 
74344
- security_api_workspace_UpdateOrRemoveWorkspaceIconUrl.__name__ = "UpdateOrRemoveWorkspaceIconUrl"
74345
- security_api_workspace_UpdateOrRemoveWorkspaceIconUrl.__qualname__ = "UpdateOrRemoveWorkspaceIconUrl"
74346
- security_api_workspace_UpdateOrRemoveWorkspaceIconUrl.__module__ = "nominal_api.security_api_workspace"
74617
+ security_api_workspace_UpdateOrRemoveWorkspaceSymbol.__name__ = "UpdateOrRemoveWorkspaceSymbol"
74618
+ security_api_workspace_UpdateOrRemoveWorkspaceSymbol.__qualname__ = "UpdateOrRemoveWorkspaceSymbol"
74619
+ security_api_workspace_UpdateOrRemoveWorkspaceSymbol.__module__ = "nominal_api.security_api_workspace"
74347
74620
 
74348
74621
 
74349
- class security_api_workspace_UpdateOrRemoveWorkspaceIconUrlVisitor:
74622
+ class security_api_workspace_UpdateOrRemoveWorkspaceSymbolVisitor:
74350
74623
 
74351
74624
  @abstractmethod
74352
- def _icon_url(self, icon_url: str) -> Any:
74625
+ def _symbol(self, symbol: "security_api_workspace_WorkspaceSymbol") -> Any:
74353
74626
  pass
74354
74627
 
74355
74628
  @abstractmethod
@@ -74357,9 +74630,9 @@ class security_api_workspace_UpdateOrRemoveWorkspaceIconUrlVisitor:
74357
74630
  pass
74358
74631
 
74359
74632
 
74360
- security_api_workspace_UpdateOrRemoveWorkspaceIconUrlVisitor.__name__ = "UpdateOrRemoveWorkspaceIconUrlVisitor"
74361
- security_api_workspace_UpdateOrRemoveWorkspaceIconUrlVisitor.__qualname__ = "UpdateOrRemoveWorkspaceIconUrlVisitor"
74362
- security_api_workspace_UpdateOrRemoveWorkspaceIconUrlVisitor.__module__ = "nominal_api.security_api_workspace"
74633
+ security_api_workspace_UpdateOrRemoveWorkspaceSymbolVisitor.__name__ = "UpdateOrRemoveWorkspaceSymbolVisitor"
74634
+ security_api_workspace_UpdateOrRemoveWorkspaceSymbolVisitor.__qualname__ = "UpdateOrRemoveWorkspaceSymbolVisitor"
74635
+ security_api_workspace_UpdateOrRemoveWorkspaceSymbolVisitor.__module__ = "nominal_api.security_api_workspace"
74363
74636
 
74364
74637
 
74365
74638
  class security_api_workspace_UpdateWorkspaceRequest(ConjureBeanType):
@@ -74368,22 +74641,22 @@ class security_api_workspace_UpdateWorkspaceRequest(ConjureBeanType):
74368
74641
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
74369
74642
  return {
74370
74643
  'display_name': ConjureFieldDefinition('displayName', OptionalTypeWrapper[security_api_workspace_UpdateOrRemoveWorkspaceDisplayName]),
74371
- 'icon_url': ConjureFieldDefinition('iconUrl', OptionalTypeWrapper[security_api_workspace_UpdateOrRemoveWorkspaceIconUrl])
74644
+ 'symbol': ConjureFieldDefinition('symbol', OptionalTypeWrapper[security_api_workspace_UpdateOrRemoveWorkspaceSymbol])
74372
74645
  }
74373
74646
 
74374
- __slots__: List[str] = ['_display_name', '_icon_url']
74647
+ __slots__: List[str] = ['_display_name', '_symbol']
74375
74648
 
74376
- def __init__(self, display_name: Optional["security_api_workspace_UpdateOrRemoveWorkspaceDisplayName"] = None, icon_url: Optional["security_api_workspace_UpdateOrRemoveWorkspaceIconUrl"] = None) -> None:
74649
+ def __init__(self, display_name: Optional["security_api_workspace_UpdateOrRemoveWorkspaceDisplayName"] = None, symbol: Optional["security_api_workspace_UpdateOrRemoveWorkspaceSymbol"] = None) -> None:
74377
74650
  self._display_name = display_name
74378
- self._icon_url = icon_url
74651
+ self._symbol = symbol
74379
74652
 
74380
74653
  @builtins.property
74381
74654
  def display_name(self) -> Optional["security_api_workspace_UpdateOrRemoveWorkspaceDisplayName"]:
74382
74655
  return self._display_name
74383
74656
 
74384
74657
  @builtins.property
74385
- def icon_url(self) -> Optional["security_api_workspace_UpdateOrRemoveWorkspaceIconUrl"]:
74386
- return self._icon_url
74658
+ def symbol(self) -> Optional["security_api_workspace_UpdateOrRemoveWorkspaceSymbol"]:
74659
+ return self._symbol
74387
74660
 
74388
74661
 
74389
74662
  security_api_workspace_UpdateWorkspaceRequest.__name__ = "UpdateWorkspaceRequest"
@@ -74400,17 +74673,17 @@ class security_api_workspace_Workspace(ConjureBeanType):
74400
74673
  'rid': ConjureFieldDefinition('rid', api_rids_WorkspaceRid),
74401
74674
  'org': ConjureFieldDefinition('org', authentication_api_OrgRid),
74402
74675
  'display_name': ConjureFieldDefinition('displayName', OptionalTypeWrapper[str]),
74403
- 'icon_url': ConjureFieldDefinition('iconUrl', OptionalTypeWrapper[str])
74676
+ 'symbol': ConjureFieldDefinition('symbol', OptionalTypeWrapper[security_api_workspace_WorkspaceSymbol])
74404
74677
  }
74405
74678
 
74406
- __slots__: List[str] = ['_id', '_rid', '_org', '_display_name', '_icon_url']
74679
+ __slots__: List[str] = ['_id', '_rid', '_org', '_display_name', '_symbol']
74407
74680
 
74408
- def __init__(self, id: str, org: str, rid: str, display_name: Optional[str] = None, icon_url: Optional[str] = None) -> None:
74681
+ def __init__(self, id: str, org: str, rid: str, display_name: Optional[str] = None, symbol: Optional["security_api_workspace_WorkspaceSymbol"] = None) -> None:
74409
74682
  self._id = id
74410
74683
  self._rid = rid
74411
74684
  self._org = org
74412
74685
  self._display_name = display_name
74413
- self._icon_url = icon_url
74686
+ self._symbol = symbol
74414
74687
 
74415
74688
  @builtins.property
74416
74689
  def id(self) -> str:
@@ -74432,11 +74705,8 @@ class security_api_workspace_Workspace(ConjureBeanType):
74432
74705
  return self._display_name
74433
74706
 
74434
74707
  @builtins.property
74435
- def icon_url(self) -> Optional[str]:
74436
- """
74437
- URL to the icon for the workspace.
74438
- """
74439
- return self._icon_url
74708
+ def symbol(self) -> Optional["security_api_workspace_WorkspaceSymbol"]:
74709
+ return self._symbol
74440
74710
 
74441
74711
 
74442
74712
  security_api_workspace_Workspace.__name__ = "Workspace"
@@ -74585,6 +74855,113 @@ security_api_workspace_WorkspaceService.__qualname__ = "WorkspaceService"
74585
74855
  security_api_workspace_WorkspaceService.__module__ = "nominal_api.security_api_workspace"
74586
74856
 
74587
74857
 
74858
+ class security_api_workspace_WorkspaceSymbol(ConjureUnionType):
74859
+ _icon: Optional[str] = None
74860
+ _emoji: Optional[str] = None
74861
+ _image: Optional[str] = None
74862
+
74863
+ @builtins.classmethod
74864
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
74865
+ return {
74866
+ 'icon': ConjureFieldDefinition('icon', str),
74867
+ 'emoji': ConjureFieldDefinition('emoji', str),
74868
+ 'image': ConjureFieldDefinition('image', str)
74869
+ }
74870
+
74871
+ def __init__(
74872
+ self,
74873
+ icon: Optional[str] = None,
74874
+ emoji: Optional[str] = None,
74875
+ image: Optional[str] = None,
74876
+ type_of_union: Optional[str] = None
74877
+ ) -> None:
74878
+ if type_of_union is None:
74879
+ if (icon is not None) + (emoji is not None) + (image is not None) != 1:
74880
+ raise ValueError('a union must contain a single member')
74881
+
74882
+ if icon is not None:
74883
+ self._icon = icon
74884
+ self._type = 'icon'
74885
+ if emoji is not None:
74886
+ self._emoji = emoji
74887
+ self._type = 'emoji'
74888
+ if image is not None:
74889
+ self._image = image
74890
+ self._type = 'image'
74891
+
74892
+ elif type_of_union == 'icon':
74893
+ if icon is None:
74894
+ raise ValueError('a union value must not be None')
74895
+ self._icon = icon
74896
+ self._type = 'icon'
74897
+ elif type_of_union == 'emoji':
74898
+ if emoji is None:
74899
+ raise ValueError('a union value must not be None')
74900
+ self._emoji = emoji
74901
+ self._type = 'emoji'
74902
+ elif type_of_union == 'image':
74903
+ if image is None:
74904
+ raise ValueError('a union value must not be None')
74905
+ self._image = image
74906
+ self._type = 'image'
74907
+
74908
+ @builtins.property
74909
+ def icon(self) -> Optional[str]:
74910
+ """
74911
+ Workspace icon name (e.g. castle)
74912
+ """
74913
+ return self._icon
74914
+
74915
+ @builtins.property
74916
+ def emoji(self) -> Optional[str]:
74917
+ """
74918
+ Workspace emoji name (e.g. :castle:)
74919
+ """
74920
+ return self._emoji
74921
+
74922
+ @builtins.property
74923
+ def image(self) -> Optional[str]:
74924
+ """
74925
+ Workspace image url (e.g. https://example.com/image.png)
74926
+ """
74927
+ return self._image
74928
+
74929
+ def accept(self, visitor) -> Any:
74930
+ if not isinstance(visitor, security_api_workspace_WorkspaceSymbolVisitor):
74931
+ raise ValueError('{} is not an instance of security_api_workspace_WorkspaceSymbolVisitor'.format(visitor.__class__.__name__))
74932
+ if self._type == 'icon' and self.icon is not None:
74933
+ return visitor._icon(self.icon)
74934
+ if self._type == 'emoji' and self.emoji is not None:
74935
+ return visitor._emoji(self.emoji)
74936
+ if self._type == 'image' and self.image is not None:
74937
+ return visitor._image(self.image)
74938
+
74939
+
74940
+ security_api_workspace_WorkspaceSymbol.__name__ = "WorkspaceSymbol"
74941
+ security_api_workspace_WorkspaceSymbol.__qualname__ = "WorkspaceSymbol"
74942
+ security_api_workspace_WorkspaceSymbol.__module__ = "nominal_api.security_api_workspace"
74943
+
74944
+
74945
+ class security_api_workspace_WorkspaceSymbolVisitor:
74946
+
74947
+ @abstractmethod
74948
+ def _icon(self, icon: str) -> Any:
74949
+ pass
74950
+
74951
+ @abstractmethod
74952
+ def _emoji(self, emoji: str) -> Any:
74953
+ pass
74954
+
74955
+ @abstractmethod
74956
+ def _image(self, image: str) -> Any:
74957
+ pass
74958
+
74959
+
74960
+ security_api_workspace_WorkspaceSymbolVisitor.__name__ = "WorkspaceSymbolVisitor"
74961
+ security_api_workspace_WorkspaceSymbolVisitor.__qualname__ = "WorkspaceSymbolVisitor"
74962
+ security_api_workspace_WorkspaceSymbolVisitor.__module__ = "nominal_api.security_api_workspace"
74963
+
74964
+
74588
74965
  class storage_datasource_api_CreateNominalDataSourceRequest(ConjureBeanType):
74589
74966
 
74590
74967
  @builtins.classmethod
@@ -9,6 +9,8 @@ from .._impl import (
9
9
  ingest_workflow_api_EnsureWorkspaceNamespaceCreatedRequest as EnsureWorkspaceNamespaceCreatedRequest,
10
10
  ingest_workflow_api_EnsureWorkspaceServiceAccountCreatedRequest as EnsureWorkspaceServiceAccountCreatedRequest,
11
11
  ingest_workflow_api_ExtractorJobState as ExtractorJobState,
12
+ ingest_workflow_api_FetchExtractorJobLogsRequest as FetchExtractorJobLogsRequest,
13
+ ingest_workflow_api_FetchExtractorJobLogsResponse as FetchExtractorJobLogsResponse,
12
14
  ingest_workflow_api_GetExtractorJobStateRequest as GetExtractorJobStateRequest,
13
15
  ingest_workflow_api_GetExtractorJobStateResponse as GetExtractorJobStateResponse,
14
16
  ingest_workflow_api_IngestDataflashRequest as IngestDataflashRequest,
@@ -147,6 +147,8 @@ from .._impl import (
147
147
  scout_compute_api_LatLongBounds as LatLongBounds,
148
148
  scout_compute_api_LatLongGeo as LatLongGeo,
149
149
  scout_compute_api_LatLongPoint as LatLongPoint,
150
+ scout_compute_api_LiteralRange as LiteralRange,
151
+ scout_compute_api_LiteralRanges as LiteralRanges,
150
152
  scout_compute_api_LocalVariableName as LocalVariableName,
151
153
  scout_compute_api_LogExactMatchCaseInsensitiveFilter as LogExactMatchCaseInsensitiveFilter,
152
154
  scout_compute_api_LogFilterOperator as LogFilterOperator,
@@ -56,6 +56,8 @@ from .._impl import (
56
56
  scout_compute_resolved_api_IntersectRangesNode as IntersectRangesNode,
57
57
  scout_compute_resolved_api_LatLongBounds as LatLongBounds,
58
58
  scout_compute_resolved_api_LatLongGeoNode as LatLongGeoNode,
59
+ scout_compute_resolved_api_LiteralRange as LiteralRange,
60
+ scout_compute_resolved_api_LiteralRangesNode as LiteralRangesNode,
59
61
  scout_compute_resolved_api_LogFilterSeriesNode as LogFilterSeriesNode,
60
62
  scout_compute_resolved_api_LogSeriesNode as LogSeriesNode,
61
63
  scout_compute_resolved_api_LogSeriesNodeVisitor as LogSeriesNodeVisitor,
@@ -3,10 +3,12 @@ from .._impl import (
3
3
  security_api_workspace_RemoveType as RemoveType,
4
4
  security_api_workspace_UpdateOrRemoveWorkspaceDisplayName as UpdateOrRemoveWorkspaceDisplayName,
5
5
  security_api_workspace_UpdateOrRemoveWorkspaceDisplayNameVisitor as UpdateOrRemoveWorkspaceDisplayNameVisitor,
6
- security_api_workspace_UpdateOrRemoveWorkspaceIconUrl as UpdateOrRemoveWorkspaceIconUrl,
7
- security_api_workspace_UpdateOrRemoveWorkspaceIconUrlVisitor as UpdateOrRemoveWorkspaceIconUrlVisitor,
6
+ security_api_workspace_UpdateOrRemoveWorkspaceSymbol as UpdateOrRemoveWorkspaceSymbol,
7
+ security_api_workspace_UpdateOrRemoveWorkspaceSymbolVisitor as UpdateOrRemoveWorkspaceSymbolVisitor,
8
8
  security_api_workspace_UpdateWorkspaceRequest as UpdateWorkspaceRequest,
9
9
  security_api_workspace_Workspace as Workspace,
10
10
  security_api_workspace_WorkspaceService as WorkspaceService,
11
+ security_api_workspace_WorkspaceSymbol as WorkspaceSymbol,
12
+ security_api_workspace_WorkspaceSymbolVisitor as WorkspaceSymbolVisitor,
11
13
  )
12
14
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.656.0
3
+ Version: 0.663.2
4
4
  Requires-Python: >=3.8
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: conjure-python-client<3,>=2.8.0
@@ -1,5 +1,5 @@
1
- nominal_api/__init__.py,sha256=AZLrd2fWmYZ8iMEi4Ddw2PdHZUHj04p_T_7B9o3X2k0,1955
2
- nominal_api/_impl.py,sha256=ph0wQUpRz2_SHeA8eMa38LWt4-lVqGjtnr1Rqu7NoXI,3121063
1
+ nominal_api/__init__.py,sha256=8UOm8t0-6IiHNRAq0fZgo4JSzzPrz9wdX2MurNI18fQ,1955
2
+ nominal_api/_impl.py,sha256=52xdTvFpP9bks3yzQ4X0UxFVO8I8fPvFP8BrlYsb7R4,3136610
3
3
  nominal_api/py.typed,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
4
4
  nominal_api/api/__init__.py,sha256=1oJPOuAMfV2uClPUW8Ie1nj2Y6j81TDpedcc3yUFTe0,1294
5
5
  nominal_api/api_ids/__init__.py,sha256=CAtt44XgNZEEUDv-BbEbYtuxQ8y1wqSZU-STjBYdZv8,80
@@ -16,7 +16,7 @@ nominal_api/datasource_logset_api/__init__.py,sha256=JyjO1tQmG-HZ7kYMi8lSfeaaYdd
16
16
  nominal_api/datasource_pagination_api/__init__.py,sha256=3GO8TAUavOe6dUEitOhje74aSZHjTKVI5N1MNuct1lI,212
17
17
  nominal_api/event/__init__.py,sha256=0RHeL5Kc0IkA5yvhbfu1eKNpCG_GKQ9PwBf8zO1grss,1296
18
18
  nominal_api/ingest_api/__init__.py,sha256=jR-wxTvd8Z5ykeB7wYeBB-KG_vNZoadH16soayfkEHg,7438
19
- nominal_api/ingest_workflow_api/__init__.py,sha256=O_muGfYpmhXvxUv_n2QRZbi26sH5zhKF2uzBza7qsEs,1920
19
+ nominal_api/ingest_workflow_api/__init__.py,sha256=Xvz7jXoK5k_zEWzGnMB9EB942T-yCpX3CNHq-rqewlg,2094
20
20
  nominal_api/persistent_compute_api/__init__.py,sha256=ThraDBJyYB5nFrbB6FZZpDoVAmsq8GAibiK0nu63MVA,2050
21
21
  nominal_api/scout/__init__.py,sha256=ip3XK_9jJKAoFiCifUVMTpDMiUE4mWIdGzMDu7LASus,324
22
22
  nominal_api/scout_api/__init__.py,sha256=_yhqikk4r2QptjyRGhmcs8z3Ocjpw8rzvxqkc48HS5s,592
@@ -30,9 +30,9 @@ nominal_api/scout_checklistexecution_api/__init__.py,sha256=1_nOnCSWn7bniSvTfskQ
30
30
  nominal_api/scout_checks_api/__init__.py,sha256=cNCQHBX38YqQv2qJMXwqUhjpCbayA3R9FqMmtKwzA3U,5160
31
31
  nominal_api/scout_comparisonnotebook_api/__init__.py,sha256=8BL5jE9NDxqCj9DyvZWSPhq6zw2J7xp6aLsl3x9rpyw,4530
32
32
  nominal_api/scout_comparisonrun_api/__init__.py,sha256=1LCXQe64tDqqeMQixW8PI-R_edSz7F5X0x2_ufEuC8M,480
33
- nominal_api/scout_compute_api/__init__.py,sha256=m6in8f0svzf9c0VE4lUgKXCY-xiQ3vHfU-9moubq0p0,19498
33
+ nominal_api/scout_compute_api/__init__.py,sha256=GsQzqbpslKY3zkMSPkuK760t39WqPnUnk_OeCdq6sfU,19604
34
34
  nominal_api/scout_compute_api_deprecated/__init__.py,sha256=RggSfc6C1VR1-kNXPWybpfw3hZbkQ1gvxEisFZCHdnM,3732
35
- nominal_api/scout_compute_resolved_api/__init__.py,sha256=wWp6OFI2FXRs4sNyhS0x4oynh9bJe8GIBeAz5TnDHXw,10669
35
+ nominal_api/scout_compute_resolved_api/__init__.py,sha256=LJFZQR1u_EQbZLzLGWMQVS8sEsKsFSmsITrlYGI5JsA,10801
36
36
  nominal_api/scout_dataexport_api/__init__.py,sha256=pWRQdQJOObD0jITRYLw3AxeDJSrJQqAdFZACxULqA4o,1487
37
37
  nominal_api/scout_datareview_api/__init__.py,sha256=sdD3rdI65ZlVWXHRwk2sAranMypVdStq090U0UOOwuY,8320
38
38
  nominal_api/scout_datasource/__init__.py,sha256=1NWMrEx-JOEb4Pmd2oAqcpSmQB3g3lxgxFenWEtcF2M,101
@@ -57,7 +57,7 @@ nominal_api/scout_video/__init__.py,sha256=zB7mM23yGAgC529rF4gjDmqcLRbsp0kJA3xef
57
57
  nominal_api/scout_video_api/__init__.py,sha256=38gU3YzC_xtAzQLx8T3GPtfla9Bd5DTTRL299fjGgeg,3952
58
58
  nominal_api/scout_workbookcommon_api/__init__.py,sha256=6Ai0cYNOOw2A6JOlKzraTbpZwolspM-WTqVGLMN2HdI,413
59
59
  nominal_api/secrets_api/__init__.py,sha256=V5BpnbNzjdMP8kgvR2N6SEVcVyXi6Vyl_lh_5fKjJzw,736
60
- nominal_api/security_api_workspace/__init__.py,sha256=Q7zbEwczj4wNOhYtnKgco4hJqInNQ0udAIkxzNHwK5o,702
60
+ nominal_api/security_api_workspace/__init__.py,sha256=W-TKCfSPTZ5XvLP0xFhkjCLKUWpsHqLFvwYzZFdfGxo,838
61
61
  nominal_api/storage_datasource_api/__init__.py,sha256=jh_OZE_b4nBNAvnyenBjw8aGZOnvIXR6qvUKd31fXOk,445
62
62
  nominal_api/storage_deletion_api/__init__.py,sha256=2bIuAU0tcnT_8lqae0fcII4R45A_RzfV0y_E-vTkpSQ,267
63
63
  nominal_api/storage_series_api/__init__.py,sha256=F2ctWx8yqb4-JtfHkLzCq74njNEpGwr69b9fWQp9UAQ,99
@@ -72,7 +72,7 @@ nominal_api/timeseries_logicalseries_api/__init__.py,sha256=Q9iZHurmyDsJIFbUg-Eb
72
72
  nominal_api/timeseries_seriescache/__init__.py,sha256=tFCkNuyrVMgtj-HIl1pOYPJHaL2VikI4C_x97bX_Lcs,109
73
73
  nominal_api/timeseries_seriescache_api/__init__.py,sha256=U9EhlqdF9qzD1O9al0vcvcdgS_C5lq-lN3Kmr0K3g84,1191
74
74
  nominal_api/upload_api/__init__.py,sha256=ZMudWMSqCrNozohbHaJKuxJnT9Edepe7nxxXMz_pT9k,87
75
- nominal_api-0.656.0.dist-info/METADATA,sha256=GrkTxw6NES9u0xDoGdNbUaXz1v8hw7YvMNoyRo8S298,199
76
- nominal_api-0.656.0.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
77
- nominal_api-0.656.0.dist-info/top_level.txt,sha256=gI1ZdNJbuHcJZeKtCzzBXsEtpU1GX6XJKs6ksi_gCRA,12
78
- nominal_api-0.656.0.dist-info/RECORD,,
75
+ nominal_api-0.663.2.dist-info/METADATA,sha256=wCMI4GfBmlxmpvG2LqLZCaKoxmizuT0LPluUcq1VFNQ,199
76
+ nominal_api-0.663.2.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
77
+ nominal_api-0.663.2.dist-info/top_level.txt,sha256=gI1ZdNJbuHcJZeKtCzzBXsEtpU1GX6XJKs6ksi_gCRA,12
78
+ nominal_api-0.663.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.0.0)
2
+ Generator: setuptools (80.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5