nominal-api 0.1025.0__py3-none-any.whl → 0.1048.1__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/_impl.py CHANGED
@@ -1732,6 +1732,28 @@ authentication_api_AuthenticationServiceV2.__qualname__ = "AuthenticationService
1732
1732
  authentication_api_AuthenticationServiceV2.__module__ = "nominal_api.authentication_api"
1733
1733
 
1734
1734
 
1735
+ class authentication_api_ChartTooltipModeSetting(ConjureEnumType):
1736
+
1737
+ VERBOSE = 'VERBOSE'
1738
+ '''VERBOSE'''
1739
+ CONCISE = 'CONCISE'
1740
+ '''CONCISE'''
1741
+ SINGLE = 'SINGLE'
1742
+ '''SINGLE'''
1743
+ NONE = 'NONE'
1744
+ '''NONE'''
1745
+ UNKNOWN = 'UNKNOWN'
1746
+ '''UNKNOWN'''
1747
+
1748
+ def __reduce_ex__(self, proto):
1749
+ return self.__class__, (self.name,)
1750
+
1751
+
1752
+ authentication_api_ChartTooltipModeSetting.__name__ = "ChartTooltipModeSetting"
1753
+ authentication_api_ChartTooltipModeSetting.__qualname__ = "ChartTooltipModeSetting"
1754
+ authentication_api_ChartTooltipModeSetting.__module__ = "nominal_api.authentication_api"
1755
+
1756
+
1735
1757
  class authentication_api_DefaultTimeRangeTypeSetting(ConjureEnumType):
1736
1758
 
1737
1759
  DEFAULT = 'DEFAULT'
@@ -2241,16 +2263,18 @@ class authentication_api_UserSettings(ConjureBeanType):
2241
2263
  'default_time_range_type': ConjureFieldDefinition('defaultTimeRangeType', OptionalTypeWrapper[authentication_api_DefaultTimeRangeTypeSetting]),
2242
2264
  'appearance': ConjureFieldDefinition('appearance', OptionalTypeWrapper[authentication_api_AppearanceSetting]),
2243
2265
  'timezone': ConjureFieldDefinition('timezone', OptionalTypeWrapper[authentication_api_TimezoneSetting]),
2244
- 'time_series_hover_tooltip_concise': ConjureFieldDefinition('timeSeriesHoverTooltipConcise', OptionalTypeWrapper[bool])
2266
+ 'time_series_hover_tooltip_concise': ConjureFieldDefinition('timeSeriesHoverTooltipConcise', OptionalTypeWrapper[bool]),
2267
+ 'chart_hover_tooltip_mode': ConjureFieldDefinition('chartHoverTooltipMode', OptionalTypeWrapper[authentication_api_ChartTooltipModeSetting])
2245
2268
  }
2246
2269
 
2247
- __slots__: List[str] = ['_default_time_range_type', '_appearance', '_timezone', '_time_series_hover_tooltip_concise']
2270
+ __slots__: List[str] = ['_default_time_range_type', '_appearance', '_timezone', '_time_series_hover_tooltip_concise', '_chart_hover_tooltip_mode']
2248
2271
 
2249
- def __init__(self, appearance: Optional["authentication_api_AppearanceSetting"] = None, default_time_range_type: Optional["authentication_api_DefaultTimeRangeTypeSetting"] = None, time_series_hover_tooltip_concise: Optional[bool] = None, timezone: Optional["authentication_api_TimezoneSetting"] = None) -> None:
2272
+ def __init__(self, appearance: Optional["authentication_api_AppearanceSetting"] = None, chart_hover_tooltip_mode: Optional["authentication_api_ChartTooltipModeSetting"] = None, default_time_range_type: Optional["authentication_api_DefaultTimeRangeTypeSetting"] = None, time_series_hover_tooltip_concise: Optional[bool] = None, timezone: Optional["authentication_api_TimezoneSetting"] = None) -> None:
2250
2273
  self._default_time_range_type = default_time_range_type
2251
2274
  self._appearance = appearance
2252
2275
  self._timezone = timezone
2253
2276
  self._time_series_hover_tooltip_concise = time_series_hover_tooltip_concise
2277
+ self._chart_hover_tooltip_mode = chart_hover_tooltip_mode
2254
2278
 
2255
2279
  @builtins.property
2256
2280
  def default_time_range_type(self) -> Optional["authentication_api_DefaultTimeRangeTypeSetting"]:
@@ -2268,6 +2292,10 @@ class authentication_api_UserSettings(ConjureBeanType):
2268
2292
  def time_series_hover_tooltip_concise(self) -> Optional[bool]:
2269
2293
  return self._time_series_hover_tooltip_concise
2270
2294
 
2295
+ @builtins.property
2296
+ def chart_hover_tooltip_mode(self) -> Optional["authentication_api_ChartTooltipModeSetting"]:
2297
+ return self._chart_hover_tooltip_mode
2298
+
2271
2299
 
2272
2300
  authentication_api_UserSettings.__name__ = "UserSettings"
2273
2301
  authentication_api_UserSettings.__qualname__ = "UserSettings"
@@ -4216,6 +4244,107 @@ datasource_TimestampType.__qualname__ = "TimestampType"
4216
4244
  datasource_TimestampType.__module__ = "nominal_api.datasource"
4217
4245
 
4218
4246
 
4247
+ class datasource_VideoFileMetadata(ConjureBeanType):
4248
+ """Metadata specific to video files.
4249
+ """
4250
+
4251
+ @builtins.classmethod
4252
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
4253
+ return {
4254
+ 'timestamp_manifest': ConjureFieldDefinition('timestampManifest', scout_video_api_VideoFileTimestampManifest),
4255
+ 'segment_metadata': ConjureFieldDefinition('segmentMetadata', OptionalTypeWrapper[datasource_VideoSegmentsMetadata])
4256
+ }
4257
+
4258
+ __slots__: List[str] = ['_timestamp_manifest', '_segment_metadata']
4259
+
4260
+ def __init__(self, timestamp_manifest: "scout_video_api_VideoFileTimestampManifest", segment_metadata: Optional["datasource_VideoSegmentsMetadata"] = None) -> None:
4261
+ self._timestamp_manifest = timestamp_manifest
4262
+ self._segment_metadata = segment_metadata
4263
+
4264
+ @builtins.property
4265
+ def timestamp_manifest(self) -> "scout_video_api_VideoFileTimestampManifest":
4266
+ """Specifies how to determine absolute timestamps for each frame in the video.
4267
+ Can be an embedded MCAP manifest, an external sidecar file, or calculated
4268
+ from a starting offset applied to presentation timestamps.
4269
+ """
4270
+ return self._timestamp_manifest
4271
+
4272
+ @builtins.property
4273
+ def segment_metadata(self) -> Optional["datasource_VideoSegmentsMetadata"]:
4274
+ """Cached aggregate metadata about the segments comprising this video file
4275
+ after segmentation has completed. Includes frame counts, duration, and
4276
+ frame rate. Empty until segmentation is complete.
4277
+ Note: Min/max timestamps are stored in DatasetFile.bounds field.
4278
+ Raw file size is stored in DatasetFile.fileSizeBytes.
4279
+ """
4280
+ return self._segment_metadata
4281
+
4282
+
4283
+ datasource_VideoFileMetadata.__name__ = "VideoFileMetadata"
4284
+ datasource_VideoFileMetadata.__qualname__ = "VideoFileMetadata"
4285
+ datasource_VideoFileMetadata.__module__ = "nominal_api.datasource"
4286
+
4287
+
4288
+ class datasource_VideoSegmentsMetadata(ConjureBeanType):
4289
+ """Segment metadata for video files.
4290
+ Lightweight version that excludes bounds and RID since those are stored elsewhere.
4291
+ """
4292
+
4293
+ @builtins.classmethod
4294
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
4295
+ return {
4296
+ 'num_frames': ConjureFieldDefinition('numFrames', int),
4297
+ 'num_segments': ConjureFieldDefinition('numSegments', int),
4298
+ 'scale_factor': ConjureFieldDefinition('scaleFactor', float),
4299
+ 'media_duration_seconds': ConjureFieldDefinition('mediaDurationSeconds', float),
4300
+ 'media_frame_rate': ConjureFieldDefinition('mediaFrameRate', float)
4301
+ }
4302
+
4303
+ __slots__: List[str] = ['_num_frames', '_num_segments', '_scale_factor', '_media_duration_seconds', '_media_frame_rate']
4304
+
4305
+ def __init__(self, media_duration_seconds: float, media_frame_rate: float, num_frames: int, num_segments: int, scale_factor: float) -> None:
4306
+ self._num_frames = num_frames
4307
+ self._num_segments = num_segments
4308
+ self._scale_factor = scale_factor
4309
+ self._media_duration_seconds = media_duration_seconds
4310
+ self._media_frame_rate = media_frame_rate
4311
+
4312
+ @builtins.property
4313
+ def num_frames(self) -> int:
4314
+ """Total number of frames across all segments.
4315
+ """
4316
+ return self._num_frames
4317
+
4318
+ @builtins.property
4319
+ def num_segments(self) -> int:
4320
+ """Number of segments the video was split into.
4321
+ """
4322
+ return self._num_segments
4323
+
4324
+ @builtins.property
4325
+ def scale_factor(self) -> float:
4326
+ """Scale factor applied to timestamps during segmentation.
4327
+ """
4328
+ return self._scale_factor
4329
+
4330
+ @builtins.property
4331
+ def media_duration_seconds(self) -> float:
4332
+ """Total duration of the video in seconds.
4333
+ """
4334
+ return self._media_duration_seconds
4335
+
4336
+ @builtins.property
4337
+ def media_frame_rate(self) -> float:
4338
+ """Average frame rate (FPS) calculated as total frames / duration.
4339
+ """
4340
+ return self._media_frame_rate
4341
+
4342
+
4343
+ datasource_VideoSegmentsMetadata.__name__ = "VideoSegmentsMetadata"
4344
+ datasource_VideoSegmentsMetadata.__qualname__ = "VideoSegmentsMetadata"
4345
+ datasource_VideoSegmentsMetadata.__module__ = "nominal_api.datasource"
4346
+
4347
+
4219
4348
  class datasource_api_BatchGetChannelPrefixTreeRequest(ConjureBeanType):
4220
4349
 
4221
4350
  @builtins.classmethod
@@ -10007,13 +10136,13 @@ class ingest_api_ContainerizedExtractor(ConjureBeanType):
10007
10136
  'labels': ConjureFieldDefinition('labels', List[api_Label]),
10008
10137
  'created_at': ConjureFieldDefinition('createdAt', str),
10009
10138
  'is_archived': ConjureFieldDefinition('isArchived', bool),
10010
- 'timestamp_metadata': ConjureFieldDefinition('timestampMetadata', ingest_api_TimestampMetadata),
10139
+ 'timestamp_metadata': ConjureFieldDefinition('timestampMetadata', OptionalTypeWrapper[ingest_api_TimestampMetadata]),
10011
10140
  'output_file_format': ConjureFieldDefinition('outputFileFormat', ingest_api_FileOutputFormat)
10012
10141
  }
10013
10142
 
10014
10143
  __slots__: List[str] = ['_rid', '_name', '_description', '_image', '_inputs', '_parameters', '_properties', '_labels', '_created_at', '_is_archived', '_timestamp_metadata', '_output_file_format']
10015
10144
 
10016
- def __init__(self, created_at: str, image: "ingest_api_DockerImageSource", inputs: List["ingest_api_FileExtractionInput"], is_archived: bool, labels: List[str], name: str, output_file_format: "ingest_api_FileOutputFormat", parameters: List["ingest_api_FileExtractionParameter"], properties: Dict[str, str], rid: str, timestamp_metadata: "ingest_api_TimestampMetadata", description: Optional[str] = None) -> None:
10145
+ def __init__(self, created_at: str, image: "ingest_api_DockerImageSource", inputs: List["ingest_api_FileExtractionInput"], is_archived: bool, labels: List[str], name: str, output_file_format: "ingest_api_FileOutputFormat", parameters: List["ingest_api_FileExtractionParameter"], properties: Dict[str, str], rid: str, description: Optional[str] = None, timestamp_metadata: Optional["ingest_api_TimestampMetadata"] = None) -> None:
10017
10146
  self._rid = rid
10018
10147
  self._name = name
10019
10148
  self._description = description
@@ -10088,8 +10217,9 @@ class ingest_api_ContainerizedExtractor(ConjureBeanType):
10088
10217
  return self._is_archived
10089
10218
 
10090
10219
  @builtins.property
10091
- def timestamp_metadata(self) -> "ingest_api_TimestampMetadata":
10092
- """Metadata about the intermediate parquet this extractor will produce
10220
+ def timestamp_metadata(self) -> Optional["ingest_api_TimestampMetadata"]:
10221
+ """Metadata about the intermediate parquet this extractor will produce.
10222
+ If not set, timestamp metadata must be provided at ingest time.
10093
10223
  """
10094
10224
  return self._timestamp_metadata
10095
10225
 
@@ -10314,17 +10444,19 @@ class ingest_api_ContainerizedOpts(ConjureBeanType):
10314
10444
  'sources': ConjureFieldDefinition('sources', Dict[ingest_api_EnvironmentVariable, ingest_api_IngestSource]),
10315
10445
  'arguments': ConjureFieldDefinition('arguments', Dict[ingest_api_EnvironmentVariable, str]),
10316
10446
  'extractor_rid': ConjureFieldDefinition('extractorRid', ingest_api_ContainerizedExtractorRid),
10447
+ 'timestamp_metadata': ConjureFieldDefinition('timestampMetadata', OptionalTypeWrapper[ingest_api_TimestampMetadata]),
10317
10448
  'tag': ConjureFieldDefinition('tag', OptionalTypeWrapper[str]),
10318
10449
  'target': ConjureFieldDefinition('target', ingest_api_DatasetIngestTarget),
10319
10450
  'additional_file_tags': ConjureFieldDefinition('additionalFileTags', Dict[api_TagName, api_TagValue])
10320
10451
  }
10321
10452
 
10322
- __slots__: List[str] = ['_sources', '_arguments', '_extractor_rid', '_tag', '_target', '_additional_file_tags']
10453
+ __slots__: List[str] = ['_sources', '_arguments', '_extractor_rid', '_timestamp_metadata', '_tag', '_target', '_additional_file_tags']
10323
10454
 
10324
- def __init__(self, additional_file_tags: Dict[str, str], arguments: Dict[str, str], extractor_rid: str, sources: Dict[str, "ingest_api_IngestSource"], target: "ingest_api_DatasetIngestTarget", tag: Optional[str] = None) -> None:
10455
+ def __init__(self, additional_file_tags: Dict[str, str], arguments: Dict[str, str], extractor_rid: str, sources: Dict[str, "ingest_api_IngestSource"], target: "ingest_api_DatasetIngestTarget", tag: Optional[str] = None, timestamp_metadata: Optional["ingest_api_TimestampMetadata"] = None) -> None:
10325
10456
  self._sources = sources
10326
10457
  self._arguments = arguments
10327
10458
  self._extractor_rid = extractor_rid
10459
+ self._timestamp_metadata = timestamp_metadata
10328
10460
  self._tag = tag
10329
10461
  self._target = target
10330
10462
  self._additional_file_tags = additional_file_tags
@@ -10341,6 +10473,10 @@ class ingest_api_ContainerizedOpts(ConjureBeanType):
10341
10473
  def extractor_rid(self) -> str:
10342
10474
  return self._extractor_rid
10343
10475
 
10476
+ @builtins.property
10477
+ def timestamp_metadata(self) -> Optional["ingest_api_TimestampMetadata"]:
10478
+ return self._timestamp_metadata
10479
+
10344
10480
  @builtins.property
10345
10481
  def tag(self) -> Optional[str]:
10346
10482
  return self._tag
@@ -13987,13 +14123,13 @@ class ingest_api_RegisterContainerizedExtractorRequest(ConjureBeanType):
13987
14123
  'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
13988
14124
  'labels': ConjureFieldDefinition('labels', List[api_Label]),
13989
14125
  'workspace': ConjureFieldDefinition('workspace', api_rids_WorkspaceRid),
13990
- 'timestamp_metadata': ConjureFieldDefinition('timestampMetadata', ingest_api_TimestampMetadata),
14126
+ 'timestamp_metadata': ConjureFieldDefinition('timestampMetadata', OptionalTypeWrapper[ingest_api_TimestampMetadata]),
13991
14127
  'output_file_format': ConjureFieldDefinition('outputFileFormat', OptionalTypeWrapper[ingest_api_FileOutputFormat])
13992
14128
  }
13993
14129
 
13994
14130
  __slots__: List[str] = ['_name', '_description', '_image', '_inputs', '_parameters', '_properties', '_labels', '_workspace', '_timestamp_metadata', '_output_file_format']
13995
14131
 
13996
- def __init__(self, image: "ingest_api_DockerImageSource", inputs: List["ingest_api_FileExtractionInput"], labels: List[str], name: str, parameters: List["ingest_api_FileExtractionParameter"], properties: Dict[str, str], timestamp_metadata: "ingest_api_TimestampMetadata", workspace: str, description: Optional[str] = None, output_file_format: Optional["ingest_api_FileOutputFormat"] = None) -> None:
14132
+ def __init__(self, image: "ingest_api_DockerImageSource", inputs: List["ingest_api_FileExtractionInput"], labels: List[str], name: str, parameters: List["ingest_api_FileExtractionParameter"], properties: Dict[str, str], workspace: str, description: Optional[str] = None, output_file_format: Optional["ingest_api_FileOutputFormat"] = None, timestamp_metadata: Optional["ingest_api_TimestampMetadata"] = None) -> None:
13997
14133
  self._name = name
13998
14134
  self._description = description
13999
14135
  self._image = image
@@ -14044,8 +14180,9 @@ class ingest_api_RegisterContainerizedExtractorRequest(ConjureBeanType):
14044
14180
  return self._workspace
14045
14181
 
14046
14182
  @builtins.property
14047
- def timestamp_metadata(self) -> "ingest_api_TimestampMetadata":
14048
- """Metadata about the intermediate parquet this extractor will produce
14183
+ def timestamp_metadata(self) -> Optional["ingest_api_TimestampMetadata"]:
14184
+ """Metadata about the intermediate parquet this extractor will produce.
14185
+ If not set, timestamp metadata must be provided at ingest time.
14049
14186
  """
14050
14187
  return self._timestamp_metadata
14051
14188
 
@@ -25896,12 +26033,13 @@ class scout_catalog_DatasetFile(ConjureBeanType):
25896
26033
  'ingest_tag_metadata': ConjureFieldDefinition('ingestTagMetadata', OptionalTypeWrapper[scout_catalog_IngestTagMetadata]),
25897
26034
  'origin_file_paths': ConjureFieldDefinition('originFilePaths', OptionalTypeWrapper[List[str]]),
25898
26035
  'ingest_job_rid': ConjureFieldDefinition('ingestJobRid', OptionalTypeWrapper[ingest_api_IngestJobRid]),
25899
- 'deleted_at': ConjureFieldDefinition('deletedAt', OptionalTypeWrapper[str])
26036
+ 'deleted_at': ConjureFieldDefinition('deletedAt', OptionalTypeWrapper[str]),
26037
+ 'metadata': ConjureFieldDefinition('metadata', OptionalTypeWrapper[scout_catalog_DatasetFileMetadata])
25900
26038
  }
25901
26039
 
25902
- __slots__: List[str] = ['_id', '_dataset_rid', '_name', '_handle', '_bounds', '_uploaded_at', '_ingested_at', '_ingest_status', '_timestamp_metadata', '_ingest_tag_metadata', '_origin_file_paths', '_ingest_job_rid', '_deleted_at']
26040
+ __slots__: List[str] = ['_id', '_dataset_rid', '_name', '_handle', '_bounds', '_uploaded_at', '_ingested_at', '_ingest_status', '_timestamp_metadata', '_ingest_tag_metadata', '_origin_file_paths', '_ingest_job_rid', '_deleted_at', '_metadata']
25903
26041
 
25904
- def __init__(self, dataset_rid: str, handle: "scout_catalog_Handle", id: str, ingest_status: "api_IngestStatusV2", name: str, uploaded_at: str, bounds: Optional["scout_catalog_Bounds"] = None, deleted_at: Optional[str] = None, ingest_job_rid: Optional[str] = None, ingest_tag_metadata: Optional["scout_catalog_IngestTagMetadata"] = None, ingested_at: Optional[str] = None, origin_file_paths: Optional[List[str]] = None, timestamp_metadata: Optional["scout_catalog_TimestampMetadata"] = None) -> None:
26042
+ def __init__(self, dataset_rid: str, handle: "scout_catalog_Handle", id: str, ingest_status: "api_IngestStatusV2", name: str, uploaded_at: str, bounds: Optional["scout_catalog_Bounds"] = None, deleted_at: Optional[str] = None, ingest_job_rid: Optional[str] = None, ingest_tag_metadata: Optional["scout_catalog_IngestTagMetadata"] = None, ingested_at: Optional[str] = None, metadata: Optional["scout_catalog_DatasetFileMetadata"] = None, origin_file_paths: Optional[List[str]] = None, timestamp_metadata: Optional["scout_catalog_TimestampMetadata"] = None) -> None:
25905
26043
  self._id = id
25906
26044
  self._dataset_rid = dataset_rid
25907
26045
  self._name = name
@@ -25915,6 +26053,7 @@ class scout_catalog_DatasetFile(ConjureBeanType):
25915
26053
  self._origin_file_paths = origin_file_paths
25916
26054
  self._ingest_job_rid = ingest_job_rid
25917
26055
  self._deleted_at = deleted_at
26056
+ self._metadata = metadata
25918
26057
 
25919
26058
  @builtins.property
25920
26059
  def id(self) -> str:
@@ -25975,12 +26114,76 @@ ingested for any reason or is still being processed, then this value will be emp
25975
26114
  """
25976
26115
  return self._deleted_at
25977
26116
 
26117
+ @builtins.property
26118
+ def metadata(self) -> Optional["scout_catalog_DatasetFileMetadata"]:
26119
+ """File-type-specific metadata. For video files, contains timestamp manifest and segment metadata.
26120
+ """
26121
+ return self._metadata
26122
+
25978
26123
 
25979
26124
  scout_catalog_DatasetFile.__name__ = "DatasetFile"
25980
26125
  scout_catalog_DatasetFile.__qualname__ = "DatasetFile"
25981
26126
  scout_catalog_DatasetFile.__module__ = "nominal_api.scout_catalog"
25982
26127
 
25983
26128
 
26129
+ class scout_catalog_DatasetFileMetadata(ConjureUnionType):
26130
+ """Metadata specific to different file types stored in datasets.
26131
+ """
26132
+ _video: Optional["datasource_VideoFileMetadata"] = None
26133
+
26134
+ @builtins.classmethod
26135
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
26136
+ return {
26137
+ 'video': ConjureFieldDefinition('video', datasource_VideoFileMetadata)
26138
+ }
26139
+
26140
+ def __init__(
26141
+ self,
26142
+ video: Optional["datasource_VideoFileMetadata"] = None,
26143
+ type_of_union: Optional[str] = None
26144
+ ) -> None:
26145
+ if type_of_union is None:
26146
+ if (video is not None) != 1:
26147
+ raise ValueError('a union must contain a single member')
26148
+
26149
+ if video is not None:
26150
+ self._video = video
26151
+ self._type = 'video'
26152
+
26153
+ elif type_of_union == 'video':
26154
+ if video is None:
26155
+ raise ValueError('a union value must not be None')
26156
+ self._video = video
26157
+ self._type = 'video'
26158
+
26159
+ @builtins.property
26160
+ def video(self) -> Optional["datasource_VideoFileMetadata"]:
26161
+ return self._video
26162
+
26163
+ def accept(self, visitor) -> Any:
26164
+ if not isinstance(visitor, scout_catalog_DatasetFileMetadataVisitor):
26165
+ raise ValueError('{} is not an instance of scout_catalog_DatasetFileMetadataVisitor'.format(visitor.__class__.__name__))
26166
+ if self._type == 'video' and self.video is not None:
26167
+ return visitor._video(self.video)
26168
+
26169
+
26170
+ scout_catalog_DatasetFileMetadata.__name__ = "DatasetFileMetadata"
26171
+ scout_catalog_DatasetFileMetadata.__qualname__ = "DatasetFileMetadata"
26172
+ scout_catalog_DatasetFileMetadata.__module__ = "nominal_api.scout_catalog"
26173
+
26174
+
26175
+ class scout_catalog_DatasetFileMetadataVisitor:
26176
+
26177
+ @abstractmethod
26178
+ def _video(self, video: "datasource_VideoFileMetadata") -> Any:
26179
+ pass
26180
+
26181
+
26182
+ scout_catalog_DatasetFileMetadataVisitor.__name__ = "DatasetFileMetadataVisitor"
26183
+ scout_catalog_DatasetFileMetadataVisitor.__qualname__ = "DatasetFileMetadataVisitor"
26184
+ scout_catalog_DatasetFileMetadataVisitor.__module__ = "nominal_api.scout_catalog"
26185
+
26186
+
25984
26187
  class scout_catalog_DatasetFileSortField(ConjureEnumType):
25985
26188
 
25986
26189
  UPLOADED_AT = 'UPLOADED_AT'
@@ -35320,15 +35523,17 @@ class scout_checklistexecution_api_AssetStreamConfiguration(ConjureBeanType):
35320
35523
  return {
35321
35524
  'notification_configurations': ConjureFieldDefinition('notificationConfigurations', List[scout_integrations_api_NotificationConfiguration]),
35322
35525
  'evaluation_delay': ConjureFieldDefinition('evaluationDelay', scout_run_api_Duration),
35323
- 'recovery_delay': ConjureFieldDefinition('recoveryDelay', scout_run_api_Duration)
35526
+ 'recovery_delay': ConjureFieldDefinition('recoveryDelay', scout_run_api_Duration),
35527
+ 'auto_create_events': ConjureFieldDefinition('autoCreateEvents', bool)
35324
35528
  }
35325
35529
 
35326
- __slots__: List[str] = ['_notification_configurations', '_evaluation_delay', '_recovery_delay']
35530
+ __slots__: List[str] = ['_notification_configurations', '_evaluation_delay', '_recovery_delay', '_auto_create_events']
35327
35531
 
35328
- def __init__(self, evaluation_delay: "scout_run_api_Duration", notification_configurations: List["scout_integrations_api_NotificationConfiguration"], recovery_delay: "scout_run_api_Duration") -> None:
35532
+ def __init__(self, auto_create_events: bool, evaluation_delay: "scout_run_api_Duration", notification_configurations: List["scout_integrations_api_NotificationConfiguration"], recovery_delay: "scout_run_api_Duration") -> None:
35329
35533
  self._notification_configurations = notification_configurations
35330
35534
  self._evaluation_delay = evaluation_delay
35331
35535
  self._recovery_delay = recovery_delay
35536
+ self._auto_create_events = auto_create_events
35332
35537
 
35333
35538
  @builtins.property
35334
35539
  def notification_configurations(self) -> List["scout_integrations_api_NotificationConfiguration"]:
@@ -35342,6 +35547,10 @@ class scout_checklistexecution_api_AssetStreamConfiguration(ConjureBeanType):
35342
35547
  def recovery_delay(self) -> "scout_run_api_Duration":
35343
35548
  return self._recovery_delay
35344
35549
 
35550
+ @builtins.property
35551
+ def auto_create_events(self) -> bool:
35552
+ return self._auto_create_events
35553
+
35345
35554
 
35346
35555
  scout_checklistexecution_api_AssetStreamConfiguration.__name__ = "AssetStreamConfiguration"
35347
35556
  scout_checklistexecution_api_AssetStreamConfiguration.__qualname__ = "AssetStreamConfiguration"
@@ -35561,6 +35770,7 @@ class scout_checklistexecution_api_CheckLiveStatusResponse(ConjureBeanType):
35561
35770
  @builtins.property
35562
35771
  def check_parameter_index(self) -> Optional[int]:
35563
35772
  """Checks can define a single range computation which can evaluate over multiple implementations of a context.
35773
+ assetRid: common.AssetRid
35564
35774
  The check implementation index will correspond to the implementation index of the check condition.
35565
35775
  """
35566
35776
  return self._check_parameter_index
@@ -36225,17 +36435,19 @@ class scout_checklistexecution_api_ExecuteChecklistForAssetsRequest(ConjureBeanT
36225
36435
  'assets': ConjureFieldDefinition('assets', List[scout_rids_api_AssetRid]),
36226
36436
  'notification_configurations': ConjureFieldDefinition('notificationConfigurations', List[scout_integrations_api_NotificationConfiguration]),
36227
36437
  'evaluation_delay': ConjureFieldDefinition('evaluationDelay', scout_run_api_Duration),
36228
- 'recovery_delay': ConjureFieldDefinition('recoveryDelay', scout_run_api_Duration)
36438
+ 'recovery_delay': ConjureFieldDefinition('recoveryDelay', scout_run_api_Duration),
36439
+ 'auto_create_events': ConjureFieldDefinition('autoCreateEvents', OptionalTypeWrapper[bool])
36229
36440
  }
36230
36441
 
36231
- __slots__: List[str] = ['_checklist', '_assets', '_notification_configurations', '_evaluation_delay', '_recovery_delay']
36442
+ __slots__: List[str] = ['_checklist', '_assets', '_notification_configurations', '_evaluation_delay', '_recovery_delay', '_auto_create_events']
36232
36443
 
36233
- def __init__(self, assets: List[str], checklist: str, evaluation_delay: "scout_run_api_Duration", notification_configurations: List["scout_integrations_api_NotificationConfiguration"], recovery_delay: "scout_run_api_Duration") -> None:
36444
+ def __init__(self, assets: List[str], checklist: str, evaluation_delay: "scout_run_api_Duration", notification_configurations: List["scout_integrations_api_NotificationConfiguration"], recovery_delay: "scout_run_api_Duration", auto_create_events: Optional[bool] = None) -> None:
36234
36445
  self._checklist = checklist
36235
36446
  self._assets = assets
36236
36447
  self._notification_configurations = notification_configurations
36237
36448
  self._evaluation_delay = evaluation_delay
36238
36449
  self._recovery_delay = recovery_delay
36450
+ self._auto_create_events = auto_create_events
36239
36451
 
36240
36452
  @builtins.property
36241
36453
  def checklist(self) -> str:
@@ -36264,6 +36476,14 @@ Minimum value is 15 seconds.
36264
36476
  """
36265
36477
  return self._recovery_delay
36266
36478
 
36479
+ @builtins.property
36480
+ def auto_create_events(self) -> Optional[bool]:
36481
+ """The option to automatically create events for check status changes.
36482
+ If true, events will be created when checks fail and recover.
36483
+ Defaults to false if not specified.
36484
+ """
36485
+ return self._auto_create_events
36486
+
36267
36487
 
36268
36488
  scout_checklistexecution_api_ExecuteChecklistForAssetsRequest.__name__ = "ExecuteChecklistForAssetsRequest"
36269
36489
  scout_checklistexecution_api_ExecuteChecklistForAssetsRequest.__qualname__ = "ExecuteChecklistForAssetsRequest"
@@ -44004,62 +44224,6 @@ scout_compute_api_BucketedEnumPlot.__qualname__ = "BucketedEnumPlot"
44004
44224
  scout_compute_api_BucketedEnumPlot.__module__ = "nominal_api.scout_compute_api"
44005
44225
 
44006
44226
 
44007
- class scout_compute_api_BucketedGeoPlot(ConjureUnionType):
44008
- _time_based: Optional["scout_compute_api_TimeBucketedGeoPlot"] = None
44009
-
44010
- @builtins.classmethod
44011
- def _options(cls) -> Dict[str, ConjureFieldDefinition]:
44012
- return {
44013
- 'time_based': ConjureFieldDefinition('timeBased', scout_compute_api_TimeBucketedGeoPlot)
44014
- }
44015
-
44016
- def __init__(
44017
- self,
44018
- time_based: Optional["scout_compute_api_TimeBucketedGeoPlot"] = None,
44019
- type_of_union: Optional[str] = None
44020
- ) -> None:
44021
- if type_of_union is None:
44022
- if (time_based is not None) != 1:
44023
- raise ValueError('a union must contain a single member')
44024
-
44025
- if time_based is not None:
44026
- self._time_based = time_based
44027
- self._type = 'timeBased'
44028
-
44029
- elif type_of_union == 'timeBased':
44030
- if time_based is None:
44031
- raise ValueError('a union value must not be None')
44032
- self._time_based = time_based
44033
- self._type = 'timeBased'
44034
-
44035
- @builtins.property
44036
- def time_based(self) -> Optional["scout_compute_api_TimeBucketedGeoPlot"]:
44037
- return self._time_based
44038
-
44039
- def accept(self, visitor) -> Any:
44040
- if not isinstance(visitor, scout_compute_api_BucketedGeoPlotVisitor):
44041
- raise ValueError('{} is not an instance of scout_compute_api_BucketedGeoPlotVisitor'.format(visitor.__class__.__name__))
44042
- if self._type == 'timeBased' and self.time_based is not None:
44043
- return visitor._time_based(self.time_based)
44044
-
44045
-
44046
- scout_compute_api_BucketedGeoPlot.__name__ = "BucketedGeoPlot"
44047
- scout_compute_api_BucketedGeoPlot.__qualname__ = "BucketedGeoPlot"
44048
- scout_compute_api_BucketedGeoPlot.__module__ = "nominal_api.scout_compute_api"
44049
-
44050
-
44051
- class scout_compute_api_BucketedGeoPlotVisitor:
44052
-
44053
- @abstractmethod
44054
- def _time_based(self, time_based: "scout_compute_api_TimeBucketedGeoPlot") -> Any:
44055
- pass
44056
-
44057
-
44058
- scout_compute_api_BucketedGeoPlotVisitor.__name__ = "BucketedGeoPlotVisitor"
44059
- scout_compute_api_BucketedGeoPlotVisitor.__qualname__ = "BucketedGeoPlotVisitor"
44060
- scout_compute_api_BucketedGeoPlotVisitor.__module__ = "nominal_api.scout_compute_api"
44061
-
44062
-
44063
44227
  class scout_compute_api_BucketedNumericArrayPlot(ConjureBeanType):
44064
44228
  """The array is flattened out into a an arrow stream of bucketed primitive results, with an extra column to
44065
44229
  indicate the index of the array that the bucket corresponds to.
@@ -44757,7 +44921,6 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
44757
44921
  _frequency: Optional["scout_compute_api_FrequencyDomain"] = None
44758
44922
  _frequency_v2: Optional["scout_compute_api_FrequencyDomainV2"] = None
44759
44923
  _histogram: Optional["scout_compute_api_Histogram"] = None
44760
- _geo: Optional["scout_compute_api_SummarizeGeo"] = None
44761
44924
  _curve: Optional["scout_compute_api_CurveFit"] = None
44762
44925
 
44763
44926
  @builtins.classmethod
@@ -44771,7 +44934,6 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
44771
44934
  'frequency': ConjureFieldDefinition('frequency', scout_compute_api_FrequencyDomain),
44772
44935
  'frequency_v2': ConjureFieldDefinition('frequencyV2', scout_compute_api_FrequencyDomainV2),
44773
44936
  'histogram': ConjureFieldDefinition('histogram', scout_compute_api_Histogram),
44774
- 'geo': ConjureFieldDefinition('geo', scout_compute_api_SummarizeGeo),
44775
44937
  'curve': ConjureFieldDefinition('curve', scout_compute_api_CurveFit)
44776
44938
  }
44777
44939
 
@@ -44785,12 +44947,11 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
44785
44947
  frequency: Optional["scout_compute_api_FrequencyDomain"] = None,
44786
44948
  frequency_v2: Optional["scout_compute_api_FrequencyDomainV2"] = None,
44787
44949
  histogram: Optional["scout_compute_api_Histogram"] = None,
44788
- geo: Optional["scout_compute_api_SummarizeGeo"] = None,
44789
44950
  curve: Optional["scout_compute_api_CurveFit"] = None,
44790
44951
  type_of_union: Optional[str] = None
44791
44952
  ) -> None:
44792
44953
  if type_of_union is None:
44793
- if (ranges is not None) + (series is not None) + (value is not None) + (cartesian is not None) + (cartesian3d is not None) + (frequency is not None) + (frequency_v2 is not None) + (histogram is not None) + (geo is not None) + (curve is not None) != 1:
44954
+ if (ranges is not None) + (series is not None) + (value is not None) + (cartesian is not None) + (cartesian3d is not None) + (frequency is not None) + (frequency_v2 is not None) + (histogram is not None) + (curve is not None) != 1:
44794
44955
  raise ValueError('a union must contain a single member')
44795
44956
 
44796
44957
  if ranges is not None:
@@ -44817,9 +44978,6 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
44817
44978
  if histogram is not None:
44818
44979
  self._histogram = histogram
44819
44980
  self._type = 'histogram'
44820
- if geo is not None:
44821
- self._geo = geo
44822
- self._type = 'geo'
44823
44981
  if curve is not None:
44824
44982
  self._curve = curve
44825
44983
  self._type = 'curve'
@@ -44864,11 +45022,6 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
44864
45022
  raise ValueError('a union value must not be None')
44865
45023
  self._histogram = histogram
44866
45024
  self._type = 'histogram'
44867
- elif type_of_union == 'geo':
44868
- if geo is None:
44869
- raise ValueError('a union value must not be None')
44870
- self._geo = geo
44871
- self._type = 'geo'
44872
45025
  elif type_of_union == 'curve':
44873
45026
  if curve is None:
44874
45027
  raise ValueError('a union value must not be None')
@@ -44907,10 +45060,6 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
44907
45060
  def histogram(self) -> Optional["scout_compute_api_Histogram"]:
44908
45061
  return self._histogram
44909
45062
 
44910
- @builtins.property
44911
- def geo(self) -> Optional["scout_compute_api_SummarizeGeo"]:
44912
- return self._geo
44913
-
44914
45063
  @builtins.property
44915
45064
  def curve(self) -> Optional["scout_compute_api_CurveFit"]:
44916
45065
  return self._curve
@@ -44934,8 +45083,6 @@ class scout_compute_api_ComputableNode(ConjureUnionType):
44934
45083
  return visitor._frequency_v2(self.frequency_v2)
44935
45084
  if self._type == 'histogram' and self.histogram is not None:
44936
45085
  return visitor._histogram(self.histogram)
44937
- if self._type == 'geo' and self.geo is not None:
44938
- return visitor._geo(self.geo)
44939
45086
  if self._type == 'curve' and self.curve is not None:
44940
45087
  return visitor._curve(self.curve)
44941
45088
 
@@ -44979,10 +45126,6 @@ class scout_compute_api_ComputableNodeVisitor:
44979
45126
  def _histogram(self, histogram: "scout_compute_api_Histogram") -> Any:
44980
45127
  pass
44981
45128
 
44982
- @abstractmethod
44983
- def _geo(self, geo: "scout_compute_api_SummarizeGeo") -> Any:
44984
- pass
44985
-
44986
45129
  @abstractmethod
44987
45130
  def _curve(self, curve: "scout_compute_api_CurveFit") -> Any:
44988
45131
  pass
@@ -45298,7 +45441,6 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
45298
45441
  _cartesian: Optional["scout_compute_api_CartesianPlot"] = None
45299
45442
  _bucketed_cartesian: Optional["scout_compute_api_BucketedCartesianPlot"] = None
45300
45443
  _bucketed_cartesian3d: Optional["scout_compute_api_BucketedCartesian3dPlot"] = None
45301
- _bucketed_geo: Optional["scout_compute_api_BucketedGeoPlot"] = None
45302
45444
  _frequency_domain: Optional["scout_compute_api_FrequencyDomainPlot"] = None
45303
45445
  _frequency_domain_v2: Optional["scout_compute_api_FrequencyDomainPlotV2"] = None
45304
45446
  _numeric_histogram: Optional["scout_compute_api_NumericHistogramPlot"] = None
@@ -45331,7 +45473,6 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
45331
45473
  'cartesian': ConjureFieldDefinition('cartesian', scout_compute_api_CartesianPlot),
45332
45474
  'bucketed_cartesian': ConjureFieldDefinition('bucketedCartesian', scout_compute_api_BucketedCartesianPlot),
45333
45475
  'bucketed_cartesian3d': ConjureFieldDefinition('bucketedCartesian3d', scout_compute_api_BucketedCartesian3dPlot),
45334
- 'bucketed_geo': ConjureFieldDefinition('bucketedGeo', scout_compute_api_BucketedGeoPlot),
45335
45476
  'frequency_domain': ConjureFieldDefinition('frequencyDomain', scout_compute_api_FrequencyDomainPlot),
45336
45477
  'frequency_domain_v2': ConjureFieldDefinition('frequencyDomainV2', scout_compute_api_FrequencyDomainPlotV2),
45337
45478
  'numeric_histogram': ConjureFieldDefinition('numericHistogram', scout_compute_api_NumericHistogramPlot),
@@ -45364,7 +45505,6 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
45364
45505
  cartesian: Optional["scout_compute_api_CartesianPlot"] = None,
45365
45506
  bucketed_cartesian: Optional["scout_compute_api_BucketedCartesianPlot"] = None,
45366
45507
  bucketed_cartesian3d: Optional["scout_compute_api_BucketedCartesian3dPlot"] = None,
45367
- bucketed_geo: Optional["scout_compute_api_BucketedGeoPlot"] = None,
45368
45508
  frequency_domain: Optional["scout_compute_api_FrequencyDomainPlot"] = None,
45369
45509
  frequency_domain_v2: Optional["scout_compute_api_FrequencyDomainPlotV2"] = None,
45370
45510
  numeric_histogram: Optional["scout_compute_api_NumericHistogramPlot"] = None,
@@ -45377,7 +45517,7 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
45377
45517
  type_of_union: Optional[str] = None
45378
45518
  ) -> None:
45379
45519
  if type_of_union is None:
45380
- if (range is not None) + (ranges_summary is not None) + (range_value is not None) + (numeric is not None) + (bucketed_numeric is not None) + (numeric_point is not None) + (single_point is not None) + (arrow_numeric is not None) + (arrow_bucketed_numeric is not None) + (enum is not None) + (enum_point is not None) + (bucketed_enum is not None) + (arrow_enum is not None) + (arrow_bucketed_enum is not None) + (paged_log is not None) + (log_point is not None) + (cartesian is not None) + (bucketed_cartesian is not None) + (bucketed_cartesian3d is not None) + (bucketed_geo is not None) + (frequency_domain is not None) + (frequency_domain_v2 is not None) + (numeric_histogram is not None) + (enum_histogram is not None) + (curve_fit is not None) + (grouped is not None) + (array is not None) + (bucketed_struct is not None) + (full_resolution is not None) != 1:
45520
+ if (range is not None) + (ranges_summary is not None) + (range_value is not None) + (numeric is not None) + (bucketed_numeric is not None) + (numeric_point is not None) + (single_point is not None) + (arrow_numeric is not None) + (arrow_bucketed_numeric is not None) + (enum is not None) + (enum_point is not None) + (bucketed_enum is not None) + (arrow_enum is not None) + (arrow_bucketed_enum is not None) + (paged_log is not None) + (log_point is not None) + (cartesian is not None) + (bucketed_cartesian is not None) + (bucketed_cartesian3d is not None) + (frequency_domain is not None) + (frequency_domain_v2 is not None) + (numeric_histogram is not None) + (enum_histogram is not None) + (curve_fit is not None) + (grouped is not None) + (array is not None) + (bucketed_struct is not None) + (full_resolution is not None) != 1:
45381
45521
  raise ValueError('a union must contain a single member')
45382
45522
 
45383
45523
  if range is not None:
@@ -45437,9 +45577,6 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
45437
45577
  if bucketed_cartesian3d is not None:
45438
45578
  self._bucketed_cartesian3d = bucketed_cartesian3d
45439
45579
  self._type = 'bucketedCartesian3d'
45440
- if bucketed_geo is not None:
45441
- self._bucketed_geo = bucketed_geo
45442
- self._type = 'bucketedGeo'
45443
45580
  if frequency_domain is not None:
45444
45581
  self._frequency_domain = frequency_domain
45445
45582
  self._type = 'frequencyDomain'
@@ -45563,11 +45700,6 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
45563
45700
  raise ValueError('a union value must not be None')
45564
45701
  self._bucketed_cartesian3d = bucketed_cartesian3d
45565
45702
  self._type = 'bucketedCartesian3d'
45566
- elif type_of_union == 'bucketedGeo':
45567
- if bucketed_geo is None:
45568
- raise ValueError('a union value must not be None')
45569
- self._bucketed_geo = bucketed_geo
45570
- self._type = 'bucketedGeo'
45571
45703
  elif type_of_union == 'frequencyDomain':
45572
45704
  if frequency_domain is None:
45573
45705
  raise ValueError('a union value must not be None')
@@ -45690,10 +45822,6 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
45690
45822
  def bucketed_cartesian3d(self) -> Optional["scout_compute_api_BucketedCartesian3dPlot"]:
45691
45823
  return self._bucketed_cartesian3d
45692
45824
 
45693
- @builtins.property
45694
- def bucketed_geo(self) -> Optional["scout_compute_api_BucketedGeoPlot"]:
45695
- return self._bucketed_geo
45696
-
45697
45825
  @builtins.property
45698
45826
  def frequency_domain(self) -> Optional["scout_compute_api_FrequencyDomainPlot"]:
45699
45827
  return self._frequency_domain
@@ -45771,8 +45899,6 @@ class scout_compute_api_ComputeNodeResponse(ConjureUnionType):
45771
45899
  return visitor._bucketed_cartesian(self.bucketed_cartesian)
45772
45900
  if self._type == 'bucketedCartesian3d' and self.bucketed_cartesian3d is not None:
45773
45901
  return visitor._bucketed_cartesian3d(self.bucketed_cartesian3d)
45774
- if self._type == 'bucketedGeo' and self.bucketed_geo is not None:
45775
- return visitor._bucketed_geo(self.bucketed_geo)
45776
45902
  if self._type == 'frequencyDomain' and self.frequency_domain is not None:
45777
45903
  return visitor._frequency_domain(self.frequency_domain)
45778
45904
  if self._type == 'frequencyDomainV2' and self.frequency_domain_v2 is not None:
@@ -45876,10 +46002,6 @@ class scout_compute_api_ComputeNodeResponseVisitor:
45876
46002
  def _bucketed_cartesian3d(self, bucketed_cartesian3d: "scout_compute_api_BucketedCartesian3dPlot") -> Any:
45877
46003
  pass
45878
46004
 
45879
- @abstractmethod
45880
- def _bucketed_geo(self, bucketed_geo: "scout_compute_api_BucketedGeoPlot") -> Any:
45881
- pass
45882
-
45883
46005
  @abstractmethod
45884
46006
  def _frequency_domain(self, frequency_domain: "scout_compute_api_FrequencyDomainPlot") -> Any:
45885
46007
  pass
@@ -49742,279 +49864,6 @@ scout_compute_api_FunctionVariables.__qualname__ = "FunctionVariables"
49742
49864
  scout_compute_api_FunctionVariables.__module__ = "nominal_api.scout_compute_api"
49743
49865
 
49744
49866
 
49745
- class scout_compute_api_GeoPoint(ConjureUnionType):
49746
- """Represents a geographic point. Flexible to handle multiple types of geographic coordinate systems.
49747
- """
49748
- _lat_long: Optional["scout_compute_api_LatLongPoint"] = None
49749
-
49750
- @builtins.classmethod
49751
- def _options(cls) -> Dict[str, ConjureFieldDefinition]:
49752
- return {
49753
- 'lat_long': ConjureFieldDefinition('latLong', scout_compute_api_LatLongPoint)
49754
- }
49755
-
49756
- def __init__(
49757
- self,
49758
- lat_long: Optional["scout_compute_api_LatLongPoint"] = None,
49759
- type_of_union: Optional[str] = None
49760
- ) -> None:
49761
- if type_of_union is None:
49762
- if (lat_long is not None) != 1:
49763
- raise ValueError('a union must contain a single member')
49764
-
49765
- if lat_long is not None:
49766
- self._lat_long = lat_long
49767
- self._type = 'latLong'
49768
-
49769
- elif type_of_union == 'latLong':
49770
- if lat_long is None:
49771
- raise ValueError('a union value must not be None')
49772
- self._lat_long = lat_long
49773
- self._type = 'latLong'
49774
-
49775
- @builtins.property
49776
- def lat_long(self) -> Optional["scout_compute_api_LatLongPoint"]:
49777
- return self._lat_long
49778
-
49779
- def accept(self, visitor) -> Any:
49780
- if not isinstance(visitor, scout_compute_api_GeoPointVisitor):
49781
- raise ValueError('{} is not an instance of scout_compute_api_GeoPointVisitor'.format(visitor.__class__.__name__))
49782
- if self._type == 'latLong' and self.lat_long is not None:
49783
- return visitor._lat_long(self.lat_long)
49784
-
49785
-
49786
- scout_compute_api_GeoPoint.__name__ = "GeoPoint"
49787
- scout_compute_api_GeoPoint.__qualname__ = "GeoPoint"
49788
- scout_compute_api_GeoPoint.__module__ = "nominal_api.scout_compute_api"
49789
-
49790
-
49791
- class scout_compute_api_GeoPointVisitor:
49792
-
49793
- @abstractmethod
49794
- def _lat_long(self, lat_long: "scout_compute_api_LatLongPoint") -> Any:
49795
- pass
49796
-
49797
-
49798
- scout_compute_api_GeoPointVisitor.__name__ = "GeoPointVisitor"
49799
- scout_compute_api_GeoPointVisitor.__qualname__ = "GeoPointVisitor"
49800
- scout_compute_api_GeoPointVisitor.__module__ = "nominal_api.scout_compute_api"
49801
-
49802
-
49803
- class scout_compute_api_GeoPointWithTimestamp(ConjureBeanType):
49804
-
49805
- @builtins.classmethod
49806
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
49807
- return {
49808
- 'timestamp': ConjureFieldDefinition('timestamp', api_Timestamp),
49809
- 'value': ConjureFieldDefinition('value', scout_compute_api_GeoPoint)
49810
- }
49811
-
49812
- __slots__: List[str] = ['_timestamp', '_value']
49813
-
49814
- def __init__(self, timestamp: "api_Timestamp", value: "scout_compute_api_GeoPoint") -> None:
49815
- self._timestamp = timestamp
49816
- self._value = value
49817
-
49818
- @builtins.property
49819
- def timestamp(self) -> "api_Timestamp":
49820
- return self._timestamp
49821
-
49822
- @builtins.property
49823
- def value(self) -> "scout_compute_api_GeoPoint":
49824
- return self._value
49825
-
49826
-
49827
- scout_compute_api_GeoPointWithTimestamp.__name__ = "GeoPointWithTimestamp"
49828
- scout_compute_api_GeoPointWithTimestamp.__qualname__ = "GeoPointWithTimestamp"
49829
- scout_compute_api_GeoPointWithTimestamp.__module__ = "nominal_api.scout_compute_api"
49830
-
49831
-
49832
- class scout_compute_api_GeoSeries(ConjureUnionType):
49833
- _lat_long_geo_node: Optional["scout_compute_api_LatLongGeo"] = None
49834
-
49835
- @builtins.classmethod
49836
- def _options(cls) -> Dict[str, ConjureFieldDefinition]:
49837
- return {
49838
- 'lat_long_geo_node': ConjureFieldDefinition('latLongGeoNode', scout_compute_api_LatLongGeo)
49839
- }
49840
-
49841
- def __init__(
49842
- self,
49843
- lat_long_geo_node: Optional["scout_compute_api_LatLongGeo"] = None,
49844
- type_of_union: Optional[str] = None
49845
- ) -> None:
49846
- if type_of_union is None:
49847
- if (lat_long_geo_node is not None) != 1:
49848
- raise ValueError('a union must contain a single member')
49849
-
49850
- if lat_long_geo_node is not None:
49851
- self._lat_long_geo_node = lat_long_geo_node
49852
- self._type = 'latLongGeoNode'
49853
-
49854
- elif type_of_union == 'latLongGeoNode':
49855
- if lat_long_geo_node is None:
49856
- raise ValueError('a union value must not be None')
49857
- self._lat_long_geo_node = lat_long_geo_node
49858
- self._type = 'latLongGeoNode'
49859
-
49860
- @builtins.property
49861
- def lat_long_geo_node(self) -> Optional["scout_compute_api_LatLongGeo"]:
49862
- return self._lat_long_geo_node
49863
-
49864
- def accept(self, visitor) -> Any:
49865
- if not isinstance(visitor, scout_compute_api_GeoSeriesVisitor):
49866
- raise ValueError('{} is not an instance of scout_compute_api_GeoSeriesVisitor'.format(visitor.__class__.__name__))
49867
- if self._type == 'latLongGeoNode' and self.lat_long_geo_node is not None:
49868
- return visitor._lat_long_geo_node(self.lat_long_geo_node)
49869
-
49870
-
49871
- scout_compute_api_GeoSeries.__name__ = "GeoSeries"
49872
- scout_compute_api_GeoSeries.__qualname__ = "GeoSeries"
49873
- scout_compute_api_GeoSeries.__module__ = "nominal_api.scout_compute_api"
49874
-
49875
-
49876
- class scout_compute_api_GeoSeriesVisitor:
49877
-
49878
- @abstractmethod
49879
- def _lat_long_geo_node(self, lat_long_geo_node: "scout_compute_api_LatLongGeo") -> Any:
49880
- pass
49881
-
49882
-
49883
- scout_compute_api_GeoSeriesVisitor.__name__ = "GeoSeriesVisitor"
49884
- scout_compute_api_GeoSeriesVisitor.__qualname__ = "GeoSeriesVisitor"
49885
- scout_compute_api_GeoSeriesVisitor.__module__ = "nominal_api.scout_compute_api"
49886
-
49887
-
49888
- class scout_compute_api_GeoSummaryStrategy(ConjureUnionType):
49889
- _temporal: Optional["scout_compute_api_GeoTemporalSummary"] = None
49890
-
49891
- @builtins.classmethod
49892
- def _options(cls) -> Dict[str, ConjureFieldDefinition]:
49893
- return {
49894
- 'temporal': ConjureFieldDefinition('temporal', scout_compute_api_GeoTemporalSummary)
49895
- }
49896
-
49897
- def __init__(
49898
- self,
49899
- temporal: Optional["scout_compute_api_GeoTemporalSummary"] = None,
49900
- type_of_union: Optional[str] = None
49901
- ) -> None:
49902
- if type_of_union is None:
49903
- if (temporal is not None) != 1:
49904
- raise ValueError('a union must contain a single member')
49905
-
49906
- if temporal is not None:
49907
- self._temporal = temporal
49908
- self._type = 'temporal'
49909
-
49910
- elif type_of_union == 'temporal':
49911
- if temporal is None:
49912
- raise ValueError('a union value must not be None')
49913
- self._temporal = temporal
49914
- self._type = 'temporal'
49915
-
49916
- @builtins.property
49917
- def temporal(self) -> Optional["scout_compute_api_GeoTemporalSummary"]:
49918
- return self._temporal
49919
-
49920
- def accept(self, visitor) -> Any:
49921
- if not isinstance(visitor, scout_compute_api_GeoSummaryStrategyVisitor):
49922
- raise ValueError('{} is not an instance of scout_compute_api_GeoSummaryStrategyVisitor'.format(visitor.__class__.__name__))
49923
- if self._type == 'temporal' and self.temporal is not None:
49924
- return visitor._temporal(self.temporal)
49925
-
49926
-
49927
- scout_compute_api_GeoSummaryStrategy.__name__ = "GeoSummaryStrategy"
49928
- scout_compute_api_GeoSummaryStrategy.__qualname__ = "GeoSummaryStrategy"
49929
- scout_compute_api_GeoSummaryStrategy.__module__ = "nominal_api.scout_compute_api"
49930
-
49931
-
49932
- class scout_compute_api_GeoSummaryStrategyVisitor:
49933
-
49934
- @abstractmethod
49935
- def _temporal(self, temporal: "scout_compute_api_GeoTemporalSummary") -> Any:
49936
- pass
49937
-
49938
-
49939
- scout_compute_api_GeoSummaryStrategyVisitor.__name__ = "GeoSummaryStrategyVisitor"
49940
- scout_compute_api_GeoSummaryStrategyVisitor.__qualname__ = "GeoSummaryStrategyVisitor"
49941
- scout_compute_api_GeoSummaryStrategyVisitor.__module__ = "nominal_api.scout_compute_api"
49942
-
49943
-
49944
- class scout_compute_api_GeoTemporalSummary(ConjureBeanType):
49945
-
49946
- @builtins.classmethod
49947
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
49948
- return {
49949
- 'resolution': ConjureFieldDefinition('resolution', int)
49950
- }
49951
-
49952
- __slots__: List[str] = ['_resolution']
49953
-
49954
- def __init__(self, resolution: int) -> None:
49955
- self._resolution = resolution
49956
-
49957
- @builtins.property
49958
- def resolution(self) -> int:
49959
- return self._resolution
49960
-
49961
-
49962
- scout_compute_api_GeoTemporalSummary.__name__ = "GeoTemporalSummary"
49963
- scout_compute_api_GeoTemporalSummary.__qualname__ = "GeoTemporalSummary"
49964
- scout_compute_api_GeoTemporalSummary.__module__ = "nominal_api.scout_compute_api"
49965
-
49966
-
49967
- class scout_compute_api_GeoTimeBucket(ConjureBeanType):
49968
- """Summary of a time-based bucket of geo points.
49969
- """
49970
-
49971
- @builtins.classmethod
49972
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
49973
- return {
49974
- 'mean': ConjureFieldDefinition('mean', scout_compute_api_GeoPoint),
49975
- 'count': ConjureFieldDefinition('count', int),
49976
- 'first_point': ConjureFieldDefinition('firstPoint', scout_compute_api_GeoPointWithTimestamp),
49977
- 'last_point': ConjureFieldDefinition('lastPoint', OptionalTypeWrapper[scout_compute_api_GeoPointWithTimestamp])
49978
- }
49979
-
49980
- __slots__: List[str] = ['_mean', '_count', '_first_point', '_last_point']
49981
-
49982
- def __init__(self, count: int, first_point: "scout_compute_api_GeoPointWithTimestamp", mean: "scout_compute_api_GeoPoint", last_point: Optional["scout_compute_api_GeoPointWithTimestamp"] = None) -> None:
49983
- self._mean = mean
49984
- self._count = count
49985
- self._first_point = first_point
49986
- self._last_point = last_point
49987
-
49988
- @builtins.property
49989
- def mean(self) -> "scout_compute_api_GeoPoint":
49990
- """The mean value of the GeoPoints in the bucket.
49991
- """
49992
- return self._mean
49993
-
49994
- @builtins.property
49995
- def count(self) -> int:
49996
- """The number of GeoPoints in the bucket.
49997
- """
49998
- return self._count
49999
-
50000
- @builtins.property
50001
- def first_point(self) -> "scout_compute_api_GeoPointWithTimestamp":
50002
- """The first GeoPoint in the bucket.
50003
- """
50004
- return self._first_point
50005
-
50006
- @builtins.property
50007
- def last_point(self) -> Optional["scout_compute_api_GeoPointWithTimestamp"]:
50008
- """The last GeoPoint in the bucket. Will be empty if the bucket only has a single point.
50009
- """
50010
- return self._last_point
50011
-
50012
-
50013
- scout_compute_api_GeoTimeBucket.__name__ = "GeoTimeBucket"
50014
- scout_compute_api_GeoTimeBucket.__qualname__ = "GeoTimeBucket"
50015
- scout_compute_api_GeoTimeBucket.__module__ = "nominal_api.scout_compute_api"
50016
-
50017
-
50018
49867
  class scout_compute_api_GroupedComputeNodeResponse(ConjureBeanType):
50019
49868
 
50020
49869
  @builtins.classmethod
@@ -50484,75 +50333,6 @@ scout_compute_api_IntersectRanges.__qualname__ = "IntersectRanges"
50484
50333
  scout_compute_api_IntersectRanges.__module__ = "nominal_api.scout_compute_api"
50485
50334
 
50486
50335
 
50487
- class scout_compute_api_LatLongBounds(ConjureBeanType):
50488
- """The bounds of a lat long geographic area. Represented by the southwest and northeast corners
50489
- of a rectangle, inclusive.
50490
- """
50491
-
50492
- @builtins.classmethod
50493
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
50494
- return {
50495
- 'south_west': ConjureFieldDefinition('southWest', scout_compute_api_LatLongPoint),
50496
- 'north_east': ConjureFieldDefinition('northEast', scout_compute_api_LatLongPoint)
50497
- }
50498
-
50499
- __slots__: List[str] = ['_south_west', '_north_east']
50500
-
50501
- def __init__(self, north_east: "scout_compute_api_LatLongPoint", south_west: "scout_compute_api_LatLongPoint") -> None:
50502
- self._south_west = south_west
50503
- self._north_east = north_east
50504
-
50505
- @builtins.property
50506
- def south_west(self) -> "scout_compute_api_LatLongPoint":
50507
- return self._south_west
50508
-
50509
- @builtins.property
50510
- def north_east(self) -> "scout_compute_api_LatLongPoint":
50511
- return self._north_east
50512
-
50513
-
50514
- scout_compute_api_LatLongBounds.__name__ = "LatLongBounds"
50515
- scout_compute_api_LatLongBounds.__qualname__ = "LatLongBounds"
50516
- scout_compute_api_LatLongBounds.__module__ = "nominal_api.scout_compute_api"
50517
-
50518
-
50519
- class scout_compute_api_LatLongGeo(ConjureBeanType):
50520
- """A geo node derived from a lat and long series.
50521
- """
50522
-
50523
- @builtins.classmethod
50524
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
50525
- return {
50526
- 'latitude': ConjureFieldDefinition('latitude', scout_compute_api_NumericSeries),
50527
- 'longitude': ConjureFieldDefinition('longitude', scout_compute_api_NumericSeries),
50528
- 'bounds': ConjureFieldDefinition('bounds', OptionalTypeWrapper[scout_compute_api_LatLongBounds])
50529
- }
50530
-
50531
- __slots__: List[str] = ['_latitude', '_longitude', '_bounds']
50532
-
50533
- def __init__(self, latitude: "scout_compute_api_NumericSeries", longitude: "scout_compute_api_NumericSeries", bounds: Optional["scout_compute_api_LatLongBounds"] = None) -> None:
50534
- self._latitude = latitude
50535
- self._longitude = longitude
50536
- self._bounds = bounds
50537
-
50538
- @builtins.property
50539
- def latitude(self) -> "scout_compute_api_NumericSeries":
50540
- return self._latitude
50541
-
50542
- @builtins.property
50543
- def longitude(self) -> "scout_compute_api_NumericSeries":
50544
- return self._longitude
50545
-
50546
- @builtins.property
50547
- def bounds(self) -> Optional["scout_compute_api_LatLongBounds"]:
50548
- return self._bounds
50549
-
50550
-
50551
- scout_compute_api_LatLongGeo.__name__ = "LatLongGeo"
50552
- scout_compute_api_LatLongGeo.__qualname__ = "LatLongGeo"
50553
- scout_compute_api_LatLongGeo.__module__ = "nominal_api.scout_compute_api"
50554
-
50555
-
50556
50336
  class scout_compute_api_LatLongPoint(ConjureBeanType):
50557
50337
 
50558
50338
  @builtins.classmethod
@@ -56688,6 +56468,8 @@ scout_compute_api_SeriesEqualityRanges.__module__ = "nominal_api.scout_compute_a
56688
56468
 
56689
56469
 
56690
56470
  class scout_compute_api_SeriesSpec(ConjureBeanType):
56471
+ """Deprecated and should not be created by clients. Use ChannelSeries instead.
56472
+ """
56691
56473
 
56692
56474
  @builtins.classmethod
56693
56475
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -57703,35 +57485,6 @@ scout_compute_api_SummarizeCartesian3d.__qualname__ = "SummarizeCartesian3d"
57703
57485
  scout_compute_api_SummarizeCartesian3d.__module__ = "nominal_api.scout_compute_api"
57704
57486
 
57705
57487
 
57706
- class scout_compute_api_SummarizeGeo(ConjureBeanType):
57707
-
57708
- @builtins.classmethod
57709
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
57710
- return {
57711
- 'input': ConjureFieldDefinition('input', scout_compute_api_GeoSeries),
57712
- 'summary_strategy': ConjureFieldDefinition('summaryStrategy', scout_compute_api_GeoSummaryStrategy)
57713
- }
57714
-
57715
- __slots__: List[str] = ['_input', '_summary_strategy']
57716
-
57717
- def __init__(self, input: "scout_compute_api_GeoSeries", summary_strategy: "scout_compute_api_GeoSummaryStrategy") -> None:
57718
- self._input = input
57719
- self._summary_strategy = summary_strategy
57720
-
57721
- @builtins.property
57722
- def input(self) -> "scout_compute_api_GeoSeries":
57723
- return self._input
57724
-
57725
- @builtins.property
57726
- def summary_strategy(self) -> "scout_compute_api_GeoSummaryStrategy":
57727
- return self._summary_strategy
57728
-
57729
-
57730
- scout_compute_api_SummarizeGeo.__name__ = "SummarizeGeo"
57731
- scout_compute_api_SummarizeGeo.__qualname__ = "SummarizeGeo"
57732
- scout_compute_api_SummarizeGeo.__module__ = "nominal_api.scout_compute_api"
57733
-
57734
-
57735
57488
  class scout_compute_api_SummarizeRanges(ConjureBeanType):
57736
57489
 
57737
57490
  @builtins.classmethod
@@ -58192,37 +57945,6 @@ scout_compute_api_ThresholdingRanges.__qualname__ = "ThresholdingRanges"
58192
57945
  scout_compute_api_ThresholdingRanges.__module__ = "nominal_api.scout_compute_api"
58193
57946
 
58194
57947
 
58195
- class scout_compute_api_TimeBucketedGeoPlot(ConjureBeanType):
58196
-
58197
- @builtins.classmethod
58198
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
58199
- return {
58200
- 'timestamps': ConjureFieldDefinition('timestamps', List[api_Timestamp]),
58201
- 'buckets': ConjureFieldDefinition('buckets', List[scout_compute_api_GeoTimeBucket])
58202
- }
58203
-
58204
- __slots__: List[str] = ['_timestamps', '_buckets']
58205
-
58206
- def __init__(self, buckets: List["scout_compute_api_GeoTimeBucket"], timestamps: List["api_Timestamp"]) -> None:
58207
- self._timestamps = timestamps
58208
- self._buckets = buckets
58209
-
58210
- @builtins.property
58211
- def timestamps(self) -> List["api_Timestamp"]:
58212
- """The end of the bucket, exclusive.
58213
- """
58214
- return self._timestamps
58215
-
58216
- @builtins.property
58217
- def buckets(self) -> List["scout_compute_api_GeoTimeBucket"]:
58218
- return self._buckets
58219
-
58220
-
58221
- scout_compute_api_TimeBucketedGeoPlot.__name__ = "TimeBucketedGeoPlot"
58222
- scout_compute_api_TimeBucketedGeoPlot.__qualname__ = "TimeBucketedGeoPlot"
58223
- scout_compute_api_TimeBucketedGeoPlot.__module__ = "nominal_api.scout_compute_api"
58224
-
58225
-
58226
57948
  class scout_compute_api_TimeDifferenceSeries(ConjureBeanType):
58227
57949
  """Outputs a new series where each value is the difference between the time of the current and previous points.
58228
57950
  """
@@ -63787,141 +63509,6 @@ scout_compute_resolved_api_FrequencyDomainNodeV2Visitor.__qualname__ = "Frequenc
63787
63509
  scout_compute_resolved_api_FrequencyDomainNodeV2Visitor.__module__ = "nominal_api.scout_compute_resolved_api"
63788
63510
 
63789
63511
 
63790
- class scout_compute_resolved_api_GeoNode(ConjureUnionType):
63791
- _lat_long_geo_node: Optional["scout_compute_resolved_api_LatLongGeoNode"] = None
63792
-
63793
- @builtins.classmethod
63794
- def _options(cls) -> Dict[str, ConjureFieldDefinition]:
63795
- return {
63796
- 'lat_long_geo_node': ConjureFieldDefinition('latLongGeoNode', scout_compute_resolved_api_LatLongGeoNode)
63797
- }
63798
-
63799
- def __init__(
63800
- self,
63801
- lat_long_geo_node: Optional["scout_compute_resolved_api_LatLongGeoNode"] = None,
63802
- type_of_union: Optional[str] = None
63803
- ) -> None:
63804
- if type_of_union is None:
63805
- if (lat_long_geo_node is not None) != 1:
63806
- raise ValueError('a union must contain a single member')
63807
-
63808
- if lat_long_geo_node is not None:
63809
- self._lat_long_geo_node = lat_long_geo_node
63810
- self._type = 'latLongGeoNode'
63811
-
63812
- elif type_of_union == 'latLongGeoNode':
63813
- if lat_long_geo_node is None:
63814
- raise ValueError('a union value must not be None')
63815
- self._lat_long_geo_node = lat_long_geo_node
63816
- self._type = 'latLongGeoNode'
63817
-
63818
- @builtins.property
63819
- def lat_long_geo_node(self) -> Optional["scout_compute_resolved_api_LatLongGeoNode"]:
63820
- return self._lat_long_geo_node
63821
-
63822
- def accept(self, visitor) -> Any:
63823
- if not isinstance(visitor, scout_compute_resolved_api_GeoNodeVisitor):
63824
- raise ValueError('{} is not an instance of scout_compute_resolved_api_GeoNodeVisitor'.format(visitor.__class__.__name__))
63825
- if self._type == 'latLongGeoNode' and self.lat_long_geo_node is not None:
63826
- return visitor._lat_long_geo_node(self.lat_long_geo_node)
63827
-
63828
-
63829
- scout_compute_resolved_api_GeoNode.__name__ = "GeoNode"
63830
- scout_compute_resolved_api_GeoNode.__qualname__ = "GeoNode"
63831
- scout_compute_resolved_api_GeoNode.__module__ = "nominal_api.scout_compute_resolved_api"
63832
-
63833
-
63834
- class scout_compute_resolved_api_GeoNodeVisitor:
63835
-
63836
- @abstractmethod
63837
- def _lat_long_geo_node(self, lat_long_geo_node: "scout_compute_resolved_api_LatLongGeoNode") -> Any:
63838
- pass
63839
-
63840
-
63841
- scout_compute_resolved_api_GeoNodeVisitor.__name__ = "GeoNodeVisitor"
63842
- scout_compute_resolved_api_GeoNodeVisitor.__qualname__ = "GeoNodeVisitor"
63843
- scout_compute_resolved_api_GeoNodeVisitor.__module__ = "nominal_api.scout_compute_resolved_api"
63844
-
63845
-
63846
- class scout_compute_resolved_api_GeoNodeSummaryStrategy(ConjureUnionType):
63847
- _temporal: Optional["scout_compute_resolved_api_GeoNodeTemporalSummary"] = None
63848
-
63849
- @builtins.classmethod
63850
- def _options(cls) -> Dict[str, ConjureFieldDefinition]:
63851
- return {
63852
- 'temporal': ConjureFieldDefinition('temporal', scout_compute_resolved_api_GeoNodeTemporalSummary)
63853
- }
63854
-
63855
- def __init__(
63856
- self,
63857
- temporal: Optional["scout_compute_resolved_api_GeoNodeTemporalSummary"] = None,
63858
- type_of_union: Optional[str] = None
63859
- ) -> None:
63860
- if type_of_union is None:
63861
- if (temporal is not None) != 1:
63862
- raise ValueError('a union must contain a single member')
63863
-
63864
- if temporal is not None:
63865
- self._temporal = temporal
63866
- self._type = 'temporal'
63867
-
63868
- elif type_of_union == 'temporal':
63869
- if temporal is None:
63870
- raise ValueError('a union value must not be None')
63871
- self._temporal = temporal
63872
- self._type = 'temporal'
63873
-
63874
- @builtins.property
63875
- def temporal(self) -> Optional["scout_compute_resolved_api_GeoNodeTemporalSummary"]:
63876
- return self._temporal
63877
-
63878
- def accept(self, visitor) -> Any:
63879
- if not isinstance(visitor, scout_compute_resolved_api_GeoNodeSummaryStrategyVisitor):
63880
- raise ValueError('{} is not an instance of scout_compute_resolved_api_GeoNodeSummaryStrategyVisitor'.format(visitor.__class__.__name__))
63881
- if self._type == 'temporal' and self.temporal is not None:
63882
- return visitor._temporal(self.temporal)
63883
-
63884
-
63885
- scout_compute_resolved_api_GeoNodeSummaryStrategy.__name__ = "GeoNodeSummaryStrategy"
63886
- scout_compute_resolved_api_GeoNodeSummaryStrategy.__qualname__ = "GeoNodeSummaryStrategy"
63887
- scout_compute_resolved_api_GeoNodeSummaryStrategy.__module__ = "nominal_api.scout_compute_resolved_api"
63888
-
63889
-
63890
- class scout_compute_resolved_api_GeoNodeSummaryStrategyVisitor:
63891
-
63892
- @abstractmethod
63893
- def _temporal(self, temporal: "scout_compute_resolved_api_GeoNodeTemporalSummary") -> Any:
63894
- pass
63895
-
63896
-
63897
- scout_compute_resolved_api_GeoNodeSummaryStrategyVisitor.__name__ = "GeoNodeSummaryStrategyVisitor"
63898
- scout_compute_resolved_api_GeoNodeSummaryStrategyVisitor.__qualname__ = "GeoNodeSummaryStrategyVisitor"
63899
- scout_compute_resolved_api_GeoNodeSummaryStrategyVisitor.__module__ = "nominal_api.scout_compute_resolved_api"
63900
-
63901
-
63902
- class scout_compute_resolved_api_GeoNodeTemporalSummary(ConjureBeanType):
63903
-
63904
- @builtins.classmethod
63905
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
63906
- return {
63907
- 'resolution': ConjureFieldDefinition('resolution', int)
63908
- }
63909
-
63910
- __slots__: List[str] = ['_resolution']
63911
-
63912
- def __init__(self, resolution: int) -> None:
63913
- self._resolution = resolution
63914
-
63915
- @builtins.property
63916
- def resolution(self) -> int:
63917
- return self._resolution
63918
-
63919
-
63920
- scout_compute_resolved_api_GeoNodeTemporalSummary.__name__ = "GeoNodeTemporalSummary"
63921
- scout_compute_resolved_api_GeoNodeTemporalSummary.__qualname__ = "GeoNodeTemporalSummary"
63922
- scout_compute_resolved_api_GeoNodeTemporalSummary.__module__ = "nominal_api.scout_compute_resolved_api"
63923
-
63924
-
63925
63512
  class scout_compute_resolved_api_HighPassConfiguration(ConjureBeanType):
63926
63513
 
63927
63514
  @builtins.classmethod
@@ -64136,70 +63723,6 @@ scout_compute_resolved_api_IntersectRangesNode.__qualname__ = "IntersectRangesNo
64136
63723
  scout_compute_resolved_api_IntersectRangesNode.__module__ = "nominal_api.scout_compute_resolved_api"
64137
63724
 
64138
63725
 
64139
- class scout_compute_resolved_api_LatLongBounds(ConjureBeanType):
64140
-
64141
- @builtins.classmethod
64142
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
64143
- return {
64144
- 'south_west': ConjureFieldDefinition('southWest', scout_compute_api_LatLongPoint),
64145
- 'north_east': ConjureFieldDefinition('northEast', scout_compute_api_LatLongPoint)
64146
- }
64147
-
64148
- __slots__: List[str] = ['_south_west', '_north_east']
64149
-
64150
- def __init__(self, north_east: "scout_compute_api_LatLongPoint", south_west: "scout_compute_api_LatLongPoint") -> None:
64151
- self._south_west = south_west
64152
- self._north_east = north_east
64153
-
64154
- @builtins.property
64155
- def south_west(self) -> "scout_compute_api_LatLongPoint":
64156
- return self._south_west
64157
-
64158
- @builtins.property
64159
- def north_east(self) -> "scout_compute_api_LatLongPoint":
64160
- return self._north_east
64161
-
64162
-
64163
- scout_compute_resolved_api_LatLongBounds.__name__ = "LatLongBounds"
64164
- scout_compute_resolved_api_LatLongBounds.__qualname__ = "LatLongBounds"
64165
- scout_compute_resolved_api_LatLongBounds.__module__ = "nominal_api.scout_compute_resolved_api"
64166
-
64167
-
64168
- class scout_compute_resolved_api_LatLongGeoNode(ConjureBeanType):
64169
-
64170
- @builtins.classmethod
64171
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
64172
- return {
64173
- 'latitude': ConjureFieldDefinition('latitude', scout_compute_resolved_api_NumericSeriesNode),
64174
- 'longitude': ConjureFieldDefinition('longitude', scout_compute_resolved_api_NumericSeriesNode),
64175
- 'bounds': ConjureFieldDefinition('bounds', OptionalTypeWrapper[scout_compute_resolved_api_LatLongBounds])
64176
- }
64177
-
64178
- __slots__: List[str] = ['_latitude', '_longitude', '_bounds']
64179
-
64180
- def __init__(self, latitude: "scout_compute_resolved_api_NumericSeriesNode", longitude: "scout_compute_resolved_api_NumericSeriesNode", bounds: Optional["scout_compute_resolved_api_LatLongBounds"] = None) -> None:
64181
- self._latitude = latitude
64182
- self._longitude = longitude
64183
- self._bounds = bounds
64184
-
64185
- @builtins.property
64186
- def latitude(self) -> "scout_compute_resolved_api_NumericSeriesNode":
64187
- return self._latitude
64188
-
64189
- @builtins.property
64190
- def longitude(self) -> "scout_compute_resolved_api_NumericSeriesNode":
64191
- return self._longitude
64192
-
64193
- @builtins.property
64194
- def bounds(self) -> Optional["scout_compute_resolved_api_LatLongBounds"]:
64195
- return self._bounds
64196
-
64197
-
64198
- scout_compute_resolved_api_LatLongGeoNode.__name__ = "LatLongGeoNode"
64199
- scout_compute_resolved_api_LatLongGeoNode.__qualname__ = "LatLongGeoNode"
64200
- scout_compute_resolved_api_LatLongGeoNode.__module__ = "nominal_api.scout_compute_resolved_api"
64201
-
64202
-
64203
63726
  class scout_compute_resolved_api_LiteralRange(ConjureBeanType):
64204
63727
 
64205
63728
  @builtins.classmethod
@@ -66999,7 +66522,6 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
66999
66522
  _frequency: Optional["scout_compute_resolved_api_FrequencyDomainNode"] = None
67000
66523
  _frequency_v2: Optional["scout_compute_resolved_api_FrequencyDomainNodeV2"] = None
67001
66524
  _histogram: Optional["scout_compute_resolved_api_HistogramNode"] = None
67002
- _geo: Optional["scout_compute_resolved_api_SummarizeGeoNode"] = None
67003
66525
  _curve: Optional["scout_compute_resolved_api_CurveFitNode"] = None
67004
66526
 
67005
66527
  @builtins.classmethod
@@ -67013,7 +66535,6 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
67013
66535
  'frequency': ConjureFieldDefinition('frequency', scout_compute_resolved_api_FrequencyDomainNode),
67014
66536
  'frequency_v2': ConjureFieldDefinition('frequencyV2', scout_compute_resolved_api_FrequencyDomainNodeV2),
67015
66537
  'histogram': ConjureFieldDefinition('histogram', scout_compute_resolved_api_HistogramNode),
67016
- 'geo': ConjureFieldDefinition('geo', scout_compute_resolved_api_SummarizeGeoNode),
67017
66538
  'curve': ConjureFieldDefinition('curve', scout_compute_resolved_api_CurveFitNode)
67018
66539
  }
67019
66540
 
@@ -67027,12 +66548,11 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
67027
66548
  frequency: Optional["scout_compute_resolved_api_FrequencyDomainNode"] = None,
67028
66549
  frequency_v2: Optional["scout_compute_resolved_api_FrequencyDomainNodeV2"] = None,
67029
66550
  histogram: Optional["scout_compute_resolved_api_HistogramNode"] = None,
67030
- geo: Optional["scout_compute_resolved_api_SummarizeGeoNode"] = None,
67031
66551
  curve: Optional["scout_compute_resolved_api_CurveFitNode"] = None,
67032
66552
  type_of_union: Optional[str] = None
67033
66553
  ) -> None:
67034
66554
  if type_of_union is None:
67035
- if (ranges is not None) + (series is not None) + (value is not None) + (cartesian is not None) + (cartesian3d is not None) + (frequency is not None) + (frequency_v2 is not None) + (histogram is not None) + (geo is not None) + (curve is not None) != 1:
66555
+ if (ranges is not None) + (series is not None) + (value is not None) + (cartesian is not None) + (cartesian3d is not None) + (frequency is not None) + (frequency_v2 is not None) + (histogram is not None) + (curve is not None) != 1:
67036
66556
  raise ValueError('a union must contain a single member')
67037
66557
 
67038
66558
  if ranges is not None:
@@ -67059,9 +66579,6 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
67059
66579
  if histogram is not None:
67060
66580
  self._histogram = histogram
67061
66581
  self._type = 'histogram'
67062
- if geo is not None:
67063
- self._geo = geo
67064
- self._type = 'geo'
67065
66582
  if curve is not None:
67066
66583
  self._curve = curve
67067
66584
  self._type = 'curve'
@@ -67106,11 +66623,6 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
67106
66623
  raise ValueError('a union value must not be None')
67107
66624
  self._histogram = histogram
67108
66625
  self._type = 'histogram'
67109
- elif type_of_union == 'geo':
67110
- if geo is None:
67111
- raise ValueError('a union value must not be None')
67112
- self._geo = geo
67113
- self._type = 'geo'
67114
66626
  elif type_of_union == 'curve':
67115
66627
  if curve is None:
67116
66628
  raise ValueError('a union value must not be None')
@@ -67149,10 +66661,6 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
67149
66661
  def histogram(self) -> Optional["scout_compute_resolved_api_HistogramNode"]:
67150
66662
  return self._histogram
67151
66663
 
67152
- @builtins.property
67153
- def geo(self) -> Optional["scout_compute_resolved_api_SummarizeGeoNode"]:
67154
- return self._geo
67155
-
67156
66664
  @builtins.property
67157
66665
  def curve(self) -> Optional["scout_compute_resolved_api_CurveFitNode"]:
67158
66666
  return self._curve
@@ -67176,8 +66684,6 @@ class scout_compute_resolved_api_ResolvedNode(ConjureUnionType):
67176
66684
  return visitor._frequency_v2(self.frequency_v2)
67177
66685
  if self._type == 'histogram' and self.histogram is not None:
67178
66686
  return visitor._histogram(self.histogram)
67179
- if self._type == 'geo' and self.geo is not None:
67180
- return visitor._geo(self.geo)
67181
66687
  if self._type == 'curve' and self.curve is not None:
67182
66688
  return visitor._curve(self.curve)
67183
66689
 
@@ -67221,10 +66727,6 @@ class scout_compute_resolved_api_ResolvedNodeVisitor:
67221
66727
  def _histogram(self, histogram: "scout_compute_resolved_api_HistogramNode") -> Any:
67222
66728
  pass
67223
66729
 
67224
- @abstractmethod
67225
- def _geo(self, geo: "scout_compute_resolved_api_SummarizeGeoNode") -> Any:
67226
- pass
67227
-
67228
66730
  @abstractmethod
67229
66731
  def _curve(self, curve: "scout_compute_resolved_api_CurveFitNode") -> Any:
67230
66732
  pass
@@ -68433,35 +67935,6 @@ scout_compute_resolved_api_SummarizeCartesianNode.__qualname__ = "SummarizeCarte
68433
67935
  scout_compute_resolved_api_SummarizeCartesianNode.__module__ = "nominal_api.scout_compute_resolved_api"
68434
67936
 
68435
67937
 
68436
- class scout_compute_resolved_api_SummarizeGeoNode(ConjureBeanType):
68437
-
68438
- @builtins.classmethod
68439
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
68440
- return {
68441
- 'input': ConjureFieldDefinition('input', scout_compute_resolved_api_GeoNode),
68442
- 'summary_strategy': ConjureFieldDefinition('summaryStrategy', scout_compute_resolved_api_GeoNodeSummaryStrategy)
68443
- }
68444
-
68445
- __slots__: List[str] = ['_input', '_summary_strategy']
68446
-
68447
- def __init__(self, input: "scout_compute_resolved_api_GeoNode", summary_strategy: "scout_compute_resolved_api_GeoNodeSummaryStrategy") -> None:
68448
- self._input = input
68449
- self._summary_strategy = summary_strategy
68450
-
68451
- @builtins.property
68452
- def input(self) -> "scout_compute_resolved_api_GeoNode":
68453
- return self._input
68454
-
68455
- @builtins.property
68456
- def summary_strategy(self) -> "scout_compute_resolved_api_GeoNodeSummaryStrategy":
68457
- return self._summary_strategy
68458
-
68459
-
68460
- scout_compute_resolved_api_SummarizeGeoNode.__name__ = "SummarizeGeoNode"
68461
- scout_compute_resolved_api_SummarizeGeoNode.__qualname__ = "SummarizeGeoNode"
68462
- scout_compute_resolved_api_SummarizeGeoNode.__module__ = "nominal_api.scout_compute_resolved_api"
68463
-
68464
-
68465
67938
  class scout_compute_resolved_api_SummarizeRangesNode(ConjureBeanType):
68466
67939
 
68467
67940
  @builtins.classmethod
@@ -75297,6 +74770,42 @@ Nominal connections which have their tags automatically indexed in the underlyin
75297
74770
  _decoder = ConjureDecoder()
75298
74771
  return _decoder.decode(_response.json(), List[scout_datasource_connection_api_Connection], self._return_none_for_unknown_union_types)
75299
74772
 
74773
+ def list_connections_v2(self, auth_header: str, workspaces: List[str] = None, include_archived: Optional[bool] = None, next_page_token: Optional[str] = None, page_size: Optional[int] = None) -> "scout_datasource_connection_api_ListConnectionsResponse":
74774
+ """Lists connections with pagination. Returns connections ordered by creation time descending.
74775
+ """
74776
+ workspaces = workspaces if workspaces is not None else []
74777
+ _conjure_encoder = ConjureEncoder()
74778
+
74779
+ _headers: Dict[str, Any] = {
74780
+ 'Accept': 'application/json',
74781
+ 'Authorization': auth_header,
74782
+ }
74783
+
74784
+ _params: Dict[str, Any] = {
74785
+ 'includeArchived': _conjure_encoder.default(include_archived),
74786
+ 'workspaces': _conjure_encoder.default(workspaces),
74787
+ 'pageSize': _conjure_encoder.default(page_size),
74788
+ 'nextPageToken': _conjure_encoder.default(next_page_token),
74789
+ }
74790
+
74791
+ _path_params: Dict[str, str] = {
74792
+ }
74793
+
74794
+ _json: Any = None
74795
+
74796
+ _path = '/data-source/connection/v2/connections'
74797
+ _path = _path.format(**_path_params)
74798
+
74799
+ _response: Response = self._request(
74800
+ 'GET',
74801
+ self._uri + _path,
74802
+ params=_params,
74803
+ headers=_headers,
74804
+ json=_json)
74805
+
74806
+ _decoder = ConjureDecoder()
74807
+ return _decoder.decode(_response.json(), scout_datasource_connection_api_ListConnectionsResponse, self._return_none_for_unknown_union_types)
74808
+
75300
74809
  def archive_connection(self, auth_header: str, rid: str) -> None:
75301
74810
  """Archives a connection, which simply tags the connection for a client to filter.
75302
74811
  """
@@ -76672,6 +76181,35 @@ scout_datasource_connection_api_LimitsConfig.__qualname__ = "LimitsConfig"
76672
76181
  scout_datasource_connection_api_LimitsConfig.__module__ = "nominal_api.scout_datasource_connection_api"
76673
76182
 
76674
76183
 
76184
+ class scout_datasource_connection_api_ListConnectionsResponse(ConjureBeanType):
76185
+
76186
+ @builtins.classmethod
76187
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
76188
+ return {
76189
+ 'connections': ConjureFieldDefinition('connections', List[scout_datasource_connection_api_Connection]),
76190
+ 'next_page_token': ConjureFieldDefinition('nextPageToken', OptionalTypeWrapper[api_Token])
76191
+ }
76192
+
76193
+ __slots__: List[str] = ['_connections', '_next_page_token']
76194
+
76195
+ def __init__(self, connections: List["scout_datasource_connection_api_Connection"], next_page_token: Optional[str] = None) -> None:
76196
+ self._connections = connections
76197
+ self._next_page_token = next_page_token
76198
+
76199
+ @builtins.property
76200
+ def connections(self) -> List["scout_datasource_connection_api_Connection"]:
76201
+ return self._connections
76202
+
76203
+ @builtins.property
76204
+ def next_page_token(self) -> Optional[str]:
76205
+ return self._next_page_token
76206
+
76207
+
76208
+ scout_datasource_connection_api_ListConnectionsResponse.__name__ = "ListConnectionsResponse"
76209
+ scout_datasource_connection_api_ListConnectionsResponse.__qualname__ = "ListConnectionsResponse"
76210
+ scout_datasource_connection_api_ListConnectionsResponse.__module__ = "nominal_api.scout_datasource_connection_api"
76211
+
76212
+
76675
76213
  class scout_datasource_connection_api_NominalChannelNameComponent(ConjureUnionType):
76676
76214
  _channel: Optional["api_Empty"] = None
76677
76215
  _value_of_tag_with_name: Optional[str] = None
@@ -78190,25 +77728,150 @@ scout_favorites_api_SetFavoritesListRequest.__qualname__ = "SetFavoritesListRequ
78190
77728
  scout_favorites_api_SetFavoritesListRequest.__module__ = "nominal_api.scout_favorites_api"
78191
77729
 
78192
77730
 
77731
+ class scout_integrations_api_AlertMessageFields(ConjureBeanType):
77732
+
77733
+ @builtins.classmethod
77734
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
77735
+ return {
77736
+ 'asset_title': ConjureFieldDefinition('assetTitle', str),
77737
+ 'check_title': ConjureFieldDefinition('checkTitle', str),
77738
+ 'check_description': ConjureFieldDefinition('checkDescription', str),
77739
+ 'checklist_title': ConjureFieldDefinition('checklistTitle', str),
77740
+ 'asset_rid': ConjureFieldDefinition('assetRid', scout_rids_api_AssetRid),
77741
+ 'check_lineage_rid': ConjureFieldDefinition('checkLineageRid', scout_rids_api_CheckLineageRid),
77742
+ 'workbook_url': ConjureFieldDefinition('workbookUrl', OptionalTypeWrapper[str]),
77743
+ 'alert_url': ConjureFieldDefinition('alertUrl', OptionalTypeWrapper[str]),
77744
+ 'event_type': ConjureFieldDefinition('eventType', event_EventType),
77745
+ 'priority': ConjureFieldDefinition('priority', scout_api_Priority),
77746
+ 'labels': ConjureFieldDefinition('labels', List[str]),
77747
+ 'alert_type': ConjureFieldDefinition('alertType', scout_integrations_api_AlertType)
77748
+ }
77749
+
77750
+ __slots__: List[str] = ['_asset_title', '_check_title', '_check_description', '_checklist_title', '_asset_rid', '_check_lineage_rid', '_workbook_url', '_alert_url', '_event_type', '_priority', '_labels', '_alert_type']
77751
+
77752
+ def __init__(self, alert_type: "scout_integrations_api_AlertType", asset_rid: str, asset_title: str, check_description: str, check_lineage_rid: str, check_title: str, checklist_title: str, event_type: "event_EventType", labels: List[str], priority: "scout_api_Priority", alert_url: Optional[str] = None, workbook_url: Optional[str] = None) -> None:
77753
+ self._asset_title = asset_title
77754
+ self._check_title = check_title
77755
+ self._check_description = check_description
77756
+ self._checklist_title = checklist_title
77757
+ self._asset_rid = asset_rid
77758
+ self._check_lineage_rid = check_lineage_rid
77759
+ self._workbook_url = workbook_url
77760
+ self._alert_url = alert_url
77761
+ self._event_type = event_type
77762
+ self._priority = priority
77763
+ self._labels = labels
77764
+ self._alert_type = alert_type
77765
+
77766
+ @builtins.property
77767
+ def asset_title(self) -> str:
77768
+ return self._asset_title
77769
+
77770
+ @builtins.property
77771
+ def check_title(self) -> str:
77772
+ return self._check_title
77773
+
77774
+ @builtins.property
77775
+ def check_description(self) -> str:
77776
+ return self._check_description
77777
+
77778
+ @builtins.property
77779
+ def checklist_title(self) -> str:
77780
+ return self._checklist_title
77781
+
77782
+ @builtins.property
77783
+ def asset_rid(self) -> str:
77784
+ return self._asset_rid
77785
+
77786
+ @builtins.property
77787
+ def check_lineage_rid(self) -> str:
77788
+ return self._check_lineage_rid
77789
+
77790
+ @builtins.property
77791
+ def workbook_url(self) -> Optional[str]:
77792
+ """Appended to the end of the message as a button (if supported) or as a text hyperlink.
77793
+ """
77794
+ return self._workbook_url
77795
+
77796
+ @builtins.property
77797
+ def alert_url(self) -> Optional[str]:
77798
+ """Appended to the end of the message as a button (if supported) or as a text hyperlink.
77799
+ """
77800
+ return self._alert_url
77801
+
77802
+ @builtins.property
77803
+ def event_type(self) -> "event_EventType":
77804
+ """Will be prefixed in title and indicated by an icon.
77805
+ """
77806
+ return self._event_type
77807
+
77808
+ @builtins.property
77809
+ def priority(self) -> "scout_api_Priority":
77810
+ return self._priority
77811
+
77812
+ @builtins.property
77813
+ def labels(self) -> List[str]:
77814
+ """Currently exposed as 'tags' on the frontend to match Opsgenie naming. Used by some integrations to filter/route messages.
77815
+ """
77816
+ return self._labels
77817
+
77818
+ @builtins.property
77819
+ def alert_type(self) -> "scout_integrations_api_AlertType":
77820
+ """Determines execution status of the alert, between success, failure, and execution error.
77821
+ """
77822
+ return self._alert_type
77823
+
77824
+
77825
+ scout_integrations_api_AlertMessageFields.__name__ = "AlertMessageFields"
77826
+ scout_integrations_api_AlertMessageFields.__qualname__ = "AlertMessageFields"
77827
+ scout_integrations_api_AlertMessageFields.__module__ = "nominal_api.scout_integrations_api"
77828
+
77829
+
77830
+ class scout_integrations_api_AlertType(ConjureEnumType):
77831
+
77832
+ INVALID = 'INVALID'
77833
+ '''INVALID'''
77834
+ FAILURE = 'FAILURE'
77835
+ '''FAILURE'''
77836
+ RECOVERY = 'RECOVERY'
77837
+ '''RECOVERY'''
77838
+ UNKNOWN = 'UNKNOWN'
77839
+ '''UNKNOWN'''
77840
+
77841
+ def __reduce_ex__(self, proto):
77842
+ return self.__class__, (self.name,)
77843
+
77844
+
77845
+ scout_integrations_api_AlertType.__name__ = "AlertType"
77846
+ scout_integrations_api_AlertType.__qualname__ = "AlertType"
77847
+ scout_integrations_api_AlertType.__module__ = "nominal_api.scout_integrations_api"
77848
+
77849
+
78193
77850
  class scout_integrations_api_CreateIntegrationDetails(ConjureUnionType):
78194
77851
  _create_simple_webhook_details: Optional["scout_integrations_api_CreateSimpleWebhookDetails"] = None
78195
77852
  _create_opsgenie_integration_details: Optional["scout_integrations_api_CreateOpsgenieIntegrationDetails"] = None
77853
+ _create_teams_webhook_integration_details: Optional["scout_integrations_api_CreateTeamsWebhookIntegrationDetails"] = None
77854
+ _create_pager_duty_integration_details: Optional["scout_integrations_api_CreatePagerDutyIntegrationDetails"] = None
78196
77855
 
78197
77856
  @builtins.classmethod
78198
77857
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
78199
77858
  return {
78200
77859
  'create_simple_webhook_details': ConjureFieldDefinition('createSimpleWebhookDetails', scout_integrations_api_CreateSimpleWebhookDetails),
78201
- 'create_opsgenie_integration_details': ConjureFieldDefinition('createOpsgenieIntegrationDetails', scout_integrations_api_CreateOpsgenieIntegrationDetails)
77860
+ 'create_opsgenie_integration_details': ConjureFieldDefinition('createOpsgenieIntegrationDetails', scout_integrations_api_CreateOpsgenieIntegrationDetails),
77861
+ 'create_teams_webhook_integration_details': ConjureFieldDefinition('createTeamsWebhookIntegrationDetails', scout_integrations_api_CreateTeamsWebhookIntegrationDetails),
77862
+ 'create_pager_duty_integration_details': ConjureFieldDefinition('createPagerDutyIntegrationDetails', scout_integrations_api_CreatePagerDutyIntegrationDetails)
78202
77863
  }
78203
77864
 
78204
77865
  def __init__(
78205
77866
  self,
78206
77867
  create_simple_webhook_details: Optional["scout_integrations_api_CreateSimpleWebhookDetails"] = None,
78207
77868
  create_opsgenie_integration_details: Optional["scout_integrations_api_CreateOpsgenieIntegrationDetails"] = None,
77869
+ create_teams_webhook_integration_details: Optional["scout_integrations_api_CreateTeamsWebhookIntegrationDetails"] = None,
77870
+ create_pager_duty_integration_details: Optional["scout_integrations_api_CreatePagerDutyIntegrationDetails"] = None,
78208
77871
  type_of_union: Optional[str] = None
78209
77872
  ) -> None:
78210
77873
  if type_of_union is None:
78211
- if (create_simple_webhook_details is not None) + (create_opsgenie_integration_details is not None) != 1:
77874
+ if (create_simple_webhook_details is not None) + (create_opsgenie_integration_details is not None) + (create_teams_webhook_integration_details is not None) + (create_pager_duty_integration_details is not None) != 1:
78212
77875
  raise ValueError('a union must contain a single member')
78213
77876
 
78214
77877
  if create_simple_webhook_details is not None:
@@ -78217,6 +77880,12 @@ class scout_integrations_api_CreateIntegrationDetails(ConjureUnionType):
78217
77880
  if create_opsgenie_integration_details is not None:
78218
77881
  self._create_opsgenie_integration_details = create_opsgenie_integration_details
78219
77882
  self._type = 'createOpsgenieIntegrationDetails'
77883
+ if create_teams_webhook_integration_details is not None:
77884
+ self._create_teams_webhook_integration_details = create_teams_webhook_integration_details
77885
+ self._type = 'createTeamsWebhookIntegrationDetails'
77886
+ if create_pager_duty_integration_details is not None:
77887
+ self._create_pager_duty_integration_details = create_pager_duty_integration_details
77888
+ self._type = 'createPagerDutyIntegrationDetails'
78220
77889
 
78221
77890
  elif type_of_union == 'createSimpleWebhookDetails':
78222
77891
  if create_simple_webhook_details is None:
@@ -78228,6 +77897,16 @@ class scout_integrations_api_CreateIntegrationDetails(ConjureUnionType):
78228
77897
  raise ValueError('a union value must not be None')
78229
77898
  self._create_opsgenie_integration_details = create_opsgenie_integration_details
78230
77899
  self._type = 'createOpsgenieIntegrationDetails'
77900
+ elif type_of_union == 'createTeamsWebhookIntegrationDetails':
77901
+ if create_teams_webhook_integration_details is None:
77902
+ raise ValueError('a union value must not be None')
77903
+ self._create_teams_webhook_integration_details = create_teams_webhook_integration_details
77904
+ self._type = 'createTeamsWebhookIntegrationDetails'
77905
+ elif type_of_union == 'createPagerDutyIntegrationDetails':
77906
+ if create_pager_duty_integration_details is None:
77907
+ raise ValueError('a union value must not be None')
77908
+ self._create_pager_duty_integration_details = create_pager_duty_integration_details
77909
+ self._type = 'createPagerDutyIntegrationDetails'
78231
77910
 
78232
77911
  @builtins.property
78233
77912
  def create_simple_webhook_details(self) -> Optional["scout_integrations_api_CreateSimpleWebhookDetails"]:
@@ -78237,6 +77916,14 @@ class scout_integrations_api_CreateIntegrationDetails(ConjureUnionType):
78237
77916
  def create_opsgenie_integration_details(self) -> Optional["scout_integrations_api_CreateOpsgenieIntegrationDetails"]:
78238
77917
  return self._create_opsgenie_integration_details
78239
77918
 
77919
+ @builtins.property
77920
+ def create_teams_webhook_integration_details(self) -> Optional["scout_integrations_api_CreateTeamsWebhookIntegrationDetails"]:
77921
+ return self._create_teams_webhook_integration_details
77922
+
77923
+ @builtins.property
77924
+ def create_pager_duty_integration_details(self) -> Optional["scout_integrations_api_CreatePagerDutyIntegrationDetails"]:
77925
+ return self._create_pager_duty_integration_details
77926
+
78240
77927
  def accept(self, visitor) -> Any:
78241
77928
  if not isinstance(visitor, scout_integrations_api_CreateIntegrationDetailsVisitor):
78242
77929
  raise ValueError('{} is not an instance of scout_integrations_api_CreateIntegrationDetailsVisitor'.format(visitor.__class__.__name__))
@@ -78244,6 +77931,10 @@ class scout_integrations_api_CreateIntegrationDetails(ConjureUnionType):
78244
77931
  return visitor._create_simple_webhook_details(self.create_simple_webhook_details)
78245
77932
  if self._type == 'createOpsgenieIntegrationDetails' and self.create_opsgenie_integration_details is not None:
78246
77933
  return visitor._create_opsgenie_integration_details(self.create_opsgenie_integration_details)
77934
+ if self._type == 'createTeamsWebhookIntegrationDetails' and self.create_teams_webhook_integration_details is not None:
77935
+ return visitor._create_teams_webhook_integration_details(self.create_teams_webhook_integration_details)
77936
+ if self._type == 'createPagerDutyIntegrationDetails' and self.create_pager_duty_integration_details is not None:
77937
+ return visitor._create_pager_duty_integration_details(self.create_pager_duty_integration_details)
78247
77938
 
78248
77939
 
78249
77940
  scout_integrations_api_CreateIntegrationDetails.__name__ = "CreateIntegrationDetails"
@@ -78261,6 +77952,14 @@ class scout_integrations_api_CreateIntegrationDetailsVisitor:
78261
77952
  def _create_opsgenie_integration_details(self, create_opsgenie_integration_details: "scout_integrations_api_CreateOpsgenieIntegrationDetails") -> Any:
78262
77953
  pass
78263
77954
 
77955
+ @abstractmethod
77956
+ def _create_teams_webhook_integration_details(self, create_teams_webhook_integration_details: "scout_integrations_api_CreateTeamsWebhookIntegrationDetails") -> Any:
77957
+ pass
77958
+
77959
+ @abstractmethod
77960
+ def _create_pager_duty_integration_details(self, create_pager_duty_integration_details: "scout_integrations_api_CreatePagerDutyIntegrationDetails") -> Any:
77961
+ pass
77962
+
78264
77963
 
78265
77964
  scout_integrations_api_CreateIntegrationDetailsVisitor.__name__ = "CreateIntegrationDetailsVisitor"
78266
77965
  scout_integrations_api_CreateIntegrationDetailsVisitor.__qualname__ = "CreateIntegrationDetailsVisitor"
@@ -78340,6 +78039,29 @@ scout_integrations_api_CreateOpsgenieIntegrationDetails.__qualname__ = "CreateOp
78340
78039
  scout_integrations_api_CreateOpsgenieIntegrationDetails.__module__ = "nominal_api.scout_integrations_api"
78341
78040
 
78342
78041
 
78042
+ class scout_integrations_api_CreatePagerDutyIntegrationDetails(ConjureBeanType):
78043
+
78044
+ @builtins.classmethod
78045
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
78046
+ return {
78047
+ 'routing_key': ConjureFieldDefinition('routingKey', str)
78048
+ }
78049
+
78050
+ __slots__: List[str] = ['_routing_key']
78051
+
78052
+ def __init__(self, routing_key: str) -> None:
78053
+ self._routing_key = routing_key
78054
+
78055
+ @builtins.property
78056
+ def routing_key(self) -> str:
78057
+ return self._routing_key
78058
+
78059
+
78060
+ scout_integrations_api_CreatePagerDutyIntegrationDetails.__name__ = "CreatePagerDutyIntegrationDetails"
78061
+ scout_integrations_api_CreatePagerDutyIntegrationDetails.__qualname__ = "CreatePagerDutyIntegrationDetails"
78062
+ scout_integrations_api_CreatePagerDutyIntegrationDetails.__module__ = "nominal_api.scout_integrations_api"
78063
+
78064
+
78343
78065
  class scout_integrations_api_CreateSimpleWebhookDetails(ConjureBeanType):
78344
78066
 
78345
78067
  @builtins.classmethod
@@ -78363,6 +78085,29 @@ scout_integrations_api_CreateSimpleWebhookDetails.__qualname__ = "CreateSimpleWe
78363
78085
  scout_integrations_api_CreateSimpleWebhookDetails.__module__ = "nominal_api.scout_integrations_api"
78364
78086
 
78365
78087
 
78088
+ class scout_integrations_api_CreateTeamsWebhookIntegrationDetails(ConjureBeanType):
78089
+
78090
+ @builtins.classmethod
78091
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
78092
+ return {
78093
+ 'webhook': ConjureFieldDefinition('webhook', str)
78094
+ }
78095
+
78096
+ __slots__: List[str] = ['_webhook']
78097
+
78098
+ def __init__(self, webhook: str) -> None:
78099
+ self._webhook = webhook
78100
+
78101
+ @builtins.property
78102
+ def webhook(self) -> str:
78103
+ return self._webhook
78104
+
78105
+
78106
+ scout_integrations_api_CreateTeamsWebhookIntegrationDetails.__name__ = "CreateTeamsWebhookIntegrationDetails"
78107
+ scout_integrations_api_CreateTeamsWebhookIntegrationDetails.__qualname__ = "CreateTeamsWebhookIntegrationDetails"
78108
+ scout_integrations_api_CreateTeamsWebhookIntegrationDetails.__module__ = "nominal_api.scout_integrations_api"
78109
+
78110
+
78366
78111
  class scout_integrations_api_GenerateSlackWebhookResponse(ConjureBeanType):
78367
78112
 
78368
78113
  @builtins.classmethod
@@ -78451,13 +78196,17 @@ class scout_integrations_api_IntegrationDetails(ConjureUnionType):
78451
78196
  _slack_webhook_integration: Optional["scout_integrations_api_SlackWebhookIntegration"] = None
78452
78197
  _opsgenie_integration: Optional["scout_integrations_api_OpsgenieIntegration"] = None
78453
78198
  _simple_webhook_integration: Optional["scout_integrations_api_SimpleWebhookIntegration"] = None
78199
+ _teams_webhook_integration: Optional["scout_integrations_api_TeamsWebhookIntegration"] = None
78200
+ _pager_duty_integration: Optional["scout_integrations_api_PagerDutyIntegration"] = None
78454
78201
 
78455
78202
  @builtins.classmethod
78456
78203
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
78457
78204
  return {
78458
78205
  'slack_webhook_integration': ConjureFieldDefinition('slackWebhookIntegration', scout_integrations_api_SlackWebhookIntegration),
78459
78206
  'opsgenie_integration': ConjureFieldDefinition('opsgenieIntegration', scout_integrations_api_OpsgenieIntegration),
78460
- 'simple_webhook_integration': ConjureFieldDefinition('simpleWebhookIntegration', scout_integrations_api_SimpleWebhookIntegration)
78207
+ 'simple_webhook_integration': ConjureFieldDefinition('simpleWebhookIntegration', scout_integrations_api_SimpleWebhookIntegration),
78208
+ 'teams_webhook_integration': ConjureFieldDefinition('teamsWebhookIntegration', scout_integrations_api_TeamsWebhookIntegration),
78209
+ 'pager_duty_integration': ConjureFieldDefinition('pagerDutyIntegration', scout_integrations_api_PagerDutyIntegration)
78461
78210
  }
78462
78211
 
78463
78212
  def __init__(
@@ -78465,10 +78214,12 @@ class scout_integrations_api_IntegrationDetails(ConjureUnionType):
78465
78214
  slack_webhook_integration: Optional["scout_integrations_api_SlackWebhookIntegration"] = None,
78466
78215
  opsgenie_integration: Optional["scout_integrations_api_OpsgenieIntegration"] = None,
78467
78216
  simple_webhook_integration: Optional["scout_integrations_api_SimpleWebhookIntegration"] = None,
78217
+ teams_webhook_integration: Optional["scout_integrations_api_TeamsWebhookIntegration"] = None,
78218
+ pager_duty_integration: Optional["scout_integrations_api_PagerDutyIntegration"] = None,
78468
78219
  type_of_union: Optional[str] = None
78469
78220
  ) -> None:
78470
78221
  if type_of_union is None:
78471
- if (slack_webhook_integration is not None) + (opsgenie_integration is not None) + (simple_webhook_integration is not None) != 1:
78222
+ if (slack_webhook_integration is not None) + (opsgenie_integration is not None) + (simple_webhook_integration is not None) + (teams_webhook_integration is not None) + (pager_duty_integration is not None) != 1:
78472
78223
  raise ValueError('a union must contain a single member')
78473
78224
 
78474
78225
  if slack_webhook_integration is not None:
@@ -78480,6 +78231,12 @@ class scout_integrations_api_IntegrationDetails(ConjureUnionType):
78480
78231
  if simple_webhook_integration is not None:
78481
78232
  self._simple_webhook_integration = simple_webhook_integration
78482
78233
  self._type = 'simpleWebhookIntegration'
78234
+ if teams_webhook_integration is not None:
78235
+ self._teams_webhook_integration = teams_webhook_integration
78236
+ self._type = 'teamsWebhookIntegration'
78237
+ if pager_duty_integration is not None:
78238
+ self._pager_duty_integration = pager_duty_integration
78239
+ self._type = 'pagerDutyIntegration'
78483
78240
 
78484
78241
  elif type_of_union == 'slackWebhookIntegration':
78485
78242
  if slack_webhook_integration is None:
@@ -78496,6 +78253,16 @@ class scout_integrations_api_IntegrationDetails(ConjureUnionType):
78496
78253
  raise ValueError('a union value must not be None')
78497
78254
  self._simple_webhook_integration = simple_webhook_integration
78498
78255
  self._type = 'simpleWebhookIntegration'
78256
+ elif type_of_union == 'teamsWebhookIntegration':
78257
+ if teams_webhook_integration is None:
78258
+ raise ValueError('a union value must not be None')
78259
+ self._teams_webhook_integration = teams_webhook_integration
78260
+ self._type = 'teamsWebhookIntegration'
78261
+ elif type_of_union == 'pagerDutyIntegration':
78262
+ if pager_duty_integration is None:
78263
+ raise ValueError('a union value must not be None')
78264
+ self._pager_duty_integration = pager_duty_integration
78265
+ self._type = 'pagerDutyIntegration'
78499
78266
 
78500
78267
  @builtins.property
78501
78268
  def slack_webhook_integration(self) -> Optional["scout_integrations_api_SlackWebhookIntegration"]:
@@ -78509,6 +78276,14 @@ class scout_integrations_api_IntegrationDetails(ConjureUnionType):
78509
78276
  def simple_webhook_integration(self) -> Optional["scout_integrations_api_SimpleWebhookIntegration"]:
78510
78277
  return self._simple_webhook_integration
78511
78278
 
78279
+ @builtins.property
78280
+ def teams_webhook_integration(self) -> Optional["scout_integrations_api_TeamsWebhookIntegration"]:
78281
+ return self._teams_webhook_integration
78282
+
78283
+ @builtins.property
78284
+ def pager_duty_integration(self) -> Optional["scout_integrations_api_PagerDutyIntegration"]:
78285
+ return self._pager_duty_integration
78286
+
78512
78287
  def accept(self, visitor) -> Any:
78513
78288
  if not isinstance(visitor, scout_integrations_api_IntegrationDetailsVisitor):
78514
78289
  raise ValueError('{} is not an instance of scout_integrations_api_IntegrationDetailsVisitor'.format(visitor.__class__.__name__))
@@ -78518,6 +78293,10 @@ class scout_integrations_api_IntegrationDetails(ConjureUnionType):
78518
78293
  return visitor._opsgenie_integration(self.opsgenie_integration)
78519
78294
  if self._type == 'simpleWebhookIntegration' and self.simple_webhook_integration is not None:
78520
78295
  return visitor._simple_webhook_integration(self.simple_webhook_integration)
78296
+ if self._type == 'teamsWebhookIntegration' and self.teams_webhook_integration is not None:
78297
+ return visitor._teams_webhook_integration(self.teams_webhook_integration)
78298
+ if self._type == 'pagerDutyIntegration' and self.pager_duty_integration is not None:
78299
+ return visitor._pager_duty_integration(self.pager_duty_integration)
78521
78300
 
78522
78301
 
78523
78302
  scout_integrations_api_IntegrationDetails.__name__ = "IntegrationDetails"
@@ -78539,6 +78318,14 @@ class scout_integrations_api_IntegrationDetailsVisitor:
78539
78318
  def _simple_webhook_integration(self, simple_webhook_integration: "scout_integrations_api_SimpleWebhookIntegration") -> Any:
78540
78319
  pass
78541
78320
 
78321
+ @abstractmethod
78322
+ def _teams_webhook_integration(self, teams_webhook_integration: "scout_integrations_api_TeamsWebhookIntegration") -> Any:
78323
+ pass
78324
+
78325
+ @abstractmethod
78326
+ def _pager_duty_integration(self, pager_duty_integration: "scout_integrations_api_PagerDutyIntegration") -> Any:
78327
+ pass
78328
+
78542
78329
 
78543
78330
  scout_integrations_api_IntegrationDetailsVisitor.__name__ = "IntegrationDetailsVisitor"
78544
78331
  scout_integrations_api_IntegrationDetailsVisitor.__qualname__ = "IntegrationDetailsVisitor"
@@ -78846,6 +78633,112 @@ scout_integrations_api_IntegrationsService.__qualname__ = "IntegrationsService"
78846
78633
  scout_integrations_api_IntegrationsService.__module__ = "nominal_api.scout_integrations_api"
78847
78634
 
78848
78635
 
78636
+ class scout_integrations_api_InternalSendMessageRequest(ConjureBeanType):
78637
+
78638
+ @builtins.classmethod
78639
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
78640
+ return {
78641
+ 'integration_rid': ConjureFieldDefinition('integrationRid', scout_integrations_api_IntegrationRid),
78642
+ 'message': ConjureFieldDefinition('message', scout_integrations_api_MessageFields)
78643
+ }
78644
+
78645
+ __slots__: List[str] = ['_integration_rid', '_message']
78646
+
78647
+ def __init__(self, integration_rid: str, message: "scout_integrations_api_MessageFields") -> None:
78648
+ self._integration_rid = integration_rid
78649
+ self._message = message
78650
+
78651
+ @builtins.property
78652
+ def integration_rid(self) -> str:
78653
+ return self._integration_rid
78654
+
78655
+ @builtins.property
78656
+ def message(self) -> "scout_integrations_api_MessageFields":
78657
+ return self._message
78658
+
78659
+
78660
+ scout_integrations_api_InternalSendMessageRequest.__name__ = "InternalSendMessageRequest"
78661
+ scout_integrations_api_InternalSendMessageRequest.__qualname__ = "InternalSendMessageRequest"
78662
+ scout_integrations_api_InternalSendMessageRequest.__module__ = "nominal_api.scout_integrations_api"
78663
+
78664
+
78665
+ class scout_integrations_api_MessageFields(ConjureUnionType):
78666
+ _alert: Optional["scout_integrations_api_AlertMessageFields"] = None
78667
+ _resolution_error: Optional["scout_integrations_api_ResolutionFailureMessageFields"] = None
78668
+
78669
+ @builtins.classmethod
78670
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
78671
+ return {
78672
+ 'alert': ConjureFieldDefinition('alert', scout_integrations_api_AlertMessageFields),
78673
+ 'resolution_error': ConjureFieldDefinition('resolutionError', scout_integrations_api_ResolutionFailureMessageFields)
78674
+ }
78675
+
78676
+ def __init__(
78677
+ self,
78678
+ alert: Optional["scout_integrations_api_AlertMessageFields"] = None,
78679
+ resolution_error: Optional["scout_integrations_api_ResolutionFailureMessageFields"] = None,
78680
+ type_of_union: Optional[str] = None
78681
+ ) -> None:
78682
+ if type_of_union is None:
78683
+ if (alert is not None) + (resolution_error is not None) != 1:
78684
+ raise ValueError('a union must contain a single member')
78685
+
78686
+ if alert is not None:
78687
+ self._alert = alert
78688
+ self._type = 'alert'
78689
+ if resolution_error is not None:
78690
+ self._resolution_error = resolution_error
78691
+ self._type = 'resolutionError'
78692
+
78693
+ elif type_of_union == 'alert':
78694
+ if alert is None:
78695
+ raise ValueError('a union value must not be None')
78696
+ self._alert = alert
78697
+ self._type = 'alert'
78698
+ elif type_of_union == 'resolutionError':
78699
+ if resolution_error is None:
78700
+ raise ValueError('a union value must not be None')
78701
+ self._resolution_error = resolution_error
78702
+ self._type = 'resolutionError'
78703
+
78704
+ @builtins.property
78705
+ def alert(self) -> Optional["scout_integrations_api_AlertMessageFields"]:
78706
+ return self._alert
78707
+
78708
+ @builtins.property
78709
+ def resolution_error(self) -> Optional["scout_integrations_api_ResolutionFailureMessageFields"]:
78710
+ return self._resolution_error
78711
+
78712
+ def accept(self, visitor) -> Any:
78713
+ if not isinstance(visitor, scout_integrations_api_MessageFieldsVisitor):
78714
+ raise ValueError('{} is not an instance of scout_integrations_api_MessageFieldsVisitor'.format(visitor.__class__.__name__))
78715
+ if self._type == 'alert' and self.alert is not None:
78716
+ return visitor._alert(self.alert)
78717
+ if self._type == 'resolutionError' and self.resolution_error is not None:
78718
+ return visitor._resolution_error(self.resolution_error)
78719
+
78720
+
78721
+ scout_integrations_api_MessageFields.__name__ = "MessageFields"
78722
+ scout_integrations_api_MessageFields.__qualname__ = "MessageFields"
78723
+ scout_integrations_api_MessageFields.__module__ = "nominal_api.scout_integrations_api"
78724
+
78725
+
78726
+ class scout_integrations_api_MessageFieldsVisitor:
78727
+
78728
+ @abstractmethod
78729
+ def _alert(self, alert: "scout_integrations_api_AlertMessageFields") -> Any:
78730
+ pass
78731
+
78732
+ @abstractmethod
78733
+ def _resolution_error(self, resolution_error: "scout_integrations_api_ResolutionFailureMessageFields") -> Any:
78734
+ pass
78735
+
78736
+
78737
+ scout_integrations_api_MessageFieldsVisitor.__name__ = "MessageFieldsVisitor"
78738
+ scout_integrations_api_MessageFieldsVisitor.__qualname__ = "MessageFieldsVisitor"
78739
+ scout_integrations_api_MessageFieldsVisitor.__module__ = "nominal_api.scout_integrations_api"
78740
+
78741
+
78849
78742
  class scout_integrations_api_NotificationConfiguration(ConjureBeanType):
78850
78743
  """Configuration details to send notifications to a linked integration.
78851
78744
  """
@@ -78956,6 +78849,83 @@ scout_integrations_api_OpsgenieRegion.__qualname__ = "OpsgenieRegion"
78956
78849
  scout_integrations_api_OpsgenieRegion.__module__ = "nominal_api.scout_integrations_api"
78957
78850
 
78958
78851
 
78852
+ class scout_integrations_api_PagerDutyIntegration(ConjureBeanType):
78853
+
78854
+ @builtins.classmethod
78855
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
78856
+ return {
78857
+ }
78858
+
78859
+ __slots__: List[str] = []
78860
+
78861
+
78862
+
78863
+ scout_integrations_api_PagerDutyIntegration.__name__ = "PagerDutyIntegration"
78864
+ scout_integrations_api_PagerDutyIntegration.__qualname__ = "PagerDutyIntegration"
78865
+ scout_integrations_api_PagerDutyIntegration.__module__ = "nominal_api.scout_integrations_api"
78866
+
78867
+
78868
+ class scout_integrations_api_ResolutionFailureMessageFields(ConjureBeanType):
78869
+
78870
+ @builtins.classmethod
78871
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
78872
+ return {
78873
+ 'checklist_title': ConjureFieldDefinition('checklistTitle', str),
78874
+ 'asset_title': ConjureFieldDefinition('assetTitle', str),
78875
+ 'checklist_rid': ConjureFieldDefinition('checklistRid', scout_rids_api_ChecklistRid),
78876
+ 'asset_rid': ConjureFieldDefinition('assetRid', scout_rids_api_AssetRid),
78877
+ 'unresolved_checks': ConjureFieldDefinition('unresolvedChecks', int),
78878
+ 'total_checks': ConjureFieldDefinition('totalChecks', int),
78879
+ 'labels': ConjureFieldDefinition('labels', List[str])
78880
+ }
78881
+
78882
+ __slots__: List[str] = ['_checklist_title', '_asset_title', '_checklist_rid', '_asset_rid', '_unresolved_checks', '_total_checks', '_labels']
78883
+
78884
+ def __init__(self, asset_rid: str, asset_title: str, checklist_rid: str, checklist_title: str, labels: List[str], total_checks: int, unresolved_checks: int) -> None:
78885
+ self._checklist_title = checklist_title
78886
+ self._asset_title = asset_title
78887
+ self._checklist_rid = checklist_rid
78888
+ self._asset_rid = asset_rid
78889
+ self._unresolved_checks = unresolved_checks
78890
+ self._total_checks = total_checks
78891
+ self._labels = labels
78892
+
78893
+ @builtins.property
78894
+ def checklist_title(self) -> str:
78895
+ return self._checklist_title
78896
+
78897
+ @builtins.property
78898
+ def asset_title(self) -> str:
78899
+ return self._asset_title
78900
+
78901
+ @builtins.property
78902
+ def checklist_rid(self) -> str:
78903
+ return self._checklist_rid
78904
+
78905
+ @builtins.property
78906
+ def asset_rid(self) -> str:
78907
+ return self._asset_rid
78908
+
78909
+ @builtins.property
78910
+ def unresolved_checks(self) -> int:
78911
+ return self._unresolved_checks
78912
+
78913
+ @builtins.property
78914
+ def total_checks(self) -> int:
78915
+ return self._total_checks
78916
+
78917
+ @builtins.property
78918
+ def labels(self) -> List[str]:
78919
+ """Currently exposed as 'tags' on the frontend to match Opsgenie naming. Used by some integrations to filter/route messages.
78920
+ """
78921
+ return self._labels
78922
+
78923
+
78924
+ scout_integrations_api_ResolutionFailureMessageFields.__name__ = "ResolutionFailureMessageFields"
78925
+ scout_integrations_api_ResolutionFailureMessageFields.__qualname__ = "ResolutionFailureMessageFields"
78926
+ scout_integrations_api_ResolutionFailureMessageFields.__module__ = "nominal_api.scout_integrations_api"
78927
+
78928
+
78959
78929
  class scout_integrations_api_SendMessageRequest(ConjureBeanType):
78960
78930
 
78961
78931
  @builtins.classmethod
@@ -79090,25 +79060,47 @@ scout_integrations_api_SlackWebhookIntegration.__qualname__ = "SlackWebhookInteg
79090
79060
  scout_integrations_api_SlackWebhookIntegration.__module__ = "nominal_api.scout_integrations_api"
79091
79061
 
79092
79062
 
79063
+ class scout_integrations_api_TeamsWebhookIntegration(ConjureBeanType):
79064
+
79065
+ @builtins.classmethod
79066
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
79067
+ return {
79068
+ }
79069
+
79070
+ __slots__: List[str] = []
79071
+
79072
+
79073
+
79074
+ scout_integrations_api_TeamsWebhookIntegration.__name__ = "TeamsWebhookIntegration"
79075
+ scout_integrations_api_TeamsWebhookIntegration.__qualname__ = "TeamsWebhookIntegration"
79076
+ scout_integrations_api_TeamsWebhookIntegration.__module__ = "nominal_api.scout_integrations_api"
79077
+
79078
+
79093
79079
  class scout_integrations_api_UpdateIntegrationDetails(ConjureUnionType):
79094
79080
  _simple_webhook: Optional["scout_integrations_api_UpdateSimpleWebhookDetails"] = None
79095
79081
  _opsgenie_integration: Optional["scout_integrations_api_UpdateOpsgenieIntegrationDetails"] = None
79082
+ _teams_webhook: Optional["scout_integrations_api_UpdateTeamsWebhookIntegrationDetails"] = None
79083
+ _pager_duty: Optional["scout_integrations_api_UpdatePagerDutyIntegrationDetails"] = None
79096
79084
 
79097
79085
  @builtins.classmethod
79098
79086
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
79099
79087
  return {
79100
79088
  'simple_webhook': ConjureFieldDefinition('simpleWebhook', scout_integrations_api_UpdateSimpleWebhookDetails),
79101
- 'opsgenie_integration': ConjureFieldDefinition('opsgenieIntegration', scout_integrations_api_UpdateOpsgenieIntegrationDetails)
79089
+ 'opsgenie_integration': ConjureFieldDefinition('opsgenieIntegration', scout_integrations_api_UpdateOpsgenieIntegrationDetails),
79090
+ 'teams_webhook': ConjureFieldDefinition('teamsWebhook', scout_integrations_api_UpdateTeamsWebhookIntegrationDetails),
79091
+ 'pager_duty': ConjureFieldDefinition('pagerDuty', scout_integrations_api_UpdatePagerDutyIntegrationDetails)
79102
79092
  }
79103
79093
 
79104
79094
  def __init__(
79105
79095
  self,
79106
79096
  simple_webhook: Optional["scout_integrations_api_UpdateSimpleWebhookDetails"] = None,
79107
79097
  opsgenie_integration: Optional["scout_integrations_api_UpdateOpsgenieIntegrationDetails"] = None,
79098
+ teams_webhook: Optional["scout_integrations_api_UpdateTeamsWebhookIntegrationDetails"] = None,
79099
+ pager_duty: Optional["scout_integrations_api_UpdatePagerDutyIntegrationDetails"] = None,
79108
79100
  type_of_union: Optional[str] = None
79109
79101
  ) -> None:
79110
79102
  if type_of_union is None:
79111
- if (simple_webhook is not None) + (opsgenie_integration is not None) != 1:
79103
+ if (simple_webhook is not None) + (opsgenie_integration is not None) + (teams_webhook is not None) + (pager_duty is not None) != 1:
79112
79104
  raise ValueError('a union must contain a single member')
79113
79105
 
79114
79106
  if simple_webhook is not None:
@@ -79117,6 +79109,12 @@ class scout_integrations_api_UpdateIntegrationDetails(ConjureUnionType):
79117
79109
  if opsgenie_integration is not None:
79118
79110
  self._opsgenie_integration = opsgenie_integration
79119
79111
  self._type = 'opsgenieIntegration'
79112
+ if teams_webhook is not None:
79113
+ self._teams_webhook = teams_webhook
79114
+ self._type = 'teamsWebhook'
79115
+ if pager_duty is not None:
79116
+ self._pager_duty = pager_duty
79117
+ self._type = 'pagerDuty'
79120
79118
 
79121
79119
  elif type_of_union == 'simpleWebhook':
79122
79120
  if simple_webhook is None:
@@ -79128,6 +79126,16 @@ class scout_integrations_api_UpdateIntegrationDetails(ConjureUnionType):
79128
79126
  raise ValueError('a union value must not be None')
79129
79127
  self._opsgenie_integration = opsgenie_integration
79130
79128
  self._type = 'opsgenieIntegration'
79129
+ elif type_of_union == 'teamsWebhook':
79130
+ if teams_webhook is None:
79131
+ raise ValueError('a union value must not be None')
79132
+ self._teams_webhook = teams_webhook
79133
+ self._type = 'teamsWebhook'
79134
+ elif type_of_union == 'pagerDuty':
79135
+ if pager_duty is None:
79136
+ raise ValueError('a union value must not be None')
79137
+ self._pager_duty = pager_duty
79138
+ self._type = 'pagerDuty'
79131
79139
 
79132
79140
  @builtins.property
79133
79141
  def simple_webhook(self) -> Optional["scout_integrations_api_UpdateSimpleWebhookDetails"]:
@@ -79137,6 +79145,14 @@ class scout_integrations_api_UpdateIntegrationDetails(ConjureUnionType):
79137
79145
  def opsgenie_integration(self) -> Optional["scout_integrations_api_UpdateOpsgenieIntegrationDetails"]:
79138
79146
  return self._opsgenie_integration
79139
79147
 
79148
+ @builtins.property
79149
+ def teams_webhook(self) -> Optional["scout_integrations_api_UpdateTeamsWebhookIntegrationDetails"]:
79150
+ return self._teams_webhook
79151
+
79152
+ @builtins.property
79153
+ def pager_duty(self) -> Optional["scout_integrations_api_UpdatePagerDutyIntegrationDetails"]:
79154
+ return self._pager_duty
79155
+
79140
79156
  def accept(self, visitor) -> Any:
79141
79157
  if not isinstance(visitor, scout_integrations_api_UpdateIntegrationDetailsVisitor):
79142
79158
  raise ValueError('{} is not an instance of scout_integrations_api_UpdateIntegrationDetailsVisitor'.format(visitor.__class__.__name__))
@@ -79144,6 +79160,10 @@ class scout_integrations_api_UpdateIntegrationDetails(ConjureUnionType):
79144
79160
  return visitor._simple_webhook(self.simple_webhook)
79145
79161
  if self._type == 'opsgenieIntegration' and self.opsgenie_integration is not None:
79146
79162
  return visitor._opsgenie_integration(self.opsgenie_integration)
79163
+ if self._type == 'teamsWebhook' and self.teams_webhook is not None:
79164
+ return visitor._teams_webhook(self.teams_webhook)
79165
+ if self._type == 'pagerDuty' and self.pager_duty is not None:
79166
+ return visitor._pager_duty(self.pager_duty)
79147
79167
 
79148
79168
 
79149
79169
  scout_integrations_api_UpdateIntegrationDetails.__name__ = "UpdateIntegrationDetails"
@@ -79161,6 +79181,14 @@ class scout_integrations_api_UpdateIntegrationDetailsVisitor:
79161
79181
  def _opsgenie_integration(self, opsgenie_integration: "scout_integrations_api_UpdateOpsgenieIntegrationDetails") -> Any:
79162
79182
  pass
79163
79183
 
79184
+ @abstractmethod
79185
+ def _teams_webhook(self, teams_webhook: "scout_integrations_api_UpdateTeamsWebhookIntegrationDetails") -> Any:
79186
+ pass
79187
+
79188
+ @abstractmethod
79189
+ def _pager_duty(self, pager_duty: "scout_integrations_api_UpdatePagerDutyIntegrationDetails") -> Any:
79190
+ pass
79191
+
79164
79192
 
79165
79193
  scout_integrations_api_UpdateIntegrationDetailsVisitor.__name__ = "UpdateIntegrationDetailsVisitor"
79166
79194
  scout_integrations_api_UpdateIntegrationDetailsVisitor.__qualname__ = "UpdateIntegrationDetailsVisitor"
@@ -79251,6 +79279,29 @@ scout_integrations_api_UpdateOpsgenieIntegrationDetails.__qualname__ = "UpdateOp
79251
79279
  scout_integrations_api_UpdateOpsgenieIntegrationDetails.__module__ = "nominal_api.scout_integrations_api"
79252
79280
 
79253
79281
 
79282
+ class scout_integrations_api_UpdatePagerDutyIntegrationDetails(ConjureBeanType):
79283
+
79284
+ @builtins.classmethod
79285
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
79286
+ return {
79287
+ 'routing_key': ConjureFieldDefinition('routingKey', str)
79288
+ }
79289
+
79290
+ __slots__: List[str] = ['_routing_key']
79291
+
79292
+ def __init__(self, routing_key: str) -> None:
79293
+ self._routing_key = routing_key
79294
+
79295
+ @builtins.property
79296
+ def routing_key(self) -> str:
79297
+ return self._routing_key
79298
+
79299
+
79300
+ scout_integrations_api_UpdatePagerDutyIntegrationDetails.__name__ = "UpdatePagerDutyIntegrationDetails"
79301
+ scout_integrations_api_UpdatePagerDutyIntegrationDetails.__qualname__ = "UpdatePagerDutyIntegrationDetails"
79302
+ scout_integrations_api_UpdatePagerDutyIntegrationDetails.__module__ = "nominal_api.scout_integrations_api"
79303
+
79304
+
79254
79305
  class scout_integrations_api_UpdateSimpleWebhookDetails(ConjureBeanType):
79255
79306
 
79256
79307
  @builtins.classmethod
@@ -79274,6 +79325,29 @@ scout_integrations_api_UpdateSimpleWebhookDetails.__qualname__ = "UpdateSimpleWe
79274
79325
  scout_integrations_api_UpdateSimpleWebhookDetails.__module__ = "nominal_api.scout_integrations_api"
79275
79326
 
79276
79327
 
79328
+ class scout_integrations_api_UpdateTeamsWebhookIntegrationDetails(ConjureBeanType):
79329
+
79330
+ @builtins.classmethod
79331
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
79332
+ return {
79333
+ 'webhook': ConjureFieldDefinition('webhook', str)
79334
+ }
79335
+
79336
+ __slots__: List[str] = ['_webhook']
79337
+
79338
+ def __init__(self, webhook: str) -> None:
79339
+ self._webhook = webhook
79340
+
79341
+ @builtins.property
79342
+ def webhook(self) -> str:
79343
+ return self._webhook
79344
+
79345
+
79346
+ scout_integrations_api_UpdateTeamsWebhookIntegrationDetails.__name__ = "UpdateTeamsWebhookIntegrationDetails"
79347
+ scout_integrations_api_UpdateTeamsWebhookIntegrationDetails.__qualname__ = "UpdateTeamsWebhookIntegrationDetails"
79348
+ scout_integrations_api_UpdateTeamsWebhookIntegrationDetails.__module__ = "nominal_api.scout_integrations_api"
79349
+
79350
+
79277
79351
  class scout_internal_search_api_BooleanField(ConjureBeanType):
79278
79352
 
79279
79353
  @builtins.classmethod
@@ -81489,13 +81563,14 @@ class scout_notebook_api_NotebookMetadata(ConjureBeanType):
81489
81563
  'lock': ConjureFieldDefinition('lock', scout_notebook_api_Lock),
81490
81564
  'created_by_rid': ConjureFieldDefinition('createdByRid', scout_rids_api_UserRid),
81491
81565
  'created_at': ConjureFieldDefinition('createdAt', str),
81566
+ 'updated_at': ConjureFieldDefinition('updatedAt', OptionalTypeWrapper[str]),
81492
81567
  'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
81493
81568
  'labels': ConjureFieldDefinition('labels', List[api_Label])
81494
81569
  }
81495
81570
 
81496
- __slots__: List[str] = ['_run_rid', '_data_scope', '_notebook_type', '_title', '_description', '_is_draft', '_is_archived', '_lock', '_created_by_rid', '_created_at', '_properties', '_labels']
81571
+ __slots__: List[str] = ['_run_rid', '_data_scope', '_notebook_type', '_title', '_description', '_is_draft', '_is_archived', '_lock', '_created_by_rid', '_created_at', '_updated_at', '_properties', '_labels']
81497
81572
 
81498
- def __init__(self, created_at: str, created_by_rid: str, data_scope: "scout_notebook_api_NotebookDataScope", description: str, is_archived: bool, is_draft: bool, labels: List[str], lock: "scout_notebook_api_Lock", notebook_type: "scout_notebook_api_NotebookType", properties: Dict[str, str], title: str, run_rid: Optional[str] = None) -> None:
81573
+ def __init__(self, created_at: str, created_by_rid: str, data_scope: "scout_notebook_api_NotebookDataScope", description: str, is_archived: bool, is_draft: bool, labels: List[str], lock: "scout_notebook_api_Lock", notebook_type: "scout_notebook_api_NotebookType", properties: Dict[str, str], title: str, run_rid: Optional[str] = None, updated_at: Optional[str] = None) -> None:
81499
81574
  self._run_rid = run_rid
81500
81575
  self._data_scope = data_scope
81501
81576
  self._notebook_type = notebook_type
@@ -81506,6 +81581,7 @@ class scout_notebook_api_NotebookMetadata(ConjureBeanType):
81506
81581
  self._lock = lock
81507
81582
  self._created_by_rid = created_by_rid
81508
81583
  self._created_at = created_at
81584
+ self._updated_at = updated_at
81509
81585
  self._properties = properties
81510
81586
  self._labels = labels
81511
81587
 
@@ -81551,6 +81627,12 @@ class scout_notebook_api_NotebookMetadata(ConjureBeanType):
81551
81627
  def created_at(self) -> str:
81552
81628
  return self._created_at
81553
81629
 
81630
+ @builtins.property
81631
+ def updated_at(self) -> Optional[str]:
81632
+ """The timestamp when the workbook was last updated
81633
+ """
81634
+ return self._updated_at
81635
+
81554
81636
  @builtins.property
81555
81637
  def properties(self) -> Dict[str, str]:
81556
81638
  return self._properties
@@ -86405,23 +86487,26 @@ scout_savedviews_api_AssetMetricColumn.__module__ = "nominal_api.scout_savedview
86405
86487
 
86406
86488
  class scout_savedviews_api_AssetMetricColumnTimeRange(ConjureUnionType):
86407
86489
  _most_recent_run: Optional["scout_savedviews_api_MostRecentRun"] = None
86408
- _custom: Optional["scout_savedviews_api_CustomTimeRange"] = None
86490
+ _custom: Optional["scout_run_api_CustomTimeframeFilter"] = None
86491
+ _preset: Optional["scout_run_api_PresetTimeframeFilter"] = None
86409
86492
 
86410
86493
  @builtins.classmethod
86411
86494
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
86412
86495
  return {
86413
86496
  'most_recent_run': ConjureFieldDefinition('mostRecentRun', scout_savedviews_api_MostRecentRun),
86414
- 'custom': ConjureFieldDefinition('custom', scout_savedviews_api_CustomTimeRange)
86497
+ 'custom': ConjureFieldDefinition('custom', scout_run_api_CustomTimeframeFilter),
86498
+ 'preset': ConjureFieldDefinition('preset', scout_run_api_PresetTimeframeFilter)
86415
86499
  }
86416
86500
 
86417
86501
  def __init__(
86418
86502
  self,
86419
86503
  most_recent_run: Optional["scout_savedviews_api_MostRecentRun"] = None,
86420
- custom: Optional["scout_savedviews_api_CustomTimeRange"] = None,
86504
+ custom: Optional["scout_run_api_CustomTimeframeFilter"] = None,
86505
+ preset: Optional["scout_run_api_PresetTimeframeFilter"] = None,
86421
86506
  type_of_union: Optional[str] = None
86422
86507
  ) -> None:
86423
86508
  if type_of_union is None:
86424
- if (most_recent_run is not None) + (custom is not None) != 1:
86509
+ if (most_recent_run is not None) + (custom is not None) + (preset is not None) != 1:
86425
86510
  raise ValueError('a union must contain a single member')
86426
86511
 
86427
86512
  if most_recent_run is not None:
@@ -86430,6 +86515,9 @@ class scout_savedviews_api_AssetMetricColumnTimeRange(ConjureUnionType):
86430
86515
  if custom is not None:
86431
86516
  self._custom = custom
86432
86517
  self._type = 'custom'
86518
+ if preset is not None:
86519
+ self._preset = preset
86520
+ self._type = 'preset'
86433
86521
 
86434
86522
  elif type_of_union == 'mostRecentRun':
86435
86523
  if most_recent_run is None:
@@ -86441,15 +86529,24 @@ class scout_savedviews_api_AssetMetricColumnTimeRange(ConjureUnionType):
86441
86529
  raise ValueError('a union value must not be None')
86442
86530
  self._custom = custom
86443
86531
  self._type = 'custom'
86532
+ elif type_of_union == 'preset':
86533
+ if preset is None:
86534
+ raise ValueError('a union value must not be None')
86535
+ self._preset = preset
86536
+ self._type = 'preset'
86444
86537
 
86445
86538
  @builtins.property
86446
86539
  def most_recent_run(self) -> Optional["scout_savedviews_api_MostRecentRun"]:
86447
86540
  return self._most_recent_run
86448
86541
 
86449
86542
  @builtins.property
86450
- def custom(self) -> Optional["scout_savedviews_api_CustomTimeRange"]:
86543
+ def custom(self) -> Optional["scout_run_api_CustomTimeframeFilter"]:
86451
86544
  return self._custom
86452
86545
 
86546
+ @builtins.property
86547
+ def preset(self) -> Optional["scout_run_api_PresetTimeframeFilter"]:
86548
+ return self._preset
86549
+
86453
86550
  def accept(self, visitor) -> Any:
86454
86551
  if not isinstance(visitor, scout_savedviews_api_AssetMetricColumnTimeRangeVisitor):
86455
86552
  raise ValueError('{} is not an instance of scout_savedviews_api_AssetMetricColumnTimeRangeVisitor'.format(visitor.__class__.__name__))
@@ -86457,6 +86554,8 @@ class scout_savedviews_api_AssetMetricColumnTimeRange(ConjureUnionType):
86457
86554
  return visitor._most_recent_run(self.most_recent_run)
86458
86555
  if self._type == 'custom' and self.custom is not None:
86459
86556
  return visitor._custom(self.custom)
86557
+ if self._type == 'preset' and self.preset is not None:
86558
+ return visitor._preset(self.preset)
86460
86559
 
86461
86560
 
86462
86561
  scout_savedviews_api_AssetMetricColumnTimeRange.__name__ = "AssetMetricColumnTimeRange"
@@ -86471,7 +86570,11 @@ class scout_savedviews_api_AssetMetricColumnTimeRangeVisitor:
86471
86570
  pass
86472
86571
 
86473
86572
  @abstractmethod
86474
- def _custom(self, custom: "scout_savedviews_api_CustomTimeRange") -> Any:
86573
+ def _custom(self, custom: "scout_run_api_CustomTimeframeFilter") -> Any:
86574
+ pass
86575
+
86576
+ @abstractmethod
86577
+ def _preset(self, preset: "scout_run_api_PresetTimeframeFilter") -> Any:
86475
86578
  pass
86476
86579
 
86477
86580
 
@@ -86695,35 +86798,6 @@ scout_savedviews_api_CreateSavedViewResponse.__qualname__ = "CreateSavedViewResp
86695
86798
  scout_savedviews_api_CreateSavedViewResponse.__module__ = "nominal_api.scout_savedviews_api"
86696
86799
 
86697
86800
 
86698
- class scout_savedviews_api_CustomTimeRange(ConjureBeanType):
86699
-
86700
- @builtins.classmethod
86701
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
86702
- return {
86703
- 'start_time': ConjureFieldDefinition('startTime', OptionalTypeWrapper[scout_run_api_UtcTimestamp]),
86704
- 'end_time': ConjureFieldDefinition('endTime', OptionalTypeWrapper[scout_run_api_UtcTimestamp])
86705
- }
86706
-
86707
- __slots__: List[str] = ['_start_time', '_end_time']
86708
-
86709
- def __init__(self, end_time: Optional["scout_run_api_UtcTimestamp"] = None, start_time: Optional["scout_run_api_UtcTimestamp"] = None) -> None:
86710
- self._start_time = start_time
86711
- self._end_time = end_time
86712
-
86713
- @builtins.property
86714
- def start_time(self) -> Optional["scout_run_api_UtcTimestamp"]:
86715
- return self._start_time
86716
-
86717
- @builtins.property
86718
- def end_time(self) -> Optional["scout_run_api_UtcTimestamp"]:
86719
- return self._end_time
86720
-
86721
-
86722
- scout_savedviews_api_CustomTimeRange.__name__ = "CustomTimeRange"
86723
- scout_savedviews_api_CustomTimeRange.__qualname__ = "CustomTimeRange"
86724
- scout_savedviews_api_CustomTimeRange.__module__ = "nominal_api.scout_savedviews_api"
86725
-
86726
-
86727
86801
  class scout_savedviews_api_DisplayState(ConjureUnionType):
86728
86802
  _display_state_v1: Optional["scout_savedviews_api_TableState"] = None
86729
86803
 
@@ -90771,6 +90845,41 @@ playlist will be limited to the given bounds.
90771
90845
  _raw.decode_content = True
90772
90846
  return _raw
90773
90847
 
90848
+ def get_playlist_in_bounds_for_channel(self, auth_header: str, request: "scout_video_api_GetPlaylistInBoundsForChannelRequest") -> Any:
90849
+ """Generates an HLS playlist for a video channel series (identified by channel + tags) within an optional set of
90850
+ bounds then generates a playlist for all matching video segments.
90851
+ """
90852
+ _conjure_encoder = ConjureEncoder()
90853
+
90854
+ _headers: Dict[str, Any] = {
90855
+ 'Accept': 'application/octet-stream',
90856
+ 'Content-Type': 'application/json',
90857
+ 'Authorization': auth_header,
90858
+ }
90859
+
90860
+ _params: Dict[str, Any] = {
90861
+ }
90862
+
90863
+ _path_params: Dict[str, str] = {
90864
+ }
90865
+
90866
+ _json: Any = _conjure_encoder.default(request)
90867
+
90868
+ _path = '/video/v1/videos/channel/playlist-in-bounds'
90869
+ _path = _path.format(**_path_params)
90870
+
90871
+ _response: Response = self._request(
90872
+ 'POST',
90873
+ self._uri + _path,
90874
+ params=_params,
90875
+ headers=_headers,
90876
+ stream=True,
90877
+ json=_json)
90878
+
90879
+ _raw = _response.raw
90880
+ _raw.decode_content = True
90881
+ return _raw
90882
+
90774
90883
  def get_segment_summaries_in_bounds(self, auth_header: str, request: "scout_video_api_GetSegmentSummariesInBoundsRequest", video_rid: str) -> List["scout_video_api_SegmentSummary"]:
90775
90884
  """Returns the min and max absolute and media timestamps for each segment in a video that overlap with an
90776
90885
  optional set of bounds.
@@ -90805,6 +90914,39 @@ optional set of bounds.
90805
90914
  _decoder = ConjureDecoder()
90806
90915
  return _decoder.decode(_response.json(), List[scout_video_api_SegmentSummary], self._return_none_for_unknown_union_types)
90807
90916
 
90917
+ def get_segment_summaries_in_bounds_for_channel(self, auth_header: str, request: "scout_video_api_GetSegmentSummariesInBoundsForChannelRequest") -> List["scout_video_api_SegmentSummary"]:
90918
+ """Returns the min and max absolute and media timestamps for each segment matching a video channel series
90919
+ (identified by channel + tags) within the specified bounds.
90920
+ """
90921
+ _conjure_encoder = ConjureEncoder()
90922
+
90923
+ _headers: Dict[str, Any] = {
90924
+ 'Accept': 'application/json',
90925
+ 'Content-Type': 'application/json',
90926
+ 'Authorization': auth_header,
90927
+ }
90928
+
90929
+ _params: Dict[str, Any] = {
90930
+ }
90931
+
90932
+ _path_params: Dict[str, str] = {
90933
+ }
90934
+
90935
+ _json: Any = _conjure_encoder.default(request)
90936
+
90937
+ _path = '/video/v1/videos/channel/segment-summaries-in-bounds'
90938
+ _path = _path.format(**_path_params)
90939
+
90940
+ _response: Response = self._request(
90941
+ 'POST',
90942
+ self._uri + _path,
90943
+ params=_params,
90944
+ headers=_headers,
90945
+ json=_json)
90946
+
90947
+ _decoder = ConjureDecoder()
90948
+ return _decoder.decode(_response.json(), List[scout_video_api_SegmentSummary], self._return_none_for_unknown_union_types)
90949
+
90808
90950
  def get_file_summaries(self, auth_header: str, request: "scout_video_api_GetFileSummariesRequest", video_rid: str) -> "scout_video_api_GetFileSummariesResponse":
90809
90951
  """Returns the min and max absolute timestamps from non-archived video files associated with a given video that
90810
90952
  overlap with an optional set of bounds. The files on the edges of the bounds will be truncated to segments
@@ -91555,6 +91697,38 @@ scout_video_api_GetIngestStatusResponse.__qualname__ = "GetIngestStatusResponse"
91555
91697
  scout_video_api_GetIngestStatusResponse.__module__ = "nominal_api.scout_video_api"
91556
91698
 
91557
91699
 
91700
+ class scout_video_api_GetPlaylistInBoundsForChannelRequest(ConjureBeanType):
91701
+ """Request to get playlist for a video channel series.
91702
+ Uses channel + tags to resolve to video series metadata within the specified video.
91703
+ """
91704
+
91705
+ @builtins.classmethod
91706
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
91707
+ return {
91708
+ 'channel_series': ConjureFieldDefinition('channelSeries', scout_video_api_VideoChannelSeries),
91709
+ 'bounds': ConjureFieldDefinition('bounds', scout_video_api_Bounds)
91710
+ }
91711
+
91712
+ __slots__: List[str] = ['_channel_series', '_bounds']
91713
+
91714
+ def __init__(self, bounds: "scout_video_api_Bounds", channel_series: "scout_video_api_VideoChannelSeries") -> None:
91715
+ self._channel_series = channel_series
91716
+ self._bounds = bounds
91717
+
91718
+ @builtins.property
91719
+ def channel_series(self) -> "scout_video_api_VideoChannelSeries":
91720
+ return self._channel_series
91721
+
91722
+ @builtins.property
91723
+ def bounds(self) -> "scout_video_api_Bounds":
91724
+ return self._bounds
91725
+
91726
+
91727
+ scout_video_api_GetPlaylistInBoundsForChannelRequest.__name__ = "GetPlaylistInBoundsForChannelRequest"
91728
+ scout_video_api_GetPlaylistInBoundsForChannelRequest.__qualname__ = "GetPlaylistInBoundsForChannelRequest"
91729
+ scout_video_api_GetPlaylistInBoundsForChannelRequest.__module__ = "nominal_api.scout_video_api"
91730
+
91731
+
91558
91732
  class scout_video_api_GetPlaylistInBoundsRequest(ConjureBeanType):
91559
91733
 
91560
91734
  @builtins.classmethod
@@ -91613,6 +91787,38 @@ scout_video_api_GetSegmentByTimestampRequest.__qualname__ = "GetSegmentByTimesta
91613
91787
  scout_video_api_GetSegmentByTimestampRequest.__module__ = "nominal_api.scout_video_api"
91614
91788
 
91615
91789
 
91790
+ class scout_video_api_GetSegmentSummariesInBoundsForChannelRequest(ConjureBeanType):
91791
+ """Request to get segment summaries for a video channel series.
91792
+ Uses channel + tags to resolve to video series metadata within the specified bounds.
91793
+ """
91794
+
91795
+ @builtins.classmethod
91796
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
91797
+ return {
91798
+ 'channel_series': ConjureFieldDefinition('channelSeries', scout_video_api_VideoChannelSeries),
91799
+ 'bounds': ConjureFieldDefinition('bounds', scout_video_api_Bounds)
91800
+ }
91801
+
91802
+ __slots__: List[str] = ['_channel_series', '_bounds']
91803
+
91804
+ def __init__(self, bounds: "scout_video_api_Bounds", channel_series: "scout_video_api_VideoChannelSeries") -> None:
91805
+ self._channel_series = channel_series
91806
+ self._bounds = bounds
91807
+
91808
+ @builtins.property
91809
+ def channel_series(self) -> "scout_video_api_VideoChannelSeries":
91810
+ return self._channel_series
91811
+
91812
+ @builtins.property
91813
+ def bounds(self) -> "scout_video_api_Bounds":
91814
+ return self._bounds
91815
+
91816
+
91817
+ scout_video_api_GetSegmentSummariesInBoundsForChannelRequest.__name__ = "GetSegmentSummariesInBoundsForChannelRequest"
91818
+ scout_video_api_GetSegmentSummariesInBoundsForChannelRequest.__qualname__ = "GetSegmentSummariesInBoundsForChannelRequest"
91819
+ scout_video_api_GetSegmentSummariesInBoundsForChannelRequest.__module__ = "nominal_api.scout_video_api"
91820
+
91821
+
91616
91822
  class scout_video_api_GetSegmentSummariesInBoundsRequest(ConjureBeanType):
91617
91823
 
91618
91824
  @builtins.classmethod
@@ -92892,6 +93098,166 @@ scout_video_api_VideoAllSegmentsMetadata.__qualname__ = "VideoAllSegmentsMetadat
92892
93098
  scout_video_api_VideoAllSegmentsMetadata.__module__ = "nominal_api.scout_video_api"
92893
93099
 
92894
93100
 
93101
+ class scout_video_api_VideoAssetChannel(ConjureBeanType):
93102
+ """Reference a video channel via an Asset's data scope
93103
+ """
93104
+
93105
+ @builtins.classmethod
93106
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93107
+ return {
93108
+ 'asset_rid': ConjureFieldDefinition('assetRid', str),
93109
+ 'data_scope_name': ConjureFieldDefinition('dataScopeName', str),
93110
+ 'channel': ConjureFieldDefinition('channel', str),
93111
+ 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue])
93112
+ }
93113
+
93114
+ __slots__: List[str] = ['_asset_rid', '_data_scope_name', '_channel', '_tags']
93115
+
93116
+ def __init__(self, asset_rid: str, channel: str, data_scope_name: str, tags: Dict[str, str]) -> None:
93117
+ self._asset_rid = asset_rid
93118
+ self._data_scope_name = data_scope_name
93119
+ self._channel = channel
93120
+ self._tags = tags
93121
+
93122
+ @builtins.property
93123
+ def asset_rid(self) -> str:
93124
+ return self._asset_rid
93125
+
93126
+ @builtins.property
93127
+ def data_scope_name(self) -> str:
93128
+ return self._data_scope_name
93129
+
93130
+ @builtins.property
93131
+ def channel(self) -> str:
93132
+ return self._channel
93133
+
93134
+ @builtins.property
93135
+ def tags(self) -> Dict[str, str]:
93136
+ return self._tags
93137
+
93138
+
93139
+ scout_video_api_VideoAssetChannel.__name__ = "VideoAssetChannel"
93140
+ scout_video_api_VideoAssetChannel.__qualname__ = "VideoAssetChannel"
93141
+ scout_video_api_VideoAssetChannel.__module__ = "nominal_api.scout_video_api"
93142
+
93143
+
93144
+ class scout_video_api_VideoChannelSeries(ConjureUnionType):
93145
+ """Union type for referencing a video channel. Allows querying video data via
93146
+ datasource/channel, asset data scopes, or run data scopes.
93147
+ """
93148
+ _data_source: Optional["scout_video_api_VideoDataSourceChannel"] = None
93149
+ _asset: Optional["scout_video_api_VideoAssetChannel"] = None
93150
+
93151
+ @builtins.classmethod
93152
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
93153
+ return {
93154
+ 'data_source': ConjureFieldDefinition('dataSource', scout_video_api_VideoDataSourceChannel),
93155
+ 'asset': ConjureFieldDefinition('asset', scout_video_api_VideoAssetChannel)
93156
+ }
93157
+
93158
+ def __init__(
93159
+ self,
93160
+ data_source: Optional["scout_video_api_VideoDataSourceChannel"] = None,
93161
+ asset: Optional["scout_video_api_VideoAssetChannel"] = None,
93162
+ type_of_union: Optional[str] = None
93163
+ ) -> None:
93164
+ if type_of_union is None:
93165
+ if (data_source is not None) + (asset is not None) != 1:
93166
+ raise ValueError('a union must contain a single member')
93167
+
93168
+ if data_source is not None:
93169
+ self._data_source = data_source
93170
+ self._type = 'dataSource'
93171
+ if asset is not None:
93172
+ self._asset = asset
93173
+ self._type = 'asset'
93174
+
93175
+ elif type_of_union == 'dataSource':
93176
+ if data_source is None:
93177
+ raise ValueError('a union value must not be None')
93178
+ self._data_source = data_source
93179
+ self._type = 'dataSource'
93180
+ elif type_of_union == 'asset':
93181
+ if asset is None:
93182
+ raise ValueError('a union value must not be None')
93183
+ self._asset = asset
93184
+ self._type = 'asset'
93185
+
93186
+ @builtins.property
93187
+ def data_source(self) -> Optional["scout_video_api_VideoDataSourceChannel"]:
93188
+ return self._data_source
93189
+
93190
+ @builtins.property
93191
+ def asset(self) -> Optional["scout_video_api_VideoAssetChannel"]:
93192
+ return self._asset
93193
+
93194
+ def accept(self, visitor) -> Any:
93195
+ if not isinstance(visitor, scout_video_api_VideoChannelSeriesVisitor):
93196
+ raise ValueError('{} is not an instance of scout_video_api_VideoChannelSeriesVisitor'.format(visitor.__class__.__name__))
93197
+ if self._type == 'dataSource' and self.data_source is not None:
93198
+ return visitor._data_source(self.data_source)
93199
+ if self._type == 'asset' and self.asset is not None:
93200
+ return visitor._asset(self.asset)
93201
+
93202
+
93203
+ scout_video_api_VideoChannelSeries.__name__ = "VideoChannelSeries"
93204
+ scout_video_api_VideoChannelSeries.__qualname__ = "VideoChannelSeries"
93205
+ scout_video_api_VideoChannelSeries.__module__ = "nominal_api.scout_video_api"
93206
+
93207
+
93208
+ class scout_video_api_VideoChannelSeriesVisitor:
93209
+
93210
+ @abstractmethod
93211
+ def _data_source(self, data_source: "scout_video_api_VideoDataSourceChannel") -> Any:
93212
+ pass
93213
+
93214
+ @abstractmethod
93215
+ def _asset(self, asset: "scout_video_api_VideoAssetChannel") -> Any:
93216
+ pass
93217
+
93218
+
93219
+ scout_video_api_VideoChannelSeriesVisitor.__name__ = "VideoChannelSeriesVisitor"
93220
+ scout_video_api_VideoChannelSeriesVisitor.__qualname__ = "VideoChannelSeriesVisitor"
93221
+ scout_video_api_VideoChannelSeriesVisitor.__module__ = "nominal_api.scout_video_api"
93222
+
93223
+
93224
+ class scout_video_api_VideoDataSourceChannel(ConjureBeanType):
93225
+ """Reference a video channel directly from a datasource/dataset
93226
+ """
93227
+
93228
+ @builtins.classmethod
93229
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93230
+ return {
93231
+ 'data_source_rid': ConjureFieldDefinition('dataSourceRid', str),
93232
+ 'channel': ConjureFieldDefinition('channel', str),
93233
+ 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue])
93234
+ }
93235
+
93236
+ __slots__: List[str] = ['_data_source_rid', '_channel', '_tags']
93237
+
93238
+ def __init__(self, channel: str, data_source_rid: str, tags: Dict[str, str]) -> None:
93239
+ self._data_source_rid = data_source_rid
93240
+ self._channel = channel
93241
+ self._tags = tags
93242
+
93243
+ @builtins.property
93244
+ def data_source_rid(self) -> str:
93245
+ return self._data_source_rid
93246
+
93247
+ @builtins.property
93248
+ def channel(self) -> str:
93249
+ return self._channel
93250
+
93251
+ @builtins.property
93252
+ def tags(self) -> Dict[str, str]:
93253
+ return self._tags
93254
+
93255
+
93256
+ scout_video_api_VideoDataSourceChannel.__name__ = "VideoDataSourceChannel"
93257
+ scout_video_api_VideoDataSourceChannel.__qualname__ = "VideoDataSourceChannel"
93258
+ scout_video_api_VideoDataSourceChannel.__module__ = "nominal_api.scout_video_api"
93259
+
93260
+
92895
93261
  class scout_video_api_VideoFile(ConjureBeanType):
92896
93262
  """Representation of a single user-provided video file.
92897
93263
  """
@@ -97225,6 +97591,7 @@ message Points {
97225
97591
  IntegerPoints integer_points = 3;
97226
97592
  ArrayPoints array_points = 4;
97227
97593
  StructPoints struct_points = 5;
97594
+ Uint64Points uint64_points = 6;
97228
97595
  }
97229
97596
  }
97230
97597
 
@@ -97240,6 +97607,10 @@ message IntegerPoints {
97240
97607
  repeated IntegerPoint points = 1;
97241
97608
  }
97242
97609
 
97610
+ message Uint64Points {
97611
+ repeated Uint64Point points = 1;
97612
+ }
97613
+
97243
97614
  message ArrayPoints {
97244
97615
  oneof array_type {
97245
97616
  DoubleArrayPoints double_array_points = 1;
@@ -97274,6 +97645,11 @@ message IntegerPoint {
97274
97645
  int64 value = 2;
97275
97646
  }
97276
97647
 
97648
+ message Uint64Point {
97649
+ google.protobuf.Timestamp timestamp = 1;
97650
+ uint64 value = 2;
97651
+ }
97652
+
97277
97653
  message DoubleArrayPoint {
97278
97654
  google.protobuf.Timestamp timestamp = 1;
97279
97655
  repeated double value = 2;
@@ -97376,6 +97752,7 @@ Logs specifically are supported externally via a separate endpoint.
97376
97752
  _double: Optional[List["storage_writer_api_DoublePoint"]] = None
97377
97753
  _log: Optional[List["storage_writer_api_LogPoint"]] = None
97378
97754
  _int_: Optional[List["storage_writer_api_IntPoint"]] = None
97755
+ _uint64: Optional[List["storage_writer_api_Uint64Point"]] = None
97379
97756
  _array: Optional["storage_writer_api_ArrayPoints"] = None
97380
97757
  _struct: Optional[List["storage_writer_api_StructPoint"]] = None
97381
97758
 
@@ -97386,6 +97763,7 @@ Logs specifically are supported externally via a separate endpoint.
97386
97763
  'double': ConjureFieldDefinition('double', List[storage_writer_api_DoublePoint]),
97387
97764
  'log': ConjureFieldDefinition('log', List[storage_writer_api_LogPoint]),
97388
97765
  'int_': ConjureFieldDefinition('int', List[storage_writer_api_IntPoint]),
97766
+ 'uint64': ConjureFieldDefinition('uint64', List[storage_writer_api_Uint64Point]),
97389
97767
  'array': ConjureFieldDefinition('array', storage_writer_api_ArrayPoints),
97390
97768
  'struct': ConjureFieldDefinition('struct', List[storage_writer_api_StructPoint])
97391
97769
  }
@@ -97396,12 +97774,13 @@ Logs specifically are supported externally via a separate endpoint.
97396
97774
  double: Optional[List["storage_writer_api_DoublePoint"]] = None,
97397
97775
  log: Optional[List["storage_writer_api_LogPoint"]] = None,
97398
97776
  int_: Optional[List["storage_writer_api_IntPoint"]] = None,
97777
+ uint64: Optional[List["storage_writer_api_Uint64Point"]] = None,
97399
97778
  array: Optional["storage_writer_api_ArrayPoints"] = None,
97400
97779
  struct: Optional[List["storage_writer_api_StructPoint"]] = None,
97401
97780
  type_of_union: Optional[str] = None
97402
97781
  ) -> None:
97403
97782
  if type_of_union is None:
97404
- if (string is not None) + (double is not None) + (log is not None) + (int_ is not None) + (array is not None) + (struct is not None) != 1:
97783
+ if (string is not None) + (double is not None) + (log is not None) + (int_ is not None) + (uint64 is not None) + (array is not None) + (struct is not None) != 1:
97405
97784
  raise ValueError('a union must contain a single member')
97406
97785
 
97407
97786
  if string is not None:
@@ -97416,6 +97795,9 @@ Logs specifically are supported externally via a separate endpoint.
97416
97795
  if int_ is not None:
97417
97796
  self._int_ = int_
97418
97797
  self._type = 'int'
97798
+ if uint64 is not None:
97799
+ self._uint64 = uint64
97800
+ self._type = 'uint64'
97419
97801
  if array is not None:
97420
97802
  self._array = array
97421
97803
  self._type = 'array'
@@ -97443,6 +97825,11 @@ Logs specifically are supported externally via a separate endpoint.
97443
97825
  raise ValueError('a union value must not be None')
97444
97826
  self._int_ = int_
97445
97827
  self._type = 'int'
97828
+ elif type_of_union == 'uint64':
97829
+ if uint64 is None:
97830
+ raise ValueError('a union value must not be None')
97831
+ self._uint64 = uint64
97832
+ self._type = 'uint64'
97446
97833
  elif type_of_union == 'array':
97447
97834
  if array is None:
97448
97835
  raise ValueError('a union value must not be None')
@@ -97470,6 +97857,10 @@ Logs specifically are supported externally via a separate endpoint.
97470
97857
  def int_(self) -> Optional[List["storage_writer_api_IntPoint"]]:
97471
97858
  return self._int_
97472
97859
 
97860
+ @builtins.property
97861
+ def uint64(self) -> Optional[List["storage_writer_api_Uint64Point"]]:
97862
+ return self._uint64
97863
+
97473
97864
  @builtins.property
97474
97865
  def array(self) -> Optional["storage_writer_api_ArrayPoints"]:
97475
97866
  return self._array
@@ -97489,6 +97880,8 @@ Logs specifically are supported externally via a separate endpoint.
97489
97880
  return visitor._log(self.log)
97490
97881
  if self._type == 'int' and self.int_ is not None:
97491
97882
  return visitor._int(self.int_)
97883
+ if self._type == 'uint64' and self.uint64 is not None:
97884
+ return visitor._uint64(self.uint64)
97492
97885
  if self._type == 'array' and self.array is not None:
97493
97886
  return visitor._array(self.array)
97494
97887
  if self._type == 'struct' and self.struct is not None:
@@ -97518,6 +97911,10 @@ class storage_writer_api_PointsVisitor:
97518
97911
  def _int(self, int_: List["storage_writer_api_IntPoint"]) -> Any:
97519
97912
  pass
97520
97913
 
97914
+ @abstractmethod
97915
+ def _uint64(self, uint64: List["storage_writer_api_Uint64Point"]) -> Any:
97916
+ pass
97917
+
97521
97918
  @abstractmethod
97522
97919
  def _array(self, array: "storage_writer_api_ArrayPoints") -> Any:
97523
97920
  pass
@@ -97874,6 +98271,35 @@ storage_writer_api_TelegrafMetric.__qualname__ = "TelegrafMetric"
97874
98271
  storage_writer_api_TelegrafMetric.__module__ = "nominal_api.storage_writer_api"
97875
98272
 
97876
98273
 
98274
+ class storage_writer_api_Uint64Point(ConjureBeanType):
98275
+
98276
+ @builtins.classmethod
98277
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
98278
+ return {
98279
+ 'timestamp': ConjureFieldDefinition('timestamp', api_Timestamp),
98280
+ 'value': ConjureFieldDefinition('value', int)
98281
+ }
98282
+
98283
+ __slots__: List[str] = ['_timestamp', '_value']
98284
+
98285
+ def __init__(self, timestamp: "api_Timestamp", value: int) -> None:
98286
+ self._timestamp = timestamp
98287
+ self._value = value
98288
+
98289
+ @builtins.property
98290
+ def timestamp(self) -> "api_Timestamp":
98291
+ return self._timestamp
98292
+
98293
+ @builtins.property
98294
+ def value(self) -> int:
98295
+ return self._value
98296
+
98297
+
98298
+ storage_writer_api_Uint64Point.__name__ = "Uint64Point"
98299
+ storage_writer_api_Uint64Point.__qualname__ = "Uint64Point"
98300
+ storage_writer_api_Uint64Point.__module__ = "nominal_api.storage_writer_api"
98301
+
98302
+
97877
98303
  class storage_writer_api_WriteBatchesRequest(ConjureBeanType):
97878
98304
 
97879
98305
  @builtins.classmethod
@@ -99910,7 +100336,6 @@ class timeseries_logicalseries_api_Locator(ConjureUnionType):
99910
100336
  _visual_crossing_locator: Optional["timeseries_logicalseries_api_VisualCrossingLocator"] = None
99911
100337
  _big_query_locator: Optional["timeseries_logicalseries_api_BigQueryLocator"] = None
99912
100338
  _api_locator: Optional["timeseries_logicalseries_api_ApiLocator"] = None
99913
- _video_locator: Optional["timeseries_logicalseries_api_VideoLocator"] = None
99914
100339
 
99915
100340
  @builtins.classmethod
99916
100341
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -99922,8 +100347,7 @@ class timeseries_logicalseries_api_Locator(ConjureUnionType):
99922
100347
  'timestream_locator': ConjureFieldDefinition('timestreamLocator', timeseries_logicalseries_api_TimestreamLocator),
99923
100348
  'visual_crossing_locator': ConjureFieldDefinition('visualCrossingLocator', timeseries_logicalseries_api_VisualCrossingLocator),
99924
100349
  'big_query_locator': ConjureFieldDefinition('bigQueryLocator', timeseries_logicalseries_api_BigQueryLocator),
99925
- 'api_locator': ConjureFieldDefinition('apiLocator', timeseries_logicalseries_api_ApiLocator),
99926
- 'video_locator': ConjureFieldDefinition('videoLocator', timeseries_logicalseries_api_VideoLocator)
100350
+ 'api_locator': ConjureFieldDefinition('apiLocator', timeseries_logicalseries_api_ApiLocator)
99927
100351
  }
99928
100352
 
99929
100353
  def __init__(
@@ -99936,11 +100360,10 @@ class timeseries_logicalseries_api_Locator(ConjureUnionType):
99936
100360
  visual_crossing_locator: Optional["timeseries_logicalseries_api_VisualCrossingLocator"] = None,
99937
100361
  big_query_locator: Optional["timeseries_logicalseries_api_BigQueryLocator"] = None,
99938
100362
  api_locator: Optional["timeseries_logicalseries_api_ApiLocator"] = None,
99939
- video_locator: Optional["timeseries_logicalseries_api_VideoLocator"] = None,
99940
100363
  type_of_union: Optional[str] = None
99941
100364
  ) -> None:
99942
100365
  if type_of_union is None:
99943
- if (timescale_db_locator is not None) + (influx_locator is not None) + (influx1_locator is not None) + (nominal_locator is not None) + (timestream_locator is not None) + (visual_crossing_locator is not None) + (big_query_locator is not None) + (api_locator is not None) + (video_locator is not None) != 1:
100366
+ if (timescale_db_locator is not None) + (influx_locator is not None) + (influx1_locator is not None) + (nominal_locator is not None) + (timestream_locator is not None) + (visual_crossing_locator is not None) + (big_query_locator is not None) + (api_locator is not None) != 1:
99944
100367
  raise ValueError('a union must contain a single member')
99945
100368
 
99946
100369
  if timescale_db_locator is not None:
@@ -99967,9 +100390,6 @@ class timeseries_logicalseries_api_Locator(ConjureUnionType):
99967
100390
  if api_locator is not None:
99968
100391
  self._api_locator = api_locator
99969
100392
  self._type = 'apiLocator'
99970
- if video_locator is not None:
99971
- self._video_locator = video_locator
99972
- self._type = 'videoLocator'
99973
100393
 
99974
100394
  elif type_of_union == 'timescaleDbLocator':
99975
100395
  if timescale_db_locator is None:
@@ -100011,11 +100431,6 @@ class timeseries_logicalseries_api_Locator(ConjureUnionType):
100011
100431
  raise ValueError('a union value must not be None')
100012
100432
  self._api_locator = api_locator
100013
100433
  self._type = 'apiLocator'
100014
- elif type_of_union == 'videoLocator':
100015
- if video_locator is None:
100016
- raise ValueError('a union value must not be None')
100017
- self._video_locator = video_locator
100018
- self._type = 'videoLocator'
100019
100434
 
100020
100435
  @builtins.property
100021
100436
  def timescale_db_locator(self) -> Optional["timeseries_logicalseries_api_TimescaleDbLocator"]:
@@ -100049,10 +100464,6 @@ class timeseries_logicalseries_api_Locator(ConjureUnionType):
100049
100464
  def api_locator(self) -> Optional["timeseries_logicalseries_api_ApiLocator"]:
100050
100465
  return self._api_locator
100051
100466
 
100052
- @builtins.property
100053
- def video_locator(self) -> Optional["timeseries_logicalseries_api_VideoLocator"]:
100054
- return self._video_locator
100055
-
100056
100467
  def accept(self, visitor) -> Any:
100057
100468
  if not isinstance(visitor, timeseries_logicalseries_api_LocatorVisitor):
100058
100469
  raise ValueError('{} is not an instance of timeseries_logicalseries_api_LocatorVisitor'.format(visitor.__class__.__name__))
@@ -100072,8 +100483,6 @@ class timeseries_logicalseries_api_Locator(ConjureUnionType):
100072
100483
  return visitor._big_query_locator(self.big_query_locator)
100073
100484
  if self._type == 'apiLocator' and self.api_locator is not None:
100074
100485
  return visitor._api_locator(self.api_locator)
100075
- if self._type == 'videoLocator' and self.video_locator is not None:
100076
- return visitor._video_locator(self.video_locator)
100077
100486
 
100078
100487
 
100079
100488
  timeseries_logicalseries_api_Locator.__name__ = "Locator"
@@ -100115,10 +100524,6 @@ class timeseries_logicalseries_api_LocatorVisitor:
100115
100524
  def _api_locator(self, api_locator: "timeseries_logicalseries_api_ApiLocator") -> Any:
100116
100525
  pass
100117
100526
 
100118
- @abstractmethod
100119
- def _video_locator(self, video_locator: "timeseries_logicalseries_api_VideoLocator") -> Any:
100120
- pass
100121
-
100122
100527
 
100123
100528
  timeseries_logicalseries_api_LocatorVisitor.__name__ = "LocatorVisitor"
100124
100529
  timeseries_logicalseries_api_LocatorVisitor.__qualname__ = "LocatorVisitor"
@@ -100636,41 +101041,6 @@ timeseries_logicalseries_api_UpdateLogicalSeries.__qualname__ = "UpdateLogicalSe
100636
101041
  timeseries_logicalseries_api_UpdateLogicalSeries.__module__ = "nominal_api.timeseries_logicalseries_api"
100637
101042
 
100638
101043
 
100639
- class timeseries_logicalseries_api_VideoLocator(ConjureBeanType):
100640
-
100641
- @builtins.classmethod
100642
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
100643
- return {
100644
- 'channel': ConjureFieldDefinition('channel', api_Channel),
100645
- 'video_rid': ConjureFieldDefinition('videoRid', api_rids_VideoRid),
100646
- 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue])
100647
- }
100648
-
100649
- __slots__: List[str] = ['_channel', '_video_rid', '_tags']
100650
-
100651
- def __init__(self, channel: str, tags: Dict[str, str], video_rid: str) -> None:
100652
- self._channel = channel
100653
- self._video_rid = video_rid
100654
- self._tags = tags
100655
-
100656
- @builtins.property
100657
- def channel(self) -> str:
100658
- return self._channel
100659
-
100660
- @builtins.property
100661
- def video_rid(self) -> str:
100662
- return self._video_rid
100663
-
100664
- @builtins.property
100665
- def tags(self) -> Dict[str, str]:
100666
- return self._tags
100667
-
100668
-
100669
- timeseries_logicalseries_api_VideoLocator.__name__ = "VideoLocator"
100670
- timeseries_logicalseries_api_VideoLocator.__qualname__ = "VideoLocator"
100671
- timeseries_logicalseries_api_VideoLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
100672
-
100673
-
100674
101044
  class timeseries_logicalseries_api_VisualCrossingEndpointUri(ConjureEnumType):
100675
101045
 
100676
101046
  HISTORY = 'HISTORY'