nominal-api 0.965.1__py3-none-any.whl → 0.967.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nominal-api might be problematic. Click here for more details.

nominal_api/__init__.py CHANGED
@@ -82,5 +82,5 @@ __all__ = [
82
82
 
83
83
  __conjure_generator_version__ = "4.17.0"
84
84
 
85
- __version__ = "0.965.1"
85
+ __version__ = "0.967.0"
86
86
 
nominal_api/_impl.py CHANGED
@@ -5898,6 +5898,153 @@ datasource_pagination_api_PageResponse.__qualname__ = "PageResponse"
5898
5898
  datasource_pagination_api_PageResponse.__module__ = "nominal_api.datasource_pagination_api"
5899
5899
 
5900
5900
 
5901
+ class event_AggregateEventsRequest(ConjureBeanType):
5902
+
5903
+ @builtins.classmethod
5904
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
5905
+ return {
5906
+ 'query': ConjureFieldDefinition('query', event_SearchQuery),
5907
+ 'aggregate_types': ConjureFieldDefinition('aggregateTypes', List[event_AggregateType])
5908
+ }
5909
+
5910
+ __slots__: List[str] = ['_query', '_aggregate_types']
5911
+
5912
+ def __init__(self, aggregate_types: List["event_AggregateType"], query: "event_SearchQuery") -> None:
5913
+ self._query = query
5914
+ self._aggregate_types = aggregate_types
5915
+
5916
+ @builtins.property
5917
+ def query(self) -> "event_SearchQuery":
5918
+ return self._query
5919
+
5920
+ @builtins.property
5921
+ def aggregate_types(self) -> List["event_AggregateType"]:
5922
+ return self._aggregate_types
5923
+
5924
+
5925
+ event_AggregateEventsRequest.__name__ = "AggregateEventsRequest"
5926
+ event_AggregateEventsRequest.__qualname__ = "AggregateEventsRequest"
5927
+ event_AggregateEventsRequest.__module__ = "nominal_api.event"
5928
+
5929
+
5930
+ class event_AggregateEventsResponse(ConjureBeanType):
5931
+
5932
+ @builtins.classmethod
5933
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
5934
+ return {
5935
+ 'values': ConjureFieldDefinition('values', Dict[event_AggregateType, event_AggregateValue])
5936
+ }
5937
+
5938
+ __slots__: List[str] = ['_values']
5939
+
5940
+ def __init__(self, values: Dict["event_AggregateType", "event_AggregateValue"]) -> None:
5941
+ self._values = values
5942
+
5943
+ @builtins.property
5944
+ def values(self) -> Dict["event_AggregateType", "event_AggregateValue"]:
5945
+ return self._values
5946
+
5947
+
5948
+ event_AggregateEventsResponse.__name__ = "AggregateEventsResponse"
5949
+ event_AggregateEventsResponse.__qualname__ = "AggregateEventsResponse"
5950
+ event_AggregateEventsResponse.__module__ = "nominal_api.event"
5951
+
5952
+
5953
+ class event_AggregateType(ConjureEnumType):
5954
+
5955
+ TOTAL_DURATION = 'TOTAL_DURATION'
5956
+ '''TOTAL_DURATION'''
5957
+ TOTAL_COUNT = 'TOTAL_COUNT'
5958
+ '''TOTAL_COUNT'''
5959
+ UNKNOWN = 'UNKNOWN'
5960
+ '''UNKNOWN'''
5961
+
5962
+ def __reduce_ex__(self, proto):
5963
+ return self.__class__, (self.name,)
5964
+
5965
+
5966
+ event_AggregateType.__name__ = "AggregateType"
5967
+ event_AggregateType.__qualname__ = "AggregateType"
5968
+ event_AggregateType.__module__ = "nominal_api.event"
5969
+
5970
+
5971
+ class event_AggregateValue(ConjureUnionType):
5972
+ _duration: Optional["scout_run_api_Duration"] = None
5973
+ _count: Optional[int] = None
5974
+
5975
+ @builtins.classmethod
5976
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
5977
+ return {
5978
+ 'duration': ConjureFieldDefinition('duration', scout_run_api_Duration),
5979
+ 'count': ConjureFieldDefinition('count', int)
5980
+ }
5981
+
5982
+ def __init__(
5983
+ self,
5984
+ duration: Optional["scout_run_api_Duration"] = None,
5985
+ count: Optional[int] = None,
5986
+ type_of_union: Optional[str] = None
5987
+ ) -> None:
5988
+ if type_of_union is None:
5989
+ if (duration is not None) + (count is not None) != 1:
5990
+ raise ValueError('a union must contain a single member')
5991
+
5992
+ if duration is not None:
5993
+ self._duration = duration
5994
+ self._type = 'duration'
5995
+ if count is not None:
5996
+ self._count = count
5997
+ self._type = 'count'
5998
+
5999
+ elif type_of_union == 'duration':
6000
+ if duration is None:
6001
+ raise ValueError('a union value must not be None')
6002
+ self._duration = duration
6003
+ self._type = 'duration'
6004
+ elif type_of_union == 'count':
6005
+ if count is None:
6006
+ raise ValueError('a union value must not be None')
6007
+ self._count = count
6008
+ self._type = 'count'
6009
+
6010
+ @builtins.property
6011
+ def duration(self) -> Optional["scout_run_api_Duration"]:
6012
+ return self._duration
6013
+
6014
+ @builtins.property
6015
+ def count(self) -> Optional[int]:
6016
+ return self._count
6017
+
6018
+ def accept(self, visitor) -> Any:
6019
+ if not isinstance(visitor, event_AggregateValueVisitor):
6020
+ raise ValueError('{} is not an instance of event_AggregateValueVisitor'.format(visitor.__class__.__name__))
6021
+ if self._type == 'duration' and self.duration is not None:
6022
+ return visitor._duration(self.duration)
6023
+ if self._type == 'count' and self.count is not None:
6024
+ return visitor._count(self.count)
6025
+
6026
+
6027
+ event_AggregateValue.__name__ = "AggregateValue"
6028
+ event_AggregateValue.__qualname__ = "AggregateValue"
6029
+ event_AggregateValue.__module__ = "nominal_api.event"
6030
+
6031
+
6032
+ class event_AggregateValueVisitor:
6033
+
6034
+ @abstractmethod
6035
+ def _duration(self, duration: "scout_run_api_Duration") -> Any:
6036
+ pass
6037
+
6038
+ @abstractmethod
6039
+ def _count(self, count: int) -> Any:
6040
+ pass
6041
+
6042
+
6043
+ event_AggregateValueVisitor.__name__ = "AggregateValueVisitor"
6044
+ event_AggregateValueVisitor.__qualname__ = "AggregateValueVisitor"
6045
+ event_AggregateValueVisitor.__module__ = "nominal_api.event"
6046
+
6047
+
5901
6048
  class event_ApiEventOrigin(ConjureBeanType):
5902
6049
 
5903
6050
  @builtins.classmethod
@@ -5966,6 +6113,35 @@ event_AssetsFilter.__qualname__ = "AssetsFilter"
5966
6113
  event_AssetsFilter.__module__ = "nominal_api.event"
5967
6114
 
5968
6115
 
6116
+ class event_AssigneesFilter(ConjureBeanType):
6117
+
6118
+ @builtins.classmethod
6119
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
6120
+ return {
6121
+ 'operator': ConjureFieldDefinition('operator', api_SetOperator),
6122
+ 'assignees': ConjureFieldDefinition('assignees', List[scout_rids_api_UserRid])
6123
+ }
6124
+
6125
+ __slots__: List[str] = ['_operator', '_assignees']
6126
+
6127
+ def __init__(self, assignees: List[str], operator: "api_SetOperator") -> None:
6128
+ self._operator = operator
6129
+ self._assignees = assignees
6130
+
6131
+ @builtins.property
6132
+ def operator(self) -> "api_SetOperator":
6133
+ return self._operator
6134
+
6135
+ @builtins.property
6136
+ def assignees(self) -> List[str]:
6137
+ return self._assignees
6138
+
6139
+
6140
+ event_AssigneesFilter.__name__ = "AssigneesFilter"
6141
+ event_AssigneesFilter.__qualname__ = "AssigneesFilter"
6142
+ event_AssigneesFilter.__module__ = "nominal_api.event"
6143
+
6144
+
5969
6145
  class event_BatchUpdateDispositionRequest(ConjureBeanType):
5970
6146
 
5971
6147
  @builtins.classmethod
@@ -6859,6 +7035,38 @@ Empty fields in the UpdateEventRequest are left unchanged.
6859
7035
  _decoder = ConjureDecoder()
6860
7036
  return _decoder.decode(_response.json(), event_SearchEventsResponse, self._return_none_for_unknown_union_types)
6861
7037
 
7038
+ def aggregate_events(self, auth_header: str, request: "event_AggregateEventsRequest") -> "event_AggregateEventsResponse":
7039
+ """Searches for events matching the given filter and aggregates them based on the requested functions.
7040
+ """
7041
+ _conjure_encoder = ConjureEncoder()
7042
+
7043
+ _headers: Dict[str, Any] = {
7044
+ 'Accept': 'application/json',
7045
+ 'Content-Type': 'application/json',
7046
+ 'Authorization': auth_header,
7047
+ }
7048
+
7049
+ _params: Dict[str, Any] = {
7050
+ }
7051
+
7052
+ _path_params: Dict[str, str] = {
7053
+ }
7054
+
7055
+ _json: Any = _conjure_encoder.default(request)
7056
+
7057
+ _path = '/event/v1/aggregate-events'
7058
+ _path = _path.format(**_path_params)
7059
+
7060
+ _response: Response = self._request(
7061
+ 'POST',
7062
+ self._uri + _path,
7063
+ params=_params,
7064
+ headers=_headers,
7065
+ json=_json)
7066
+
7067
+ _decoder = ConjureDecoder()
7068
+ return _decoder.decode(_response.json(), event_AggregateEventsResponse, self._return_none_for_unknown_union_types)
7069
+
6862
7070
  def get_events_histogram(self, auth_header: str, request: "event_EventsHistogramRequest") -> "event_EventsHistogramResponse":
6863
7071
  """Gets a histogram of events that match the given filters.
6864
7072
  """
@@ -7656,6 +7864,35 @@ event_ListPropertiesAndLabelsRequest.__qualname__ = "ListPropertiesAndLabelsRequ
7656
7864
  event_ListPropertiesAndLabelsRequest.__module__ = "nominal_api.event"
7657
7865
 
7658
7866
 
7867
+ class event_OriginTypesFilter(ConjureBeanType):
7868
+
7869
+ @builtins.classmethod
7870
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
7871
+ return {
7872
+ 'operator': ConjureFieldDefinition('operator', api_SetOperator),
7873
+ 'origin_types': ConjureFieldDefinition('originTypes', List[event_SearchEventOriginType])
7874
+ }
7875
+
7876
+ __slots__: List[str] = ['_operator', '_origin_types']
7877
+
7878
+ def __init__(self, operator: "api_SetOperator", origin_types: List["event_SearchEventOriginType"]) -> None:
7879
+ self._operator = operator
7880
+ self._origin_types = origin_types
7881
+
7882
+ @builtins.property
7883
+ def operator(self) -> "api_SetOperator":
7884
+ return self._operator
7885
+
7886
+ @builtins.property
7887
+ def origin_types(self) -> List["event_SearchEventOriginType"]:
7888
+ return self._origin_types
7889
+
7890
+
7891
+ event_OriginTypesFilter.__name__ = "OriginTypesFilter"
7892
+ event_OriginTypesFilter.__qualname__ = "OriginTypesFilter"
7893
+ event_OriginTypesFilter.__module__ = "nominal_api.event"
7894
+
7895
+
7659
7896
  class event_ProcedureEventOrigin(ConjureBeanType):
7660
7897
 
7661
7898
  @builtins.classmethod
@@ -7807,12 +8044,18 @@ class event_SearchQuery(ConjureUnionType):
7807
8044
  _workbook: Optional[str] = None
7808
8045
  _data_review: Optional[str] = None
7809
8046
  _origin_type: Optional["event_SearchEventOriginType"] = None
8047
+ _origin_types: Optional["event_OriginTypesFilter"] = None
7810
8048
  _data_review_check: Optional[str] = None
7811
8049
  _disposition_status: Optional["event_EventDispositionStatus"] = None
8050
+ _disposition_statuses: Optional[List["event_EventDispositionStatus"]] = None
7812
8051
  _priority: Optional["scout_api_Priority"] = None
8052
+ _priorities: Optional[List["scout_api_Priority"]] = None
7813
8053
  _assignee: Optional[str] = None
8054
+ _assignees: Optional["event_AssigneesFilter"] = None
7814
8055
  _event_type: Optional["event_EventType"] = None
8056
+ _event_types: Optional[List["event_EventType"]] = None
7815
8057
  _created_by: Optional[str] = None
8058
+ _created_by_any_of: Optional[List[str]] = None
7816
8059
  _label: Optional[str] = None
7817
8060
  _labels: Optional["scout_rids_api_LabelsFilter"] = None
7818
8061
  _property: Optional["api_Property"] = None
@@ -7839,12 +8082,18 @@ class event_SearchQuery(ConjureUnionType):
7839
8082
  'workbook': ConjureFieldDefinition('workbook', scout_rids_api_NotebookRid),
7840
8083
  'data_review': ConjureFieldDefinition('dataReview', scout_rids_api_DataReviewRid),
7841
8084
  'origin_type': ConjureFieldDefinition('originType', event_SearchEventOriginType),
8085
+ 'origin_types': ConjureFieldDefinition('originTypes', event_OriginTypesFilter),
7842
8086
  'data_review_check': ConjureFieldDefinition('dataReviewCheck', scout_rids_api_CheckRid),
7843
8087
  'disposition_status': ConjureFieldDefinition('dispositionStatus', event_EventDispositionStatus),
8088
+ 'disposition_statuses': ConjureFieldDefinition('dispositionStatuses', List[event_EventDispositionStatus]),
7844
8089
  'priority': ConjureFieldDefinition('priority', scout_api_Priority),
8090
+ 'priorities': ConjureFieldDefinition('priorities', List[scout_api_Priority]),
7845
8091
  'assignee': ConjureFieldDefinition('assignee', scout_rids_api_UserRid),
8092
+ 'assignees': ConjureFieldDefinition('assignees', event_AssigneesFilter),
7846
8093
  'event_type': ConjureFieldDefinition('eventType', event_EventType),
8094
+ 'event_types': ConjureFieldDefinition('eventTypes', List[event_EventType]),
7847
8095
  'created_by': ConjureFieldDefinition('createdBy', scout_rids_api_UserRid),
8096
+ 'created_by_any_of': ConjureFieldDefinition('createdByAnyOf', List[scout_rids_api_UserRid]),
7848
8097
  'label': ConjureFieldDefinition('label', api_Label),
7849
8098
  'labels': ConjureFieldDefinition('labels', scout_rids_api_LabelsFilter),
7850
8099
  'property': ConjureFieldDefinition('property', api_Property),
@@ -7871,12 +8120,18 @@ class event_SearchQuery(ConjureUnionType):
7871
8120
  workbook: Optional[str] = None,
7872
8121
  data_review: Optional[str] = None,
7873
8122
  origin_type: Optional["event_SearchEventOriginType"] = None,
8123
+ origin_types: Optional["event_OriginTypesFilter"] = None,
7874
8124
  data_review_check: Optional[str] = None,
7875
8125
  disposition_status: Optional["event_EventDispositionStatus"] = None,
8126
+ disposition_statuses: Optional[List["event_EventDispositionStatus"]] = None,
7876
8127
  priority: Optional["scout_api_Priority"] = None,
8128
+ priorities: Optional[List["scout_api_Priority"]] = None,
7877
8129
  assignee: Optional[str] = None,
8130
+ assignees: Optional["event_AssigneesFilter"] = None,
7878
8131
  event_type: Optional["event_EventType"] = None,
8132
+ event_types: Optional[List["event_EventType"]] = None,
7879
8133
  created_by: Optional[str] = None,
8134
+ created_by_any_of: Optional[List[str]] = None,
7880
8135
  label: Optional[str] = None,
7881
8136
  labels: Optional["scout_rids_api_LabelsFilter"] = None,
7882
8137
  property: Optional["api_Property"] = None,
@@ -7891,7 +8146,7 @@ class event_SearchQuery(ConjureUnionType):
7891
8146
  type_of_union: Optional[str] = None
7892
8147
  ) -> None:
7893
8148
  if type_of_union is None:
7894
- if (archived is not None) + (search_text is not None) + (after is not None) + (before is not None) + (advanced_time_filter is not None) + (asset is not None) + (assets is not None) + (template is not None) + (workbook is not None) + (data_review is not None) + (origin_type is not None) + (data_review_check is not None) + (disposition_status is not None) + (priority is not None) + (assignee is not None) + (event_type is not None) + (created_by is not None) + (label is not None) + (labels is not None) + (property is not None) + (properties is not None) + (and_ is not None) + (or_ is not None) + (not_ is not None) + (workspace is not None) + (procedure is not None) + (procedure_execution is not None) + (step_id is not None) != 1:
8149
+ if (archived is not None) + (search_text is not None) + (after is not None) + (before is not None) + (advanced_time_filter is not None) + (asset is not None) + (assets is not None) + (template is not None) + (workbook is not None) + (data_review is not None) + (origin_type is not None) + (origin_types is not None) + (data_review_check is not None) + (disposition_status is not None) + (disposition_statuses is not None) + (priority is not None) + (priorities is not None) + (assignee is not None) + (assignees is not None) + (event_type is not None) + (event_types is not None) + (created_by is not None) + (created_by_any_of is not None) + (label is not None) + (labels is not None) + (property is not None) + (properties is not None) + (and_ is not None) + (or_ is not None) + (not_ is not None) + (workspace is not None) + (procedure is not None) + (procedure_execution is not None) + (step_id is not None) != 1:
7895
8150
  raise ValueError('a union must contain a single member')
7896
8151
 
7897
8152
  if archived is not None:
@@ -7927,24 +8182,42 @@ class event_SearchQuery(ConjureUnionType):
7927
8182
  if origin_type is not None:
7928
8183
  self._origin_type = origin_type
7929
8184
  self._type = 'originType'
8185
+ if origin_types is not None:
8186
+ self._origin_types = origin_types
8187
+ self._type = 'originTypes'
7930
8188
  if data_review_check is not None:
7931
8189
  self._data_review_check = data_review_check
7932
8190
  self._type = 'dataReviewCheck'
7933
8191
  if disposition_status is not None:
7934
8192
  self._disposition_status = disposition_status
7935
8193
  self._type = 'dispositionStatus'
8194
+ if disposition_statuses is not None:
8195
+ self._disposition_statuses = disposition_statuses
8196
+ self._type = 'dispositionStatuses'
7936
8197
  if priority is not None:
7937
8198
  self._priority = priority
7938
8199
  self._type = 'priority'
8200
+ if priorities is not None:
8201
+ self._priorities = priorities
8202
+ self._type = 'priorities'
7939
8203
  if assignee is not None:
7940
8204
  self._assignee = assignee
7941
8205
  self._type = 'assignee'
8206
+ if assignees is not None:
8207
+ self._assignees = assignees
8208
+ self._type = 'assignees'
7942
8209
  if event_type is not None:
7943
8210
  self._event_type = event_type
7944
8211
  self._type = 'eventType'
8212
+ if event_types is not None:
8213
+ self._event_types = event_types
8214
+ self._type = 'eventTypes'
7945
8215
  if created_by is not None:
7946
8216
  self._created_by = created_by
7947
8217
  self._type = 'createdBy'
8218
+ if created_by_any_of is not None:
8219
+ self._created_by_any_of = created_by_any_of
8220
+ self._type = 'createdByAnyOf'
7948
8221
  if label is not None:
7949
8222
  self._label = label
7950
8223
  self._type = 'label'
@@ -8034,6 +8307,11 @@ class event_SearchQuery(ConjureUnionType):
8034
8307
  raise ValueError('a union value must not be None')
8035
8308
  self._origin_type = origin_type
8036
8309
  self._type = 'originType'
8310
+ elif type_of_union == 'originTypes':
8311
+ if origin_types is None:
8312
+ raise ValueError('a union value must not be None')
8313
+ self._origin_types = origin_types
8314
+ self._type = 'originTypes'
8037
8315
  elif type_of_union == 'dataReviewCheck':
8038
8316
  if data_review_check is None:
8039
8317
  raise ValueError('a union value must not be None')
@@ -8044,26 +8322,51 @@ class event_SearchQuery(ConjureUnionType):
8044
8322
  raise ValueError('a union value must not be None')
8045
8323
  self._disposition_status = disposition_status
8046
8324
  self._type = 'dispositionStatus'
8325
+ elif type_of_union == 'dispositionStatuses':
8326
+ if disposition_statuses is None:
8327
+ raise ValueError('a union value must not be None')
8328
+ self._disposition_statuses = disposition_statuses
8329
+ self._type = 'dispositionStatuses'
8047
8330
  elif type_of_union == 'priority':
8048
8331
  if priority is None:
8049
8332
  raise ValueError('a union value must not be None')
8050
8333
  self._priority = priority
8051
8334
  self._type = 'priority'
8335
+ elif type_of_union == 'priorities':
8336
+ if priorities is None:
8337
+ raise ValueError('a union value must not be None')
8338
+ self._priorities = priorities
8339
+ self._type = 'priorities'
8052
8340
  elif type_of_union == 'assignee':
8053
8341
  if assignee is None:
8054
8342
  raise ValueError('a union value must not be None')
8055
8343
  self._assignee = assignee
8056
8344
  self._type = 'assignee'
8345
+ elif type_of_union == 'assignees':
8346
+ if assignees is None:
8347
+ raise ValueError('a union value must not be None')
8348
+ self._assignees = assignees
8349
+ self._type = 'assignees'
8057
8350
  elif type_of_union == 'eventType':
8058
8351
  if event_type is None:
8059
8352
  raise ValueError('a union value must not be None')
8060
8353
  self._event_type = event_type
8061
8354
  self._type = 'eventType'
8355
+ elif type_of_union == 'eventTypes':
8356
+ if event_types is None:
8357
+ raise ValueError('a union value must not be None')
8358
+ self._event_types = event_types
8359
+ self._type = 'eventTypes'
8062
8360
  elif type_of_union == 'createdBy':
8063
8361
  if created_by is None:
8064
8362
  raise ValueError('a union value must not be None')
8065
8363
  self._created_by = created_by
8066
8364
  self._type = 'createdBy'
8365
+ elif type_of_union == 'createdByAnyOf':
8366
+ if created_by_any_of is None:
8367
+ raise ValueError('a union value must not be None')
8368
+ self._created_by_any_of = created_by_any_of
8369
+ self._type = 'createdByAnyOf'
8067
8370
  elif type_of_union == 'label':
8068
8371
  if label is None:
8069
8372
  raise ValueError('a union value must not be None')
@@ -8170,6 +8473,10 @@ This includes events that start before, but end after this time.
8170
8473
  def origin_type(self) -> Optional["event_SearchEventOriginType"]:
8171
8474
  return self._origin_type
8172
8475
 
8476
+ @builtins.property
8477
+ def origin_types(self) -> Optional["event_OriginTypesFilter"]:
8478
+ return self._origin_types
8479
+
8173
8480
  @builtins.property
8174
8481
  def data_review_check(self) -> Optional[str]:
8175
8482
  return self._data_review_check
@@ -8178,22 +8485,42 @@ This includes events that start before, but end after this time.
8178
8485
  def disposition_status(self) -> Optional["event_EventDispositionStatus"]:
8179
8486
  return self._disposition_status
8180
8487
 
8488
+ @builtins.property
8489
+ def disposition_statuses(self) -> Optional[List["event_EventDispositionStatus"]]:
8490
+ return self._disposition_statuses
8491
+
8181
8492
  @builtins.property
8182
8493
  def priority(self) -> Optional["scout_api_Priority"]:
8183
8494
  return self._priority
8184
8495
 
8496
+ @builtins.property
8497
+ def priorities(self) -> Optional[List["scout_api_Priority"]]:
8498
+ return self._priorities
8499
+
8185
8500
  @builtins.property
8186
8501
  def assignee(self) -> Optional[str]:
8187
8502
  return self._assignee
8188
8503
 
8504
+ @builtins.property
8505
+ def assignees(self) -> Optional["event_AssigneesFilter"]:
8506
+ return self._assignees
8507
+
8189
8508
  @builtins.property
8190
8509
  def event_type(self) -> Optional["event_EventType"]:
8191
8510
  return self._event_type
8192
8511
 
8512
+ @builtins.property
8513
+ def event_types(self) -> Optional[List["event_EventType"]]:
8514
+ return self._event_types
8515
+
8193
8516
  @builtins.property
8194
8517
  def created_by(self) -> Optional[str]:
8195
8518
  return self._created_by
8196
8519
 
8520
+ @builtins.property
8521
+ def created_by_any_of(self) -> Optional[List[str]]:
8522
+ return self._created_by_any_of
8523
+
8197
8524
  @builtins.property
8198
8525
  def label(self) -> Optional[str]:
8199
8526
  return self._label
@@ -8263,18 +8590,30 @@ This includes events that start before, but end after this time.
8263
8590
  return visitor._data_review(self.data_review)
8264
8591
  if self._type == 'originType' and self.origin_type is not None:
8265
8592
  return visitor._origin_type(self.origin_type)
8593
+ if self._type == 'originTypes' and self.origin_types is not None:
8594
+ return visitor._origin_types(self.origin_types)
8266
8595
  if self._type == 'dataReviewCheck' and self.data_review_check is not None:
8267
8596
  return visitor._data_review_check(self.data_review_check)
8268
8597
  if self._type == 'dispositionStatus' and self.disposition_status is not None:
8269
8598
  return visitor._disposition_status(self.disposition_status)
8599
+ if self._type == 'dispositionStatuses' and self.disposition_statuses is not None:
8600
+ return visitor._disposition_statuses(self.disposition_statuses)
8270
8601
  if self._type == 'priority' and self.priority is not None:
8271
8602
  return visitor._priority(self.priority)
8603
+ if self._type == 'priorities' and self.priorities is not None:
8604
+ return visitor._priorities(self.priorities)
8272
8605
  if self._type == 'assignee' and self.assignee is not None:
8273
8606
  return visitor._assignee(self.assignee)
8607
+ if self._type == 'assignees' and self.assignees is not None:
8608
+ return visitor._assignees(self.assignees)
8274
8609
  if self._type == 'eventType' and self.event_type is not None:
8275
8610
  return visitor._event_type(self.event_type)
8611
+ if self._type == 'eventTypes' and self.event_types is not None:
8612
+ return visitor._event_types(self.event_types)
8276
8613
  if self._type == 'createdBy' and self.created_by is not None:
8277
8614
  return visitor._created_by(self.created_by)
8615
+ if self._type == 'createdByAnyOf' and self.created_by_any_of is not None:
8616
+ return visitor._created_by_any_of(self.created_by_any_of)
8278
8617
  if self._type == 'label' and self.label is not None:
8279
8618
  return visitor._label(self.label)
8280
8619
  if self._type == 'labels' and self.labels is not None:
@@ -8350,6 +8689,10 @@ class event_SearchQueryVisitor:
8350
8689
  def _origin_type(self, origin_type: "event_SearchEventOriginType") -> Any:
8351
8690
  pass
8352
8691
 
8692
+ @abstractmethod
8693
+ def _origin_types(self, origin_types: "event_OriginTypesFilter") -> Any:
8694
+ pass
8695
+
8353
8696
  @abstractmethod
8354
8697
  def _data_review_check(self, data_review_check: str) -> Any:
8355
8698
  pass
@@ -8358,22 +8701,42 @@ class event_SearchQueryVisitor:
8358
8701
  def _disposition_status(self, disposition_status: "event_EventDispositionStatus") -> Any:
8359
8702
  pass
8360
8703
 
8704
+ @abstractmethod
8705
+ def _disposition_statuses(self, disposition_statuses: List["event_EventDispositionStatus"]) -> Any:
8706
+ pass
8707
+
8361
8708
  @abstractmethod
8362
8709
  def _priority(self, priority: "scout_api_Priority") -> Any:
8363
8710
  pass
8364
8711
 
8712
+ @abstractmethod
8713
+ def _priorities(self, priorities: List["scout_api_Priority"]) -> Any:
8714
+ pass
8715
+
8365
8716
  @abstractmethod
8366
8717
  def _assignee(self, assignee: str) -> Any:
8367
8718
  pass
8368
8719
 
8720
+ @abstractmethod
8721
+ def _assignees(self, assignees: "event_AssigneesFilter") -> Any:
8722
+ pass
8723
+
8369
8724
  @abstractmethod
8370
8725
  def _event_type(self, event_type: "event_EventType") -> Any:
8371
8726
  pass
8372
8727
 
8728
+ @abstractmethod
8729
+ def _event_types(self, event_types: List["event_EventType"]) -> Any:
8730
+ pass
8731
+
8373
8732
  @abstractmethod
8374
8733
  def _created_by(self, created_by: str) -> Any:
8375
8734
  pass
8376
8735
 
8736
+ @abstractmethod
8737
+ def _created_by_any_of(self, created_by_any_of: List[str]) -> Any:
8738
+ pass
8739
+
8377
8740
  @abstractmethod
8378
8741
  def _label(self, label: str) -> Any:
8379
8742
  pass
@@ -79531,6 +79894,8 @@ class scout_run_api_CreateRunRequest(ConjureBeanType):
79531
79894
 
79532
79895
  @builtins.property
79533
79896
  def title(self) -> str:
79897
+ """This must be non-empty.
79898
+ """
79534
79899
  return self._title
79535
79900
 
79536
79901
  @builtins.property
@@ -79563,6 +79928,9 @@ class scout_run_api_CreateRunRequest(ConjureBeanType):
79563
79928
 
79564
79929
  @builtins.property
79565
79930
  def data_sources(self) -> Dict[str, "scout_run_api_CreateRunDataSource"]:
79931
+ """The data sources to include in this run. If asset or assets is provided, this field
79932
+ will be ignored. Exactly one of data source(s) or asset(s) must be provided for a run.
79933
+ """
79566
79934
  return self._data_sources
79567
79935
 
79568
79936
  @builtins.property
@@ -79575,6 +79943,10 @@ class scout_run_api_CreateRunRequest(ConjureBeanType):
79575
79943
 
79576
79944
  @builtins.property
79577
79945
  def assets(self) -> List[str]:
79946
+ """The assets to associate with the run. If this is specified, the deprecated asset field
79947
+ is ignored and least one asset must be specified. Exactly one of data source(s) or asset(s)
79948
+ must be provided for a run.
79949
+ """
79578
79950
  return self._assets
79579
79951
 
79580
79952
  @builtins.property
@@ -81686,12 +82058,12 @@ class scout_run_api_UpdateRunRequest(ConjureBeanType):
81686
82058
  'data_sources': ConjureFieldDefinition('dataSources', OptionalTypeWrapper[Dict[scout_api_DataSourceRefName, scout_run_api_CreateRunDataSource]]),
81687
82059
  'attachments': ConjureFieldDefinition('attachments', OptionalTypeWrapper[List[api_rids_AttachmentRid]]),
81688
82060
  'asset': ConjureFieldDefinition('asset', OptionalTypeWrapper[scout_rids_api_AssetRid]),
81689
- 'assets': ConjureFieldDefinition('assets', List[scout_rids_api_AssetRid])
82061
+ 'assets': ConjureFieldDefinition('assets', OptionalTypeWrapper[List[scout_rids_api_AssetRid]])
81690
82062
  }
81691
82063
 
81692
82064
  __slots__: List[str] = ['_title', '_description', '_start_time', '_end_time', '_properties', '_labels', '_links', '_run_prefix', '_data_sources', '_attachments', '_asset', '_assets']
81693
82065
 
81694
- def __init__(self, assets: List[str], asset: Optional[str] = None, attachments: Optional[List[str]] = None, data_sources: Optional[Dict[str, "scout_run_api_CreateRunDataSource"]] = None, description: Optional[str] = None, end_time: Optional["scout_run_api_UtcTimestamp"] = None, labels: Optional[List[str]] = None, links: Optional[List["scout_run_api_Link"]] = None, properties: Optional[Dict[str, str]] = None, run_prefix: Optional[str] = None, start_time: Optional["scout_run_api_UtcTimestamp"] = None, title: Optional[str] = None) -> None:
82066
+ def __init__(self, asset: Optional[str] = None, assets: Optional[List[str]] = None, attachments: Optional[List[str]] = None, data_sources: Optional[Dict[str, "scout_run_api_CreateRunDataSource"]] = None, description: Optional[str] = None, end_time: Optional["scout_run_api_UtcTimestamp"] = None, labels: Optional[List[str]] = None, links: Optional[List["scout_run_api_Link"]] = None, properties: Optional[Dict[str, str]] = None, run_prefix: Optional[str] = None, start_time: Optional["scout_run_api_UtcTimestamp"] = None, title: Optional[str] = None) -> None:
81695
82067
  self._title = title
81696
82068
  self._description = description
81697
82069
  self._start_time = start_time
@@ -81741,6 +82113,9 @@ class scout_run_api_UpdateRunRequest(ConjureBeanType):
81741
82113
 
81742
82114
  @builtins.property
81743
82115
  def data_sources(self) -> Optional[Dict[str, "scout_run_api_CreateRunDataSource"]]:
82116
+ """The data sources to include in this run. If asset or assets is provided, this field
82117
+ will be ignored. Exactly one of data source(s) or asset(s) must be provided for a run.
82118
+ """
81744
82119
  return self._data_sources
81745
82120
 
81746
82121
  @builtins.property
@@ -81752,7 +82127,11 @@ class scout_run_api_UpdateRunRequest(ConjureBeanType):
81752
82127
  return self._asset
81753
82128
 
81754
82129
  @builtins.property
81755
- def assets(self) -> List[str]:
82130
+ def assets(self) -> Optional[List[str]]:
82131
+ """The assets to associate with the run. If this is specified, the deprecated asset field
82132
+ is ignored and at least one asset must be specified. Exactly one of data source(s) or
82133
+ asset(s) must be provided for a run.
82134
+ """
81756
82135
  return self._assets
81757
82136
 
81758
82137
 
@@ -82049,6 +82428,132 @@ scout_savedviews_SavedViewService.__qualname__ = "SavedViewService"
82049
82428
  scout_savedviews_SavedViewService.__module__ = "nominal_api.scout_savedviews"
82050
82429
 
82051
82430
 
82431
+ class scout_savedviews_api_AssetMetricColumn(ConjureBeanType):
82432
+
82433
+ @builtins.classmethod
82434
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
82435
+ return {
82436
+ 'metadata': ConjureFieldDefinition('metadata', scout_savedviews_api_MetricColumnMetadata),
82437
+ 'time_range': ConjureFieldDefinition('timeRange', scout_savedviews_api_AssetMetricColumnTimeRange),
82438
+ 'aggregation': ConjureFieldDefinition('aggregation', scout_savedviews_api_MetricColumnAggregation),
82439
+ 'data': ConjureFieldDefinition('data', scout_savedviews_api_MetricColumnData),
82440
+ 'style': ConjureFieldDefinition('style', OptionalTypeWrapper[scout_savedviews_api_MetricColumnStyle])
82441
+ }
82442
+
82443
+ __slots__: List[str] = ['_metadata', '_time_range', '_aggregation', '_data', '_style']
82444
+
82445
+ def __init__(self, aggregation: "scout_savedviews_api_MetricColumnAggregation", data: "scout_savedviews_api_MetricColumnData", metadata: "scout_savedviews_api_MetricColumnMetadata", time_range: "scout_savedviews_api_AssetMetricColumnTimeRange", style: Optional["scout_savedviews_api_MetricColumnStyle"] = None) -> None:
82446
+ self._metadata = metadata
82447
+ self._time_range = time_range
82448
+ self._aggregation = aggregation
82449
+ self._data = data
82450
+ self._style = style
82451
+
82452
+ @builtins.property
82453
+ def metadata(self) -> "scout_savedviews_api_MetricColumnMetadata":
82454
+ return self._metadata
82455
+
82456
+ @builtins.property
82457
+ def time_range(self) -> "scout_savedviews_api_AssetMetricColumnTimeRange":
82458
+ return self._time_range
82459
+
82460
+ @builtins.property
82461
+ def aggregation(self) -> "scout_savedviews_api_MetricColumnAggregation":
82462
+ return self._aggregation
82463
+
82464
+ @builtins.property
82465
+ def data(self) -> "scout_savedviews_api_MetricColumnData":
82466
+ return self._data
82467
+
82468
+ @builtins.property
82469
+ def style(self) -> Optional["scout_savedviews_api_MetricColumnStyle"]:
82470
+ return self._style
82471
+
82472
+
82473
+ scout_savedviews_api_AssetMetricColumn.__name__ = "AssetMetricColumn"
82474
+ scout_savedviews_api_AssetMetricColumn.__qualname__ = "AssetMetricColumn"
82475
+ scout_savedviews_api_AssetMetricColumn.__module__ = "nominal_api.scout_savedviews_api"
82476
+
82477
+
82478
+ class scout_savedviews_api_AssetMetricColumnTimeRange(ConjureUnionType):
82479
+ _most_recent_run: Optional["scout_savedviews_api_MostRecentRun"] = None
82480
+
82481
+ @builtins.classmethod
82482
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
82483
+ return {
82484
+ 'most_recent_run': ConjureFieldDefinition('mostRecentRun', scout_savedviews_api_MostRecentRun)
82485
+ }
82486
+
82487
+ def __init__(
82488
+ self,
82489
+ most_recent_run: Optional["scout_savedviews_api_MostRecentRun"] = None,
82490
+ type_of_union: Optional[str] = None
82491
+ ) -> None:
82492
+ if type_of_union is None:
82493
+ if (most_recent_run is not None) != 1:
82494
+ raise ValueError('a union must contain a single member')
82495
+
82496
+ if most_recent_run is not None:
82497
+ self._most_recent_run = most_recent_run
82498
+ self._type = 'mostRecentRun'
82499
+
82500
+ elif type_of_union == 'mostRecentRun':
82501
+ if most_recent_run is None:
82502
+ raise ValueError('a union value must not be None')
82503
+ self._most_recent_run = most_recent_run
82504
+ self._type = 'mostRecentRun'
82505
+
82506
+ @builtins.property
82507
+ def most_recent_run(self) -> Optional["scout_savedviews_api_MostRecentRun"]:
82508
+ return self._most_recent_run
82509
+
82510
+ def accept(self, visitor) -> Any:
82511
+ if not isinstance(visitor, scout_savedviews_api_AssetMetricColumnTimeRangeVisitor):
82512
+ raise ValueError('{} is not an instance of scout_savedviews_api_AssetMetricColumnTimeRangeVisitor'.format(visitor.__class__.__name__))
82513
+ if self._type == 'mostRecentRun' and self.most_recent_run is not None:
82514
+ return visitor._most_recent_run(self.most_recent_run)
82515
+
82516
+
82517
+ scout_savedviews_api_AssetMetricColumnTimeRange.__name__ = "AssetMetricColumnTimeRange"
82518
+ scout_savedviews_api_AssetMetricColumnTimeRange.__qualname__ = "AssetMetricColumnTimeRange"
82519
+ scout_savedviews_api_AssetMetricColumnTimeRange.__module__ = "nominal_api.scout_savedviews_api"
82520
+
82521
+
82522
+ class scout_savedviews_api_AssetMetricColumnTimeRangeVisitor:
82523
+
82524
+ @abstractmethod
82525
+ def _most_recent_run(self, most_recent_run: "scout_savedviews_api_MostRecentRun") -> Any:
82526
+ pass
82527
+
82528
+
82529
+ scout_savedviews_api_AssetMetricColumnTimeRangeVisitor.__name__ = "AssetMetricColumnTimeRangeVisitor"
82530
+ scout_savedviews_api_AssetMetricColumnTimeRangeVisitor.__qualname__ = "AssetMetricColumnTimeRangeVisitor"
82531
+ scout_savedviews_api_AssetMetricColumnTimeRangeVisitor.__module__ = "nominal_api.scout_savedviews_api"
82532
+
82533
+
82534
+ class scout_savedviews_api_AssetMetricColumns(ConjureBeanType):
82535
+
82536
+ @builtins.classmethod
82537
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
82538
+ return {
82539
+ 'metric_columns': ConjureFieldDefinition('metricColumns', Dict[scout_savedviews_api_ColumnId, scout_savedviews_api_AssetMetricColumn])
82540
+ }
82541
+
82542
+ __slots__: List[str] = ['_metric_columns']
82543
+
82544
+ def __init__(self, metric_columns: Dict[str, "scout_savedviews_api_AssetMetricColumn"]) -> None:
82545
+ self._metric_columns = metric_columns
82546
+
82547
+ @builtins.property
82548
+ def metric_columns(self) -> Dict[str, "scout_savedviews_api_AssetMetricColumn"]:
82549
+ return self._metric_columns
82550
+
82551
+
82552
+ scout_savedviews_api_AssetMetricColumns.__name__ = "AssetMetricColumns"
82553
+ scout_savedviews_api_AssetMetricColumns.__qualname__ = "AssetMetricColumns"
82554
+ scout_savedviews_api_AssetMetricColumns.__module__ = "nominal_api.scout_savedviews_api"
82555
+
82556
+
82052
82557
  class scout_savedviews_api_AssetSearchState(ConjureBeanType):
82053
82558
 
82054
82559
  @builtins.classmethod
@@ -82314,6 +82819,269 @@ scout_savedviews_api_GetSavedViewResponse.__qualname__ = "GetSavedViewResponse"
82314
82819
  scout_savedviews_api_GetSavedViewResponse.__module__ = "nominal_api.scout_savedviews_api"
82315
82820
 
82316
82821
 
82822
+ class scout_savedviews_api_MetricColumnAggregation(ConjureEnumType):
82823
+
82824
+ TOTAL_COUNT = 'TOTAL_COUNT'
82825
+ '''TOTAL_COUNT'''
82826
+ TOTAL_DURATION = 'TOTAL_DURATION'
82827
+ '''TOTAL_DURATION'''
82828
+ UNKNOWN = 'UNKNOWN'
82829
+ '''UNKNOWN'''
82830
+
82831
+ def __reduce_ex__(self, proto):
82832
+ return self.__class__, (self.name,)
82833
+
82834
+
82835
+ scout_savedviews_api_MetricColumnAggregation.__name__ = "MetricColumnAggregation"
82836
+ scout_savedviews_api_MetricColumnAggregation.__qualname__ = "MetricColumnAggregation"
82837
+ scout_savedviews_api_MetricColumnAggregation.__module__ = "nominal_api.scout_savedviews_api"
82838
+
82839
+
82840
+ class scout_savedviews_api_MetricColumnData(ConjureUnionType):
82841
+ _event: Optional["event_SearchQuery"] = None
82842
+
82843
+ @builtins.classmethod
82844
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
82845
+ return {
82846
+ 'event': ConjureFieldDefinition('event', event_SearchQuery)
82847
+ }
82848
+
82849
+ def __init__(
82850
+ self,
82851
+ event: Optional["event_SearchQuery"] = None,
82852
+ type_of_union: Optional[str] = None
82853
+ ) -> None:
82854
+ if type_of_union is None:
82855
+ if (event is not None) != 1:
82856
+ raise ValueError('a union must contain a single member')
82857
+
82858
+ if event is not None:
82859
+ self._event = event
82860
+ self._type = 'event'
82861
+
82862
+ elif type_of_union == 'event':
82863
+ if event is None:
82864
+ raise ValueError('a union value must not be None')
82865
+ self._event = event
82866
+ self._type = 'event'
82867
+
82868
+ @builtins.property
82869
+ def event(self) -> Optional["event_SearchQuery"]:
82870
+ return self._event
82871
+
82872
+ def accept(self, visitor) -> Any:
82873
+ if not isinstance(visitor, scout_savedviews_api_MetricColumnDataVisitor):
82874
+ raise ValueError('{} is not an instance of scout_savedviews_api_MetricColumnDataVisitor'.format(visitor.__class__.__name__))
82875
+ if self._type == 'event' and self.event is not None:
82876
+ return visitor._event(self.event)
82877
+
82878
+
82879
+ scout_savedviews_api_MetricColumnData.__name__ = "MetricColumnData"
82880
+ scout_savedviews_api_MetricColumnData.__qualname__ = "MetricColumnData"
82881
+ scout_savedviews_api_MetricColumnData.__module__ = "nominal_api.scout_savedviews_api"
82882
+
82883
+
82884
+ class scout_savedviews_api_MetricColumnDataVisitor:
82885
+
82886
+ @abstractmethod
82887
+ def _event(self, event: "event_SearchQuery") -> Any:
82888
+ pass
82889
+
82890
+
82891
+ scout_savedviews_api_MetricColumnDataVisitor.__name__ = "MetricColumnDataVisitor"
82892
+ scout_savedviews_api_MetricColumnDataVisitor.__qualname__ = "MetricColumnDataVisitor"
82893
+ scout_savedviews_api_MetricColumnDataVisitor.__module__ = "nominal_api.scout_savedviews_api"
82894
+
82895
+
82896
+ class scout_savedviews_api_MetricColumnMetadata(ConjureBeanType):
82897
+
82898
+ @builtins.classmethod
82899
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
82900
+ return {
82901
+ 'title': ConjureFieldDefinition('title', str),
82902
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
82903
+ 'symbol': ConjureFieldDefinition('symbol', OptionalTypeWrapper[scout_api_Symbol])
82904
+ }
82905
+
82906
+ __slots__: List[str] = ['_title', '_description', '_symbol']
82907
+
82908
+ def __init__(self, title: str, description: Optional[str] = None, symbol: Optional["scout_api_Symbol"] = None) -> None:
82909
+ self._title = title
82910
+ self._description = description
82911
+ self._symbol = symbol
82912
+
82913
+ @builtins.property
82914
+ def title(self) -> str:
82915
+ return self._title
82916
+
82917
+ @builtins.property
82918
+ def description(self) -> Optional[str]:
82919
+ return self._description
82920
+
82921
+ @builtins.property
82922
+ def symbol(self) -> Optional["scout_api_Symbol"]:
82923
+ return self._symbol
82924
+
82925
+
82926
+ scout_savedviews_api_MetricColumnMetadata.__name__ = "MetricColumnMetadata"
82927
+ scout_savedviews_api_MetricColumnMetadata.__qualname__ = "MetricColumnMetadata"
82928
+ scout_savedviews_api_MetricColumnMetadata.__module__ = "nominal_api.scout_savedviews_api"
82929
+
82930
+
82931
+ class scout_savedviews_api_MetricColumnStyle(ConjureBeanType):
82932
+
82933
+ @builtins.classmethod
82934
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
82935
+ return {
82936
+ 'type': ConjureFieldDefinition('type', scout_savedviews_api_MetricColumnThresholdType),
82937
+ 'value': ConjureFieldDefinition('value', OptionalTypeWrapper[List[scout_savedviews_api_MetricColumnThreshold]])
82938
+ }
82939
+
82940
+ __slots__: List[str] = ['_type', '_value']
82941
+
82942
+ def __init__(self, type: "scout_savedviews_api_MetricColumnThresholdType", value: Optional[List["scout_savedviews_api_MetricColumnThreshold"]] = None) -> None:
82943
+ self._type = type
82944
+ self._value = value
82945
+
82946
+ @builtins.property
82947
+ def type(self) -> "scout_savedviews_api_MetricColumnThresholdType":
82948
+ return self._type
82949
+
82950
+ @builtins.property
82951
+ def value(self) -> Optional[List["scout_savedviews_api_MetricColumnThreshold"]]:
82952
+ return self._value
82953
+
82954
+
82955
+ scout_savedviews_api_MetricColumnStyle.__name__ = "MetricColumnStyle"
82956
+ scout_savedviews_api_MetricColumnStyle.__qualname__ = "MetricColumnStyle"
82957
+ scout_savedviews_api_MetricColumnStyle.__module__ = "nominal_api.scout_savedviews_api"
82958
+
82959
+
82960
+ class scout_savedviews_api_MetricColumnThreshold(ConjureBeanType):
82961
+
82962
+ @builtins.classmethod
82963
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
82964
+ return {
82965
+ 'value': ConjureFieldDefinition('value', float),
82966
+ 'color': ConjureFieldDefinition('color', str),
82967
+ 'label': ConjureFieldDefinition('label', OptionalTypeWrapper[str])
82968
+ }
82969
+
82970
+ __slots__: List[str] = ['_value', '_color', '_label']
82971
+
82972
+ def __init__(self, color: str, value: float, label: Optional[str] = None) -> None:
82973
+ self._value = value
82974
+ self._color = color
82975
+ self._label = label
82976
+
82977
+ @builtins.property
82978
+ def value(self) -> float:
82979
+ return self._value
82980
+
82981
+ @builtins.property
82982
+ def color(self) -> str:
82983
+ return self._color
82984
+
82985
+ @builtins.property
82986
+ def label(self) -> Optional[str]:
82987
+ return self._label
82988
+
82989
+
82990
+ scout_savedviews_api_MetricColumnThreshold.__name__ = "MetricColumnThreshold"
82991
+ scout_savedviews_api_MetricColumnThreshold.__qualname__ = "MetricColumnThreshold"
82992
+ scout_savedviews_api_MetricColumnThreshold.__module__ = "nominal_api.scout_savedviews_api"
82993
+
82994
+
82995
+ class scout_savedviews_api_MetricColumnThresholdType(ConjureEnumType):
82996
+
82997
+ RAW = 'RAW'
82998
+ '''RAW'''
82999
+ BAR = 'BAR'
83000
+ '''BAR'''
83001
+ UNKNOWN = 'UNKNOWN'
83002
+ '''UNKNOWN'''
83003
+
83004
+ def __reduce_ex__(self, proto):
83005
+ return self.__class__, (self.name,)
83006
+
83007
+
83008
+ scout_savedviews_api_MetricColumnThresholdType.__name__ = "MetricColumnThresholdType"
83009
+ scout_savedviews_api_MetricColumnThresholdType.__qualname__ = "MetricColumnThresholdType"
83010
+ scout_savedviews_api_MetricColumnThresholdType.__module__ = "nominal_api.scout_savedviews_api"
83011
+
83012
+
83013
+ class scout_savedviews_api_MetricColumns(ConjureUnionType):
83014
+ _asset: Optional["scout_savedviews_api_AssetMetricColumns"] = None
83015
+
83016
+ @builtins.classmethod
83017
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
83018
+ return {
83019
+ 'asset': ConjureFieldDefinition('asset', scout_savedviews_api_AssetMetricColumns)
83020
+ }
83021
+
83022
+ def __init__(
83023
+ self,
83024
+ asset: Optional["scout_savedviews_api_AssetMetricColumns"] = None,
83025
+ type_of_union: Optional[str] = None
83026
+ ) -> None:
83027
+ if type_of_union is None:
83028
+ if (asset is not None) != 1:
83029
+ raise ValueError('a union must contain a single member')
83030
+
83031
+ if asset is not None:
83032
+ self._asset = asset
83033
+ self._type = 'asset'
83034
+
83035
+ elif type_of_union == 'asset':
83036
+ if asset is None:
83037
+ raise ValueError('a union value must not be None')
83038
+ self._asset = asset
83039
+ self._type = 'asset'
83040
+
83041
+ @builtins.property
83042
+ def asset(self) -> Optional["scout_savedviews_api_AssetMetricColumns"]:
83043
+ return self._asset
83044
+
83045
+ def accept(self, visitor) -> Any:
83046
+ if not isinstance(visitor, scout_savedviews_api_MetricColumnsVisitor):
83047
+ raise ValueError('{} is not an instance of scout_savedviews_api_MetricColumnsVisitor'.format(visitor.__class__.__name__))
83048
+ if self._type == 'asset' and self.asset is not None:
83049
+ return visitor._asset(self.asset)
83050
+
83051
+
83052
+ scout_savedviews_api_MetricColumns.__name__ = "MetricColumns"
83053
+ scout_savedviews_api_MetricColumns.__qualname__ = "MetricColumns"
83054
+ scout_savedviews_api_MetricColumns.__module__ = "nominal_api.scout_savedviews_api"
83055
+
83056
+
83057
+ class scout_savedviews_api_MetricColumnsVisitor:
83058
+
83059
+ @abstractmethod
83060
+ def _asset(self, asset: "scout_savedviews_api_AssetMetricColumns") -> Any:
83061
+ pass
83062
+
83063
+
83064
+ scout_savedviews_api_MetricColumnsVisitor.__name__ = "MetricColumnsVisitor"
83065
+ scout_savedviews_api_MetricColumnsVisitor.__qualname__ = "MetricColumnsVisitor"
83066
+ scout_savedviews_api_MetricColumnsVisitor.__module__ = "nominal_api.scout_savedviews_api"
83067
+
83068
+
83069
+ class scout_savedviews_api_MostRecentRun(ConjureBeanType):
83070
+
83071
+ @builtins.classmethod
83072
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
83073
+ return {
83074
+ }
83075
+
83076
+ __slots__: List[str] = []
83077
+
83078
+
83079
+
83080
+ scout_savedviews_api_MostRecentRun.__name__ = "MostRecentRun"
83081
+ scout_savedviews_api_MostRecentRun.__qualname__ = "MostRecentRun"
83082
+ scout_savedviews_api_MostRecentRun.__module__ = "nominal_api.scout_savedviews_api"
83083
+
83084
+
82317
83085
  class scout_savedviews_api_ResourceType(ConjureEnumType):
82318
83086
 
82319
83087
  ASSET = 'ASSET'
@@ -82992,16 +83760,18 @@ class scout_savedviews_api_TableState(ConjureBeanType):
82992
83760
  'column_visibility': ConjureFieldDefinition('columnVisibility', OptionalTypeWrapper[Dict[scout_savedviews_api_ColumnId, bool]]),
82993
83761
  'column_sizing': ConjureFieldDefinition('columnSizing', OptionalTypeWrapper[Dict[scout_savedviews_api_ColumnId, int]]),
82994
83762
  'column_order': ConjureFieldDefinition('columnOrder', OptionalTypeWrapper[List[scout_savedviews_api_ColumnId]]),
82995
- 'column_pinning': ConjureFieldDefinition('columnPinning', OptionalTypeWrapper[scout_savedviews_api_ColumnPinningState])
83763
+ 'column_pinning': ConjureFieldDefinition('columnPinning', OptionalTypeWrapper[scout_savedviews_api_ColumnPinningState]),
83764
+ 'metric_columns': ConjureFieldDefinition('metricColumns', OptionalTypeWrapper[scout_savedviews_api_MetricColumns])
82996
83765
  }
82997
83766
 
82998
- __slots__: List[str] = ['_column_visibility', '_column_sizing', '_column_order', '_column_pinning']
83767
+ __slots__: List[str] = ['_column_visibility', '_column_sizing', '_column_order', '_column_pinning', '_metric_columns']
82999
83768
 
83000
- def __init__(self, column_order: Optional[List[str]] = None, column_pinning: Optional["scout_savedviews_api_ColumnPinningState"] = None, column_sizing: Optional[Dict[str, int]] = None, column_visibility: Optional[Dict[str, bool]] = None) -> None:
83769
+ def __init__(self, column_order: Optional[List[str]] = None, column_pinning: Optional["scout_savedviews_api_ColumnPinningState"] = None, column_sizing: Optional[Dict[str, int]] = None, column_visibility: Optional[Dict[str, bool]] = None, metric_columns: Optional["scout_savedviews_api_MetricColumns"] = None) -> None:
83001
83770
  self._column_visibility = column_visibility
83002
83771
  self._column_sizing = column_sizing
83003
83772
  self._column_order = column_order
83004
83773
  self._column_pinning = column_pinning
83774
+ self._metric_columns = metric_columns
83005
83775
 
83006
83776
  @builtins.property
83007
83777
  def column_visibility(self) -> Optional[Dict[str, bool]]:
@@ -83019,6 +83789,10 @@ class scout_savedviews_api_TableState(ConjureBeanType):
83019
83789
  def column_pinning(self) -> Optional["scout_savedviews_api_ColumnPinningState"]:
83020
83790
  return self._column_pinning
83021
83791
 
83792
+ @builtins.property
83793
+ def metric_columns(self) -> Optional["scout_savedviews_api_MetricColumns"]:
83794
+ return self._metric_columns
83795
+
83022
83796
 
83023
83797
  scout_savedviews_api_TableState.__name__ = "TableState"
83024
83798
  scout_savedviews_api_TableState.__qualname__ = "TableState"
@@ -86048,8 +86822,9 @@ Enforces write permission on the video.
86048
86822
  _decoder = ConjureDecoder()
86049
86823
  return _decoder.decode(_response.json(), scout_video_api_GenerateWhipStreamResponse, self._return_none_for_unknown_union_types)
86050
86824
 
86051
- def generate_whep_stream(self, auth_header: str, stream_id: str, video_rid: str) -> "scout_video_api_GenerateWhepStreamResponse":
86052
- """Returns WHEP URL, ICE servers, and token for playing back a stream.
86825
+ def generate_whep_stream(self, auth_header: str, video_rid: str) -> Optional["scout_video_api_GenerateWhepStreamResponse"]:
86826
+ """Returns WHEP URL, ICE servers, and token for playing back the active stream.
86827
+ Returns empty if there is no active stream.
86053
86828
  Enforces read permission on the video.
86054
86829
  """
86055
86830
  _conjure_encoder = ConjureEncoder()
@@ -86064,12 +86839,11 @@ Enforces read permission on the video.
86064
86839
 
86065
86840
  _path_params: Dict[str, str] = {
86066
86841
  'videoRid': quote(str(_conjure_encoder.default(video_rid)), safe=''),
86067
- 'streamId': quote(str(_conjure_encoder.default(stream_id)), safe=''),
86068
86842
  }
86069
86843
 
86070
86844
  _json: Any = None
86071
86845
 
86072
- _path = '/video/v1/videos/{videoRid}/streaming/whep/{streamId}'
86846
+ _path = '/video/v1/videos/{videoRid}/streaming/whep'
86073
86847
  _path = _path.format(**_path_params)
86074
86848
 
86075
86849
  _response: Response = self._request(
@@ -86080,7 +86854,7 @@ Enforces read permission on the video.
86080
86854
  json=_json)
86081
86855
 
86082
86856
  _decoder = ConjureDecoder()
86083
- return _decoder.decode(_response.json(), scout_video_api_GenerateWhepStreamResponse, self._return_none_for_unknown_union_types)
86857
+ return None if _response.status_code == 204 else _decoder.decode(_response.json(), OptionalTypeWrapper[scout_video_api_GenerateWhepStreamResponse], self._return_none_for_unknown_union_types)
86084
86858
 
86085
86859
 
86086
86860
  scout_video_VideoService.__name__ = "VideoService"
@@ -1,8 +1,14 @@
1
1
  # coding=utf-8
2
2
  from .._impl import (
3
+ event_AggregateEventsRequest as AggregateEventsRequest,
4
+ event_AggregateEventsResponse as AggregateEventsResponse,
5
+ event_AggregateType as AggregateType,
6
+ event_AggregateValue as AggregateValue,
7
+ event_AggregateValueVisitor as AggregateValueVisitor,
3
8
  event_ApiEventOrigin as ApiEventOrigin,
4
9
  event_ArchiveEvent as ArchiveEvent,
5
10
  event_AssetsFilter as AssetsFilter,
11
+ event_AssigneesFilter as AssigneesFilter,
6
12
  event_BatchUpdateDispositionRequest as BatchUpdateDispositionRequest,
7
13
  event_BatchUpdateDispositionResponse as BatchUpdateDispositionResponse,
8
14
  event_BatchUpdateEventRequest as BatchUpdateEventRequest,
@@ -26,6 +32,7 @@ from .._impl import (
26
32
  event_HistogramFilterQuery as HistogramFilterQuery,
27
33
  event_HistogramFilterQueryVisitor as HistogramFilterQueryVisitor,
28
34
  event_ListPropertiesAndLabelsRequest as ListPropertiesAndLabelsRequest,
35
+ event_OriginTypesFilter as OriginTypesFilter,
29
36
  event_ProcedureEventOrigin as ProcedureEventOrigin,
30
37
  event_SearchEventOriginType as SearchEventOriginType,
31
38
  event_SearchEventsRequest as SearchEventsRequest,
@@ -45,9 +52,15 @@ from .._impl import (
45
52
  )
46
53
 
47
54
  __all__ = [
55
+ 'AggregateEventsRequest',
56
+ 'AggregateEventsResponse',
57
+ 'AggregateType',
58
+ 'AggregateValue',
59
+ 'AggregateValueVisitor',
48
60
  'ApiEventOrigin',
49
61
  'ArchiveEvent',
50
62
  'AssetsFilter',
63
+ 'AssigneesFilter',
51
64
  'BatchUpdateDispositionRequest',
52
65
  'BatchUpdateDispositionResponse',
53
66
  'BatchUpdateEventRequest',
@@ -70,6 +83,7 @@ __all__ = [
70
83
  'HistogramFilterQuery',
71
84
  'HistogramFilterQueryVisitor',
72
85
  'ListPropertiesAndLabelsRequest',
86
+ 'OriginTypesFilter',
73
87
  'ProcedureEventOrigin',
74
88
  'SearchEventOriginType',
75
89
  'SearchEventsRequest',
@@ -1,5 +1,9 @@
1
1
  # coding=utf-8
2
2
  from .._impl import (
3
+ scout_savedviews_api_AssetMetricColumn as AssetMetricColumn,
4
+ scout_savedviews_api_AssetMetricColumnTimeRange as AssetMetricColumnTimeRange,
5
+ scout_savedviews_api_AssetMetricColumnTimeRangeVisitor as AssetMetricColumnTimeRangeVisitor,
6
+ scout_savedviews_api_AssetMetricColumns as AssetMetricColumns,
3
7
  scout_savedviews_api_AssetSearchState as AssetSearchState,
4
8
  scout_savedviews_api_BatchGetSavedViewsResponse as BatchGetSavedViewsResponse,
5
9
  scout_savedviews_api_ChecklistSearchState as ChecklistSearchState,
@@ -10,6 +14,16 @@ from .._impl import (
10
14
  scout_savedviews_api_DisplayState as DisplayState,
11
15
  scout_savedviews_api_DisplayStateVisitor as DisplayStateVisitor,
12
16
  scout_savedviews_api_GetSavedViewResponse as GetSavedViewResponse,
17
+ scout_savedviews_api_MetricColumnAggregation as MetricColumnAggregation,
18
+ scout_savedviews_api_MetricColumnData as MetricColumnData,
19
+ scout_savedviews_api_MetricColumnDataVisitor as MetricColumnDataVisitor,
20
+ scout_savedviews_api_MetricColumnMetadata as MetricColumnMetadata,
21
+ scout_savedviews_api_MetricColumnStyle as MetricColumnStyle,
22
+ scout_savedviews_api_MetricColumnThreshold as MetricColumnThreshold,
23
+ scout_savedviews_api_MetricColumnThresholdType as MetricColumnThresholdType,
24
+ scout_savedviews_api_MetricColumns as MetricColumns,
25
+ scout_savedviews_api_MetricColumnsVisitor as MetricColumnsVisitor,
26
+ scout_savedviews_api_MostRecentRun as MostRecentRun,
13
27
  scout_savedviews_api_ResourceType as ResourceType,
14
28
  scout_savedviews_api_RunSearchState as RunSearchState,
15
29
  scout_savedviews_api_SavedView as SavedView,
@@ -37,6 +51,10 @@ from .._impl import (
37
51
  )
38
52
 
39
53
  __all__ = [
54
+ 'AssetMetricColumn',
55
+ 'AssetMetricColumnTimeRange',
56
+ 'AssetMetricColumnTimeRangeVisitor',
57
+ 'AssetMetricColumns',
40
58
  'AssetSearchState',
41
59
  'BatchGetSavedViewsResponse',
42
60
  'ChecklistSearchState',
@@ -47,6 +65,16 @@ __all__ = [
47
65
  'DisplayState',
48
66
  'DisplayStateVisitor',
49
67
  'GetSavedViewResponse',
68
+ 'MetricColumnAggregation',
69
+ 'MetricColumnData',
70
+ 'MetricColumnDataVisitor',
71
+ 'MetricColumnMetadata',
72
+ 'MetricColumnStyle',
73
+ 'MetricColumnThreshold',
74
+ 'MetricColumnThresholdType',
75
+ 'MetricColumns',
76
+ 'MetricColumnsVisitor',
77
+ 'MostRecentRun',
50
78
  'ResourceType',
51
79
  'RunSearchState',
52
80
  'SavedView',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.965.1
3
+ Version: 0.967.0
4
4
  Requires-Python: >=3.8
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: conjure-python-client<4,>=2.8.0
@@ -1,5 +1,5 @@
1
- nominal_api/__init__.py,sha256=fAYePOl5gWl58U7pP80LR7zHpRBKg_g4e9ksEx5mE44,2109
2
- nominal_api/_impl.py,sha256=McnuO15d0wWI-NAiq0zPNXR-8yKxZgDVvTfKupmUSHs,3841873
1
+ nominal_api/__init__.py,sha256=Tp6cf0QlYe9Ac_ZMxmgT8MZ1mi0JHTG9r029fNbtX5U,2109
2
+ nominal_api/_impl.py,sha256=EDQLhpK5D4nyHFV1tS85BXhd_TkSs5WpP2glWMODKVQ,3871814
3
3
  nominal_api/py.typed,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
4
4
  nominal_api/api/__init__.py,sha256=OHAEgaRoUX60742H_U3q_pBoPGpLspsL5XERHQ-rjMs,2299
5
5
  nominal_api/api_ids/__init__.py,sha256=sxqN5dMk6bOx0SKOd0ANG3_kmx1VtdSVotzEGn_q6sE,114
@@ -14,7 +14,7 @@ nominal_api/datasource_api/__init__.py,sha256=75g1qHgKGFMR87uXPvyowgKuLua62v3NPT
14
14
  nominal_api/datasource_logset/__init__.py,sha256=SGt5PmLgYpLfhcoESk69aVufuZugg8dp6XBHOZ480IA,130
15
15
  nominal_api/datasource_logset_api/__init__.py,sha256=QydoWxNXCVgIV8HWnZAKA77N5G6mTSqSzGkj36tPe4U,1376
16
16
  nominal_api/datasource_pagination_api/__init__.py,sha256=WeENj6yqi2XfInU8YgjFwqwiR8L0jDHCBZfucJ0ahyY,283
17
- nominal_api/event/__init__.py,sha256=lWZZzsEOmtmPNNU9_kYMj1uTgoyc2QL8slsD8UeHWNM,3403
17
+ nominal_api/event/__init__.py,sha256=orMTJs6yvBH1-OMJpOI_3uwideK-MHMpz6fa7y1rk-U,3946
18
18
  nominal_api/ingest_api/__init__.py,sha256=OZ1xKwsMx_IeFKrVnwYky9sWMymeYrEAHW62cVE_tqo,11156
19
19
  nominal_api/ingest_manifest/__init__.py,sha256=HvXQUiDc886ITCkoR7OEXopRIFE9Z7dFNE8_FViNP0s,483
20
20
  nominal_api/ingest_workflow_api/__init__.py,sha256=UdkTnAnXSs1Q17GfWOK6iJbqu7NecX0VP2Jkwj1Pj_k,3159
@@ -55,7 +55,7 @@ nominal_api/scout_plotting/__init__.py,sha256=RJK9HlPmNW_dxSz7CprwjfNKke86x11rQ7
55
55
  nominal_api/scout_rids_api/__init__.py,sha256=R4RElUWSaTX4yY55_gQFaGZzCTPX0Zsa_mWTzB_7BTg,2218
56
56
  nominal_api/scout_run_api/__init__.py,sha256=ZUd1CJa6EyAylMrTGD6rum7CyFAoehP6FyiT4W2EDDA,4763
57
57
  nominal_api/scout_savedviews/__init__.py,sha256=yky0iF6IK8U5xnDjfzvUuXOb-Tl5RF6dic6abhuX-V8,138
58
- nominal_api/scout_savedviews_api/__init__.py,sha256=qGCgh8Pv9N-uekuDwDCHlBu9DCflIT6MiDhtFSmtKQ4,3148
58
+ nominal_api/scout_savedviews_api/__init__.py,sha256=WXQty8bejmR_IfPMzZ8J3QnJQpsy4LuilQRk0ns5TW8,4549
59
59
  nominal_api/scout_template_api/__init__.py,sha256=Yu7FHTypJv09dBKqnWS_dDeXdwI1hgGGZNDbMOHZKr8,1550
60
60
  nominal_api/scout_units_api/__init__.py,sha256=gf47pW6JIcP3FgL1UuHwkibj266FCRszL9q6PGx0-Rg,512
61
61
  nominal_api/scout_versioning_api/__init__.py,sha256=AGSj6Gd1gDUnY3BTpXhPkEzCnrKIMfvs3S17m68HGfQ,1822
@@ -79,7 +79,7 @@ nominal_api/timeseries_seriescache/__init__.py,sha256=hL5hN8jKLEGE_fDiZzdASmWIrR
79
79
  nominal_api/timeseries_seriescache_api/__init__.py,sha256=i21vITWBn-6ruVuFZg491TDpx6WcIhJBoF3oNw3w338,1186
80
80
  nominal_api/upload_api/__init__.py,sha256=7-XXuZUqKPV4AMWvxNpZPZ5vBun4x-AomXj3Vol_BN4,123
81
81
  nominal_api/usercreation_api/__init__.py,sha256=Q6M70SlKFVfIxZqRohD4XYmBz5t2DP1DB0a0Q6glqGA,171
82
- nominal_api-0.965.1.dist-info/METADATA,sha256=uAxIwuth5dDGuuhwjUkMunduWyy2yy2aOAR0wiN5FNk,199
83
- nominal_api-0.965.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
84
- nominal_api-0.965.1.dist-info/top_level.txt,sha256=gI1ZdNJbuHcJZeKtCzzBXsEtpU1GX6XJKs6ksi_gCRA,12
85
- nominal_api-0.965.1.dist-info/RECORD,,
82
+ nominal_api-0.967.0.dist-info/METADATA,sha256=oROVGgAXJU-GEnzV8p5U2XWFccKXPkaq2_7_zQk0WFA,199
83
+ nominal_api-0.967.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
84
+ nominal_api-0.967.0.dist-info/top_level.txt,sha256=gI1ZdNJbuHcJZeKtCzzBXsEtpU1GX6XJKs6ksi_gCRA,12
85
+ nominal_api-0.967.0.dist-info/RECORD,,