nominal-api 0.733.0__py3-none-any.whl → 0.735.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/_impl.py CHANGED
@@ -8026,6 +8026,90 @@ ingest_api_AuthenticationVisitor.__qualname__ = "AuthenticationVisitor"
8026
8026
  ingest_api_AuthenticationVisitor.__module__ = "nominal_api.ingest_api"
8027
8027
 
8028
8028
 
8029
+ class ingest_api_AvroStreamOpts(ConjureBeanType):
8030
+ """Options for ingesting Avro data with the following schema. This is a "stream-like" file format to support
8031
+ use cases where a columnar/tabular format does not make sense. This closely matches Nominal's streaming
8032
+ API, making it useful for use cases where network connection drops during streaming and a backup file needs
8033
+ to be created.
8034
+
8035
+ If this schema is not used, will result in a failed ingestion.
8036
+ {
8037
+ "type": "record",
8038
+ "name": "AvroStream",
8039
+ "namespace": "io.nominal.ingest",
8040
+ "fields": [
8041
+ {
8042
+ "name": "channel",
8043
+ "type": "string",
8044
+ "doc": "Channel/series name (e.g., 'vehicle_id', 'col_1', 'temperature')",
8045
+ },
8046
+ {
8047
+ "name": "timestamps",
8048
+ "type": {"type": "array", "items": "long"},
8049
+ "doc": "Array of Unix timestamps in nanoseconds",
8050
+ },
8051
+ {
8052
+ "name": "values",
8053
+ "type": {"type": "array", "items": ["double", "string"]},
8054
+ "doc": "Array of values. Can either be doubles or strings",
8055
+ },
8056
+ {
8057
+ "name": "tags",
8058
+ "type": {"type": "map", "values": "string"},
8059
+ "default": {},
8060
+ "doc": "Key-value metadata tags",
8061
+ },
8062
+ ],
8063
+ }
8064
+ """
8065
+
8066
+ @builtins.classmethod
8067
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
8068
+ return {
8069
+ 'source': ConjureFieldDefinition('source', ingest_api_IngestSource),
8070
+ 'target': ConjureFieldDefinition('target', ingest_api_DatasetIngestTarget),
8071
+ 'time_unit': ConjureFieldDefinition('timeUnit', api_TimeUnit),
8072
+ 'channel_prefix': ConjureFieldDefinition('channelPrefix', ingest_api_ChannelPrefix),
8073
+ 'additional_file_tags': ConjureFieldDefinition('additionalFileTags', OptionalTypeWrapper[Dict[api_TagName, api_TagValue]])
8074
+ }
8075
+
8076
+ __slots__: List[str] = ['_source', '_target', '_time_unit', '_channel_prefix', '_additional_file_tags']
8077
+
8078
+ def __init__(self, source: "ingest_api_IngestSource", target: "ingest_api_DatasetIngestTarget", time_unit: "api_TimeUnit", additional_file_tags: Optional[Dict[str, str]] = None, channel_prefix: Optional[str] = None) -> None:
8079
+ self._source = source
8080
+ self._target = target
8081
+ self._time_unit = time_unit
8082
+ self._channel_prefix = channel_prefix
8083
+ self._additional_file_tags = additional_file_tags
8084
+
8085
+ @builtins.property
8086
+ def source(self) -> "ingest_api_IngestSource":
8087
+ return self._source
8088
+
8089
+ @builtins.property
8090
+ def target(self) -> "ingest_api_DatasetIngestTarget":
8091
+ return self._target
8092
+
8093
+ @builtins.property
8094
+ def time_unit(self) -> "api_TimeUnit":
8095
+ return self._time_unit
8096
+
8097
+ @builtins.property
8098
+ def channel_prefix(self) -> Optional[str]:
8099
+ return self._channel_prefix
8100
+
8101
+ @builtins.property
8102
+ def additional_file_tags(self) -> Optional[Dict[str, str]]:
8103
+ """Specifies a tag set to apply to all data in the file.
8104
+ """
8105
+ return self._additional_file_tags
8106
+
8107
+
8108
+ ingest_api_AvroStreamOpts.__name__ = "AvroStreamOpts"
8109
+ ingest_api_AvroStreamOpts.__qualname__ = "AvroStreamOpts"
8110
+ ingest_api_AvroStreamOpts.__module__ = "nominal_api.ingest_api"
8111
+
8112
+
8029
8113
  class ingest_api_ChannelConfig(ConjureBeanType):
8030
8114
 
8031
8115
  @builtins.classmethod
@@ -8478,6 +8562,8 @@ class ingest_api_CsvOpts(ConjureBeanType):
8478
8562
 
8479
8563
  @builtins.property
8480
8564
  def additional_file_tags(self) -> Optional[Dict[str, str]]:
8565
+ """Specifies a tag set to apply to all data in the file.
8566
+ """
8481
8567
  return self._additional_file_tags
8482
8568
 
8483
8569
 
@@ -9745,6 +9831,7 @@ class ingest_api_IngestOptions(ConjureUnionType):
9745
9831
  _parquet: Optional["ingest_api_ParquetOpts"] = None
9746
9832
  _video: Optional["ingest_api_VideoOpts"] = None
9747
9833
  _containerized: Optional["ingest_api_ContainerizedOpts"] = None
9834
+ _avro_stream: Optional["ingest_api_AvroStreamOpts"] = None
9748
9835
 
9749
9836
  @builtins.classmethod
9750
9837
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -9755,7 +9842,8 @@ class ingest_api_IngestOptions(ConjureUnionType):
9755
9842
  'csv': ConjureFieldDefinition('csv', ingest_api_CsvOpts),
9756
9843
  'parquet': ConjureFieldDefinition('parquet', ingest_api_ParquetOpts),
9757
9844
  'video': ConjureFieldDefinition('video', ingest_api_VideoOpts),
9758
- 'containerized': ConjureFieldDefinition('containerized', ingest_api_ContainerizedOpts)
9845
+ 'containerized': ConjureFieldDefinition('containerized', ingest_api_ContainerizedOpts),
9846
+ 'avro_stream': ConjureFieldDefinition('avroStream', ingest_api_AvroStreamOpts)
9759
9847
  }
9760
9848
 
9761
9849
  def __init__(
@@ -9767,10 +9855,11 @@ class ingest_api_IngestOptions(ConjureUnionType):
9767
9855
  parquet: Optional["ingest_api_ParquetOpts"] = None,
9768
9856
  video: Optional["ingest_api_VideoOpts"] = None,
9769
9857
  containerized: Optional["ingest_api_ContainerizedOpts"] = None,
9858
+ avro_stream: Optional["ingest_api_AvroStreamOpts"] = None,
9770
9859
  type_of_union: Optional[str] = None
9771
9860
  ) -> None:
9772
9861
  if type_of_union is None:
9773
- if (dataflash is not None) + (mcap_protobuf_timeseries is not None) + (journal_json is not None) + (csv is not None) + (parquet is not None) + (video is not None) + (containerized is not None) != 1:
9862
+ if (dataflash is not None) + (mcap_protobuf_timeseries is not None) + (journal_json is not None) + (csv is not None) + (parquet is not None) + (video is not None) + (containerized is not None) + (avro_stream is not None) != 1:
9774
9863
  raise ValueError('a union must contain a single member')
9775
9864
 
9776
9865
  if dataflash is not None:
@@ -9794,6 +9883,9 @@ class ingest_api_IngestOptions(ConjureUnionType):
9794
9883
  if containerized is not None:
9795
9884
  self._containerized = containerized
9796
9885
  self._type = 'containerized'
9886
+ if avro_stream is not None:
9887
+ self._avro_stream = avro_stream
9888
+ self._type = 'avroStream'
9797
9889
 
9798
9890
  elif type_of_union == 'dataflash':
9799
9891
  if dataflash is None:
@@ -9830,6 +9922,11 @@ class ingest_api_IngestOptions(ConjureUnionType):
9830
9922
  raise ValueError('a union value must not be None')
9831
9923
  self._containerized = containerized
9832
9924
  self._type = 'containerized'
9925
+ elif type_of_union == 'avroStream':
9926
+ if avro_stream is None:
9927
+ raise ValueError('a union value must not be None')
9928
+ self._avro_stream = avro_stream
9929
+ self._type = 'avroStream'
9833
9930
 
9834
9931
  @builtins.property
9835
9932
  def dataflash(self) -> Optional["ingest_api_DataflashOpts"]:
@@ -9859,6 +9956,10 @@ class ingest_api_IngestOptions(ConjureUnionType):
9859
9956
  def containerized(self) -> Optional["ingest_api_ContainerizedOpts"]:
9860
9957
  return self._containerized
9861
9958
 
9959
+ @builtins.property
9960
+ def avro_stream(self) -> Optional["ingest_api_AvroStreamOpts"]:
9961
+ return self._avro_stream
9962
+
9862
9963
  def accept(self, visitor) -> Any:
9863
9964
  if not isinstance(visitor, ingest_api_IngestOptionsVisitor):
9864
9965
  raise ValueError('{} is not an instance of ingest_api_IngestOptionsVisitor'.format(visitor.__class__.__name__))
@@ -9876,6 +9977,8 @@ class ingest_api_IngestOptions(ConjureUnionType):
9876
9977
  return visitor._video(self.video)
9877
9978
  if self._type == 'containerized' and self.containerized is not None:
9878
9979
  return visitor._containerized(self.containerized)
9980
+ if self._type == 'avroStream' and self.avro_stream is not None:
9981
+ return visitor._avro_stream(self.avro_stream)
9879
9982
 
9880
9983
 
9881
9984
  ingest_api_IngestOptions.__name__ = "IngestOptions"
@@ -9913,6 +10016,10 @@ class ingest_api_IngestOptionsVisitor:
9913
10016
  def _containerized(self, containerized: "ingest_api_ContainerizedOpts") -> Any:
9914
10017
  pass
9915
10018
 
10019
+ @abstractmethod
10020
+ def _avro_stream(self, avro_stream: "ingest_api_AvroStreamOpts") -> Any:
10021
+ pass
10022
+
9916
10023
 
9917
10024
  ingest_api_IngestOptionsVisitor.__name__ = "IngestOptionsVisitor"
9918
10025
  ingest_api_IngestOptionsVisitor.__qualname__ = "IngestOptionsVisitor"
@@ -10188,6 +10295,39 @@ gets migrated to this one.
10188
10295
  _decoder = ConjureDecoder()
10189
10296
  return _decoder.decode(_response.json(), ingest_api_IngestResponse, self._return_none_for_unknown_union_types)
10190
10297
 
10298
+ def rerun_ingest(self, auth_header: str, request: "ingest_api_RerunIngestRequest") -> "ingest_api_IngestResponse":
10299
+ """Triggers an ingest job using an existing ingest job RID.
10300
+ Returns the same response format as the /ingest endpoint.
10301
+ """
10302
+ _conjure_encoder = ConjureEncoder()
10303
+
10304
+ _headers: Dict[str, Any] = {
10305
+ 'Accept': 'application/json',
10306
+ 'Content-Type': 'application/json',
10307
+ 'Authorization': auth_header,
10308
+ }
10309
+
10310
+ _params: Dict[str, Any] = {
10311
+ }
10312
+
10313
+ _path_params: Dict[str, str] = {
10314
+ }
10315
+
10316
+ _json: Any = _conjure_encoder.default(request)
10317
+
10318
+ _path = '/ingest/v1/re-ingest'
10319
+ _path = _path.format(**_path_params)
10320
+
10321
+ _response: Response = self._request(
10322
+ 'POST',
10323
+ self._uri + _path,
10324
+ params=_params,
10325
+ headers=_headers,
10326
+ json=_json)
10327
+
10328
+ _decoder = ConjureDecoder()
10329
+ return _decoder.decode(_response.json(), ingest_api_IngestResponse, self._return_none_for_unknown_union_types)
10330
+
10191
10331
  def deprecated_trigger_ingest(self, auth_header: str, trigger_ingest: "ingest_api_DeprecatedTriggerIngest") -> "ingest_api_TriggeredIngest":
10192
10332
  _conjure_encoder = ConjureEncoder()
10193
10333
 
@@ -11649,6 +11789,8 @@ and archives such as .tar, .tar.gz, and .zip (must set the isArchive flag).
11649
11789
 
11650
11790
  @builtins.property
11651
11791
  def additional_file_tags(self) -> Optional[Dict[str, str]]:
11792
+ """Specifies a tag set to apply to all data in the file.
11793
+ """
11652
11794
  return self._additional_file_tags
11653
11795
 
11654
11796
  @builtins.property
@@ -11974,6 +12116,29 @@ ingest_api_RelativeTimestamp.__qualname__ = "RelativeTimestamp"
11974
12116
  ingest_api_RelativeTimestamp.__module__ = "nominal_api.ingest_api"
11975
12117
 
11976
12118
 
12119
+ class ingest_api_RerunIngestRequest(ConjureBeanType):
12120
+
12121
+ @builtins.classmethod
12122
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
12123
+ return {
12124
+ 'ingest_job_rid': ConjureFieldDefinition('ingestJobRid', ingest_api_IngestJobRid)
12125
+ }
12126
+
12127
+ __slots__: List[str] = ['_ingest_job_rid']
12128
+
12129
+ def __init__(self, ingest_job_rid: str) -> None:
12130
+ self._ingest_job_rid = ingest_job_rid
12131
+
12132
+ @builtins.property
12133
+ def ingest_job_rid(self) -> str:
12134
+ return self._ingest_job_rid
12135
+
12136
+
12137
+ ingest_api_RerunIngestRequest.__name__ = "RerunIngestRequest"
12138
+ ingest_api_RerunIngestRequest.__qualname__ = "RerunIngestRequest"
12139
+ ingest_api_RerunIngestRequest.__module__ = "nominal_api.ingest_api"
12140
+
12141
+
11977
12142
  class ingest_api_S3IngestSource(ConjureBeanType):
11978
12143
 
11979
12144
  @builtins.classmethod
@@ -13858,6 +14023,1450 @@ ingest_workflow_api_ValidatedFileInput.__qualname__ = "ValidatedFileInput"
13858
14023
  ingest_workflow_api_ValidatedFileInput.__module__ = "nominal_api.ingest_workflow_api"
13859
14024
 
13860
14025
 
14026
+ class modules_ApplyModuleRequest(ConjureBeanType):
14027
+
14028
+ @builtins.classmethod
14029
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14030
+ return {
14031
+ 'module_rid': ConjureFieldDefinition('moduleRid', modules_api_ModuleRid),
14032
+ 'asset_rid': ConjureFieldDefinition('assetRid', scout_rids_api_AssetRid)
14033
+ }
14034
+
14035
+ __slots__: List[str] = ['_module_rid', '_asset_rid']
14036
+
14037
+ def __init__(self, asset_rid: str, module_rid: str) -> None:
14038
+ self._module_rid = module_rid
14039
+ self._asset_rid = asset_rid
14040
+
14041
+ @builtins.property
14042
+ def module_rid(self) -> str:
14043
+ return self._module_rid
14044
+
14045
+ @builtins.property
14046
+ def asset_rid(self) -> str:
14047
+ return self._asset_rid
14048
+
14049
+
14050
+ modules_ApplyModuleRequest.__name__ = "ApplyModuleRequest"
14051
+ modules_ApplyModuleRequest.__qualname__ = "ApplyModuleRequest"
14052
+ modules_ApplyModuleRequest.__module__ = "nominal_api.modules"
14053
+
14054
+
14055
+ class modules_ApplyModuleResponse(ConjureBeanType):
14056
+
14057
+ @builtins.classmethod
14058
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14059
+ return {
14060
+ 'result': ConjureFieldDefinition('result', modules_ModuleApplication)
14061
+ }
14062
+
14063
+ __slots__: List[str] = ['_result']
14064
+
14065
+ def __init__(self, result: "modules_ModuleApplication") -> None:
14066
+ self._result = result
14067
+
14068
+ @builtins.property
14069
+ def result(self) -> "modules_ModuleApplication":
14070
+ return self._result
14071
+
14072
+
14073
+ modules_ApplyModuleResponse.__name__ = "ApplyModuleResponse"
14074
+ modules_ApplyModuleResponse.__qualname__ = "ApplyModuleResponse"
14075
+ modules_ApplyModuleResponse.__module__ = "nominal_api.modules"
14076
+
14077
+
14078
+ class modules_BatchArchiveModulesRequest(ConjureBeanType):
14079
+
14080
+ @builtins.classmethod
14081
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14082
+ return {
14083
+ 'requests': ConjureFieldDefinition('requests', List[modules_api_ModuleRid])
14084
+ }
14085
+
14086
+ __slots__: List[str] = ['_requests']
14087
+
14088
+ def __init__(self, requests: List[str]) -> None:
14089
+ self._requests = requests
14090
+
14091
+ @builtins.property
14092
+ def requests(self) -> List[str]:
14093
+ return self._requests
14094
+
14095
+
14096
+ modules_BatchArchiveModulesRequest.__name__ = "BatchArchiveModulesRequest"
14097
+ modules_BatchArchiveModulesRequest.__qualname__ = "BatchArchiveModulesRequest"
14098
+ modules_BatchArchiveModulesRequest.__module__ = "nominal_api.modules"
14099
+
14100
+
14101
+ class modules_BatchArchiveModulesResponse(ConjureBeanType):
14102
+
14103
+ @builtins.classmethod
14104
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14105
+ return {
14106
+ 'archived_module_rids': ConjureFieldDefinition('archivedModuleRids', List[modules_api_ModuleRid])
14107
+ }
14108
+
14109
+ __slots__: List[str] = ['_archived_module_rids']
14110
+
14111
+ def __init__(self, archived_module_rids: List[str]) -> None:
14112
+ self._archived_module_rids = archived_module_rids
14113
+
14114
+ @builtins.property
14115
+ def archived_module_rids(self) -> List[str]:
14116
+ return self._archived_module_rids
14117
+
14118
+
14119
+ modules_BatchArchiveModulesResponse.__name__ = "BatchArchiveModulesResponse"
14120
+ modules_BatchArchiveModulesResponse.__qualname__ = "BatchArchiveModulesResponse"
14121
+ modules_BatchArchiveModulesResponse.__module__ = "nominal_api.modules"
14122
+
14123
+
14124
+ class modules_BatchGetModulesRequest(ConjureBeanType):
14125
+
14126
+ @builtins.classmethod
14127
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14128
+ return {
14129
+ 'requests': ConjureFieldDefinition('requests', List[modules_GetModuleRequest])
14130
+ }
14131
+
14132
+ __slots__: List[str] = ['_requests']
14133
+
14134
+ def __init__(self, requests: List["modules_GetModuleRequest"]) -> None:
14135
+ self._requests = requests
14136
+
14137
+ @builtins.property
14138
+ def requests(self) -> List["modules_GetModuleRequest"]:
14139
+ return self._requests
14140
+
14141
+
14142
+ modules_BatchGetModulesRequest.__name__ = "BatchGetModulesRequest"
14143
+ modules_BatchGetModulesRequest.__qualname__ = "BatchGetModulesRequest"
14144
+ modules_BatchGetModulesRequest.__module__ = "nominal_api.modules"
14145
+
14146
+
14147
+ class modules_BatchUnarchiveModulesRequest(ConjureBeanType):
14148
+
14149
+ @builtins.classmethod
14150
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14151
+ return {
14152
+ 'requests': ConjureFieldDefinition('requests', List[modules_api_ModuleRid])
14153
+ }
14154
+
14155
+ __slots__: List[str] = ['_requests']
14156
+
14157
+ def __init__(self, requests: List[str]) -> None:
14158
+ self._requests = requests
14159
+
14160
+ @builtins.property
14161
+ def requests(self) -> List[str]:
14162
+ return self._requests
14163
+
14164
+
14165
+ modules_BatchUnarchiveModulesRequest.__name__ = "BatchUnarchiveModulesRequest"
14166
+ modules_BatchUnarchiveModulesRequest.__qualname__ = "BatchUnarchiveModulesRequest"
14167
+ modules_BatchUnarchiveModulesRequest.__module__ = "nominal_api.modules"
14168
+
14169
+
14170
+ class modules_BatchUnarchiveModulesResponse(ConjureBeanType):
14171
+
14172
+ @builtins.classmethod
14173
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14174
+ return {
14175
+ 'unarchived_module_rids': ConjureFieldDefinition('unarchivedModuleRids', List[modules_api_ModuleRid])
14176
+ }
14177
+
14178
+ __slots__: List[str] = ['_unarchived_module_rids']
14179
+
14180
+ def __init__(self, unarchived_module_rids: List[str]) -> None:
14181
+ self._unarchived_module_rids = unarchived_module_rids
14182
+
14183
+ @builtins.property
14184
+ def unarchived_module_rids(self) -> List[str]:
14185
+ return self._unarchived_module_rids
14186
+
14187
+
14188
+ modules_BatchUnarchiveModulesResponse.__name__ = "BatchUnarchiveModulesResponse"
14189
+ modules_BatchUnarchiveModulesResponse.__qualname__ = "BatchUnarchiveModulesResponse"
14190
+ modules_BatchUnarchiveModulesResponse.__module__ = "nominal_api.modules"
14191
+
14192
+
14193
+ class modules_CreateOrUpdateModuleRequest(ConjureBeanType):
14194
+
14195
+ @builtins.classmethod
14196
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14197
+ return {
14198
+ 'name': ConjureFieldDefinition('name', str),
14199
+ 'description': ConjureFieldDefinition('description', str),
14200
+ 'definition': ConjureFieldDefinition('definition', modules_ModuleVersionDefinition)
14201
+ }
14202
+
14203
+ __slots__: List[str] = ['_name', '_description', '_definition']
14204
+
14205
+ def __init__(self, definition: "modules_ModuleVersionDefinition", description: str, name: str) -> None:
14206
+ self._name = name
14207
+ self._description = description
14208
+ self._definition = definition
14209
+
14210
+ @builtins.property
14211
+ def name(self) -> str:
14212
+ """The name of the module. This should be unique to the module in the current workspace.
14213
+ """
14214
+ return self._name
14215
+
14216
+ @builtins.property
14217
+ def description(self) -> str:
14218
+ return self._description
14219
+
14220
+ @builtins.property
14221
+ def definition(self) -> "modules_ModuleVersionDefinition":
14222
+ return self._definition
14223
+
14224
+
14225
+ modules_CreateOrUpdateModuleRequest.__name__ = "CreateOrUpdateModuleRequest"
14226
+ modules_CreateOrUpdateModuleRequest.__qualname__ = "CreateOrUpdateModuleRequest"
14227
+ modules_CreateOrUpdateModuleRequest.__module__ = "nominal_api.modules"
14228
+
14229
+
14230
+ class modules_Function(ConjureBeanType):
14231
+
14232
+ @builtins.classmethod
14233
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14234
+ return {
14235
+ 'name': ConjureFieldDefinition('name', str),
14236
+ 'description': ConjureFieldDefinition('description', str),
14237
+ 'parameters': ConjureFieldDefinition('parameters', List[modules_FunctionParameter]),
14238
+ 'function_node': ConjureFieldDefinition('functionNode', modules_FunctionNode),
14239
+ 'is_exported': ConjureFieldDefinition('isExported', bool)
14240
+ }
14241
+
14242
+ __slots__: List[str] = ['_name', '_description', '_parameters', '_function_node', '_is_exported']
14243
+
14244
+ def __init__(self, description: str, function_node: "modules_FunctionNode", is_exported: bool, name: str, parameters: List["modules_FunctionParameter"]) -> None:
14245
+ self._name = name
14246
+ self._description = description
14247
+ self._parameters = parameters
14248
+ self._function_node = function_node
14249
+ self._is_exported = is_exported
14250
+
14251
+ @builtins.property
14252
+ def name(self) -> str:
14253
+ """The name of the function. This should be unique to the function in the current module.
14254
+ """
14255
+ return self._name
14256
+
14257
+ @builtins.property
14258
+ def description(self) -> str:
14259
+ return self._description
14260
+
14261
+ @builtins.property
14262
+ def parameters(self) -> List["modules_FunctionParameter"]:
14263
+ return self._parameters
14264
+
14265
+ @builtins.property
14266
+ def function_node(self) -> "modules_FunctionNode":
14267
+ return self._function_node
14268
+
14269
+ @builtins.property
14270
+ def is_exported(self) -> bool:
14271
+ return self._is_exported
14272
+
14273
+
14274
+ modules_Function.__name__ = "Function"
14275
+ modules_Function.__qualname__ = "Function"
14276
+ modules_Function.__module__ = "nominal_api.modules"
14277
+
14278
+
14279
+ class modules_FunctionNode(ConjureUnionType):
14280
+ _enum: Optional["scout_compute_api_EnumSeries"] = None
14281
+ _numeric: Optional["scout_compute_api_NumericSeries"] = None
14282
+ _ranges: Optional["scout_compute_api_RangeSeries"] = None
14283
+
14284
+ @builtins.classmethod
14285
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
14286
+ return {
14287
+ 'enum': ConjureFieldDefinition('enum', scout_compute_api_EnumSeries),
14288
+ 'numeric': ConjureFieldDefinition('numeric', scout_compute_api_NumericSeries),
14289
+ 'ranges': ConjureFieldDefinition('ranges', scout_compute_api_RangeSeries)
14290
+ }
14291
+
14292
+ def __init__(
14293
+ self,
14294
+ enum: Optional["scout_compute_api_EnumSeries"] = None,
14295
+ numeric: Optional["scout_compute_api_NumericSeries"] = None,
14296
+ ranges: Optional["scout_compute_api_RangeSeries"] = None,
14297
+ type_of_union: Optional[str] = None
14298
+ ) -> None:
14299
+ if type_of_union is None:
14300
+ if (enum is not None) + (numeric is not None) + (ranges is not None) != 1:
14301
+ raise ValueError('a union must contain a single member')
14302
+
14303
+ if enum is not None:
14304
+ self._enum = enum
14305
+ self._type = 'enum'
14306
+ if numeric is not None:
14307
+ self._numeric = numeric
14308
+ self._type = 'numeric'
14309
+ if ranges is not None:
14310
+ self._ranges = ranges
14311
+ self._type = 'ranges'
14312
+
14313
+ elif type_of_union == 'enum':
14314
+ if enum is None:
14315
+ raise ValueError('a union value must not be None')
14316
+ self._enum = enum
14317
+ self._type = 'enum'
14318
+ elif type_of_union == 'numeric':
14319
+ if numeric is None:
14320
+ raise ValueError('a union value must not be None')
14321
+ self._numeric = numeric
14322
+ self._type = 'numeric'
14323
+ elif type_of_union == 'ranges':
14324
+ if ranges is None:
14325
+ raise ValueError('a union value must not be None')
14326
+ self._ranges = ranges
14327
+ self._type = 'ranges'
14328
+
14329
+ @builtins.property
14330
+ def enum(self) -> Optional["scout_compute_api_EnumSeries"]:
14331
+ return self._enum
14332
+
14333
+ @builtins.property
14334
+ def numeric(self) -> Optional["scout_compute_api_NumericSeries"]:
14335
+ return self._numeric
14336
+
14337
+ @builtins.property
14338
+ def ranges(self) -> Optional["scout_compute_api_RangeSeries"]:
14339
+ return self._ranges
14340
+
14341
+ def accept(self, visitor) -> Any:
14342
+ if not isinstance(visitor, modules_FunctionNodeVisitor):
14343
+ raise ValueError('{} is not an instance of modules_FunctionNodeVisitor'.format(visitor.__class__.__name__))
14344
+ if self._type == 'enum' and self.enum is not None:
14345
+ return visitor._enum(self.enum)
14346
+ if self._type == 'numeric' and self.numeric is not None:
14347
+ return visitor._numeric(self.numeric)
14348
+ if self._type == 'ranges' and self.ranges is not None:
14349
+ return visitor._ranges(self.ranges)
14350
+
14351
+
14352
+ modules_FunctionNode.__name__ = "FunctionNode"
14353
+ modules_FunctionNode.__qualname__ = "FunctionNode"
14354
+ modules_FunctionNode.__module__ = "nominal_api.modules"
14355
+
14356
+
14357
+ class modules_FunctionNodeVisitor:
14358
+
14359
+ @abstractmethod
14360
+ def _enum(self, enum: "scout_compute_api_EnumSeries") -> Any:
14361
+ pass
14362
+
14363
+ @abstractmethod
14364
+ def _numeric(self, numeric: "scout_compute_api_NumericSeries") -> Any:
14365
+ pass
14366
+
14367
+ @abstractmethod
14368
+ def _ranges(self, ranges: "scout_compute_api_RangeSeries") -> Any:
14369
+ pass
14370
+
14371
+
14372
+ modules_FunctionNodeVisitor.__name__ = "FunctionNodeVisitor"
14373
+ modules_FunctionNodeVisitor.__qualname__ = "FunctionNodeVisitor"
14374
+ modules_FunctionNodeVisitor.__module__ = "nominal_api.modules"
14375
+
14376
+
14377
+ class modules_FunctionParameter(ConjureBeanType):
14378
+
14379
+ @builtins.classmethod
14380
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14381
+ return {
14382
+ 'name': ConjureFieldDefinition('name', str),
14383
+ 'type': ConjureFieldDefinition('type', modules_ValueType),
14384
+ 'default_value': ConjureFieldDefinition('defaultValue', OptionalTypeWrapper[scout_compute_api_VariableName])
14385
+ }
14386
+
14387
+ __slots__: List[str] = ['_name', '_type', '_default_value']
14388
+
14389
+ def __init__(self, name: str, type: "modules_ValueType", default_value: Optional[str] = None) -> None:
14390
+ self._name = name
14391
+ self._type = type
14392
+ self._default_value = default_value
14393
+
14394
+ @builtins.property
14395
+ def name(self) -> str:
14396
+ return self._name
14397
+
14398
+ @builtins.property
14399
+ def type(self) -> "modules_ValueType":
14400
+ return self._type
14401
+
14402
+ @builtins.property
14403
+ def default_value(self) -> Optional[str]:
14404
+ """This must reference a variable in its parent module's `defaultVariables`.
14405
+ """
14406
+ return self._default_value
14407
+
14408
+
14409
+ modules_FunctionParameter.__name__ = "FunctionParameter"
14410
+ modules_FunctionParameter.__qualname__ = "FunctionParameter"
14411
+ modules_FunctionParameter.__module__ = "nominal_api.modules"
14412
+
14413
+
14414
+ class modules_GetModuleRequest(ConjureBeanType):
14415
+
14416
+ @builtins.classmethod
14417
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14418
+ return {
14419
+ 'module_rid': ConjureFieldDefinition('moduleRid', modules_api_ModuleRid)
14420
+ }
14421
+
14422
+ __slots__: List[str] = ['_module_rid']
14423
+
14424
+ def __init__(self, module_rid: str) -> None:
14425
+ self._module_rid = module_rid
14426
+
14427
+ @builtins.property
14428
+ def module_rid(self) -> str:
14429
+ return self._module_rid
14430
+
14431
+
14432
+ modules_GetModuleRequest.__name__ = "GetModuleRequest"
14433
+ modules_GetModuleRequest.__qualname__ = "GetModuleRequest"
14434
+ modules_GetModuleRequest.__module__ = "nominal_api.modules"
14435
+
14436
+
14437
+ class modules_Module(ConjureBeanType):
14438
+
14439
+ @builtins.classmethod
14440
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14441
+ return {
14442
+ 'metadata': ConjureFieldDefinition('metadata', modules_ModuleMetadata),
14443
+ 'definition': ConjureFieldDefinition('definition', modules_ModuleVersionDefinition)
14444
+ }
14445
+
14446
+ __slots__: List[str] = ['_metadata', '_definition']
14447
+
14448
+ def __init__(self, definition: "modules_ModuleVersionDefinition", metadata: "modules_ModuleMetadata") -> None:
14449
+ self._metadata = metadata
14450
+ self._definition = definition
14451
+
14452
+ @builtins.property
14453
+ def metadata(self) -> "modules_ModuleMetadata":
14454
+ return self._metadata
14455
+
14456
+ @builtins.property
14457
+ def definition(self) -> "modules_ModuleVersionDefinition":
14458
+ return self._definition
14459
+
14460
+
14461
+ modules_Module.__name__ = "Module"
14462
+ modules_Module.__qualname__ = "Module"
14463
+ modules_Module.__module__ = "nominal_api.modules"
14464
+
14465
+
14466
+ class modules_ModuleApplication(ConjureBeanType):
14467
+
14468
+ @builtins.classmethod
14469
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14470
+ return {
14471
+ 'module': ConjureFieldDefinition('module', modules_ModuleRef),
14472
+ 'asset_rid': ConjureFieldDefinition('assetRid', scout_rids_api_AssetRid),
14473
+ 'applied_at': ConjureFieldDefinition('appliedAt', str),
14474
+ 'applied_by': ConjureFieldDefinition('appliedBy', scout_rids_api_UserRid)
14475
+ }
14476
+
14477
+ __slots__: List[str] = ['_module', '_asset_rid', '_applied_at', '_applied_by']
14478
+
14479
+ def __init__(self, applied_at: str, applied_by: str, asset_rid: str, module: "modules_ModuleRef") -> None:
14480
+ self._module = module
14481
+ self._asset_rid = asset_rid
14482
+ self._applied_at = applied_at
14483
+ self._applied_by = applied_by
14484
+
14485
+ @builtins.property
14486
+ def module(self) -> "modules_ModuleRef":
14487
+ return self._module
14488
+
14489
+ @builtins.property
14490
+ def asset_rid(self) -> str:
14491
+ return self._asset_rid
14492
+
14493
+ @builtins.property
14494
+ def applied_at(self) -> str:
14495
+ return self._applied_at
14496
+
14497
+ @builtins.property
14498
+ def applied_by(self) -> str:
14499
+ return self._applied_by
14500
+
14501
+
14502
+ modules_ModuleApplication.__name__ = "ModuleApplication"
14503
+ modules_ModuleApplication.__qualname__ = "ModuleApplication"
14504
+ modules_ModuleApplication.__module__ = "nominal_api.modules"
14505
+
14506
+
14507
+ class modules_ModuleMetadata(ConjureBeanType):
14508
+
14509
+ @builtins.classmethod
14510
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14511
+ return {
14512
+ 'rid': ConjureFieldDefinition('rid', modules_api_ModuleRid),
14513
+ 'name': ConjureFieldDefinition('name', str),
14514
+ 'description': ConjureFieldDefinition('description', str),
14515
+ 'created_by': ConjureFieldDefinition('createdBy', scout_rids_api_UserRid),
14516
+ 'created_at': ConjureFieldDefinition('createdAt', str),
14517
+ 'archived_at': ConjureFieldDefinition('archivedAt', OptionalTypeWrapper[str])
14518
+ }
14519
+
14520
+ __slots__: List[str] = ['_rid', '_name', '_description', '_created_by', '_created_at', '_archived_at']
14521
+
14522
+ def __init__(self, created_at: str, created_by: str, description: str, name: str, rid: str, archived_at: Optional[str] = None) -> None:
14523
+ self._rid = rid
14524
+ self._name = name
14525
+ self._description = description
14526
+ self._created_by = created_by
14527
+ self._created_at = created_at
14528
+ self._archived_at = archived_at
14529
+
14530
+ @builtins.property
14531
+ def rid(self) -> str:
14532
+ return self._rid
14533
+
14534
+ @builtins.property
14535
+ def name(self) -> str:
14536
+ """The name of the module. This is unique to the module in the current workspace.
14537
+ """
14538
+ return self._name
14539
+
14540
+ @builtins.property
14541
+ def description(self) -> str:
14542
+ return self._description
14543
+
14544
+ @builtins.property
14545
+ def created_by(self) -> str:
14546
+ return self._created_by
14547
+
14548
+ @builtins.property
14549
+ def created_at(self) -> str:
14550
+ return self._created_at
14551
+
14552
+ @builtins.property
14553
+ def archived_at(self) -> Optional[str]:
14554
+ """The time at which the module was archived. Unset if the module is not archived.
14555
+ """
14556
+ return self._archived_at
14557
+
14558
+
14559
+ modules_ModuleMetadata.__name__ = "ModuleMetadata"
14560
+ modules_ModuleMetadata.__qualname__ = "ModuleMetadata"
14561
+ modules_ModuleMetadata.__module__ = "nominal_api.modules"
14562
+
14563
+
14564
+ class modules_ModuleParameter(ConjureBeanType):
14565
+
14566
+ @builtins.classmethod
14567
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14568
+ return {
14569
+ 'name': ConjureFieldDefinition('name', str),
14570
+ 'type': ConjureFieldDefinition('type', modules_ValueType)
14571
+ }
14572
+
14573
+ __slots__: List[str] = ['_name', '_type']
14574
+
14575
+ def __init__(self, name: str, type: "modules_ValueType") -> None:
14576
+ self._name = name
14577
+ self._type = type
14578
+
14579
+ @builtins.property
14580
+ def name(self) -> str:
14581
+ return self._name
14582
+
14583
+ @builtins.property
14584
+ def type(self) -> "modules_ValueType":
14585
+ return self._type
14586
+
14587
+
14588
+ modules_ModuleParameter.__name__ = "ModuleParameter"
14589
+ modules_ModuleParameter.__qualname__ = "ModuleParameter"
14590
+ modules_ModuleParameter.__module__ = "nominal_api.modules"
14591
+
14592
+
14593
+ class modules_ModuleRef(ConjureBeanType):
14594
+
14595
+ @builtins.classmethod
14596
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14597
+ return {
14598
+ 'rid': ConjureFieldDefinition('rid', modules_api_ModuleRid)
14599
+ }
14600
+
14601
+ __slots__: List[str] = ['_rid']
14602
+
14603
+ def __init__(self, rid: str) -> None:
14604
+ self._rid = rid
14605
+
14606
+ @builtins.property
14607
+ def rid(self) -> str:
14608
+ return self._rid
14609
+
14610
+
14611
+ modules_ModuleRef.__name__ = "ModuleRef"
14612
+ modules_ModuleRef.__qualname__ = "ModuleRef"
14613
+ modules_ModuleRef.__module__ = "nominal_api.modules"
14614
+
14615
+
14616
+ class modules_ModuleSummary(ConjureBeanType):
14617
+
14618
+ @builtins.classmethod
14619
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14620
+ return {
14621
+ 'metadata': ConjureFieldDefinition('metadata', modules_ModuleMetadata),
14622
+ 'latest': ConjureFieldDefinition('latest', modules_ModuleVersionMetadata)
14623
+ }
14624
+
14625
+ __slots__: List[str] = ['_metadata', '_latest']
14626
+
14627
+ def __init__(self, latest: "modules_ModuleVersionMetadata", metadata: "modules_ModuleMetadata") -> None:
14628
+ self._metadata = metadata
14629
+ self._latest = latest
14630
+
14631
+ @builtins.property
14632
+ def metadata(self) -> "modules_ModuleMetadata":
14633
+ return self._metadata
14634
+
14635
+ @builtins.property
14636
+ def latest(self) -> "modules_ModuleVersionMetadata":
14637
+ return self._latest
14638
+
14639
+
14640
+ modules_ModuleSummary.__name__ = "ModuleSummary"
14641
+ modules_ModuleSummary.__qualname__ = "ModuleSummary"
14642
+ modules_ModuleSummary.__module__ = "nominal_api.modules"
14643
+
14644
+
14645
+ class modules_ModuleVersionDefinition(ConjureBeanType):
14646
+
14647
+ @builtins.classmethod
14648
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14649
+ return {
14650
+ 'parameters': ConjureFieldDefinition('parameters', List[modules_ModuleParameter]),
14651
+ 'default_variables': ConjureFieldDefinition('defaultVariables', List[modules_TypedModuleVariable]),
14652
+ 'functions': ConjureFieldDefinition('functions', List[modules_Function])
14653
+ }
14654
+
14655
+ __slots__: List[str] = ['_parameters', '_default_variables', '_functions']
14656
+
14657
+ def __init__(self, default_variables: List["modules_TypedModuleVariable"], functions: List["modules_Function"], parameters: List["modules_ModuleParameter"]) -> None:
14658
+ self._parameters = parameters
14659
+ self._default_variables = default_variables
14660
+ self._functions = functions
14661
+
14662
+ @builtins.property
14663
+ def parameters(self) -> List["modules_ModuleParameter"]:
14664
+ """Specifies the parameters the module accepts when applying it. Limited to 100.
14665
+ """
14666
+ return self._parameters
14667
+
14668
+ @builtins.property
14669
+ def default_variables(self) -> List["modules_TypedModuleVariable"]:
14670
+ """Specifies the variables that are present within the module to be used by other variables or functions.
14671
+ Limited to 100.
14672
+ """
14673
+ return self._default_variables
14674
+
14675
+ @builtins.property
14676
+ def functions(self) -> List["modules_Function"]:
14677
+ """The list of functions that resolve to derived series that appear in channel search after applying to an
14678
+ asset. Limited to 100.
14679
+ """
14680
+ return self._functions
14681
+
14682
+
14683
+ modules_ModuleVersionDefinition.__name__ = "ModuleVersionDefinition"
14684
+ modules_ModuleVersionDefinition.__qualname__ = "ModuleVersionDefinition"
14685
+ modules_ModuleVersionDefinition.__module__ = "nominal_api.modules"
14686
+
14687
+
14688
+ class modules_ModuleVersionMetadata(ConjureBeanType):
14689
+
14690
+ @builtins.classmethod
14691
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
14692
+ return {
14693
+ 'created_by': ConjureFieldDefinition('createdBy', scout_rids_api_UserRid),
14694
+ 'created_at': ConjureFieldDefinition('createdAt', str)
14695
+ }
14696
+
14697
+ __slots__: List[str] = ['_created_by', '_created_at']
14698
+
14699
+ def __init__(self, created_at: str, created_by: str) -> None:
14700
+ self._created_by = created_by
14701
+ self._created_at = created_at
14702
+
14703
+ @builtins.property
14704
+ def created_by(self) -> str:
14705
+ return self._created_by
14706
+
14707
+ @builtins.property
14708
+ def created_at(self) -> str:
14709
+ return self._created_at
14710
+
14711
+
14712
+ modules_ModuleVersionMetadata.__name__ = "ModuleVersionMetadata"
14713
+ modules_ModuleVersionMetadata.__qualname__ = "ModuleVersionMetadata"
14714
+ modules_ModuleVersionMetadata.__module__ = "nominal_api.modules"
14715
+
14716
+
14717
+ class modules_ModulesService(Service):
14718
+ """Modules define collections of compute logic that can be shared and used across different contexts by applying them
14719
+ to assets. The Modules Service provides the api for managing these collections and using them.
14720
+ """
14721
+
14722
+ def create_module(self, auth_header: str, request: "modules_CreateOrUpdateModuleRequest") -> "modules_Module":
14723
+ """Create a new module.
14724
+ """
14725
+ _conjure_encoder = ConjureEncoder()
14726
+
14727
+ _headers: Dict[str, Any] = {
14728
+ 'Accept': 'application/json',
14729
+ 'Content-Type': 'application/json',
14730
+ 'Authorization': auth_header,
14731
+ }
14732
+
14733
+ _params: Dict[str, Any] = {
14734
+ }
14735
+
14736
+ _path_params: Dict[str, str] = {
14737
+ }
14738
+
14739
+ _json: Any = _conjure_encoder.default(request)
14740
+
14741
+ _path = '/scout/v2/modules'
14742
+ _path = _path.format(**_path_params)
14743
+
14744
+ _response: Response = self._request(
14745
+ 'POST',
14746
+ self._uri + _path,
14747
+ params=_params,
14748
+ headers=_headers,
14749
+ json=_json)
14750
+
14751
+ _decoder = ConjureDecoder()
14752
+ return _decoder.decode(_response.json(), modules_Module, self._return_none_for_unknown_union_types)
14753
+
14754
+ def update_module(self, auth_header: str, module_rid: str, request: "modules_CreateOrUpdateModuleRequest") -> "modules_Module":
14755
+ """Update an existing module.
14756
+ """
14757
+ _conjure_encoder = ConjureEncoder()
14758
+
14759
+ _headers: Dict[str, Any] = {
14760
+ 'Accept': 'application/json',
14761
+ 'Content-Type': 'application/json',
14762
+ 'Authorization': auth_header,
14763
+ }
14764
+
14765
+ _params: Dict[str, Any] = {
14766
+ }
14767
+
14768
+ _path_params: Dict[str, str] = {
14769
+ 'moduleRid': quote(str(_conjure_encoder.default(module_rid)), safe=''),
14770
+ }
14771
+
14772
+ _json: Any = _conjure_encoder.default(request)
14773
+
14774
+ _path = '/scout/v2/modules/{moduleRid}'
14775
+ _path = _path.format(**_path_params)
14776
+
14777
+ _response: Response = self._request(
14778
+ 'PUT',
14779
+ self._uri + _path,
14780
+ params=_params,
14781
+ headers=_headers,
14782
+ json=_json)
14783
+
14784
+ _decoder = ConjureDecoder()
14785
+ return _decoder.decode(_response.json(), modules_Module, self._return_none_for_unknown_union_types)
14786
+
14787
+ def batch_get_modules(self, auth_header: str, request: "modules_BatchGetModulesRequest") -> List["modules_Module"]:
14788
+ """Get a list of modules by their RIDs and version specifiers if provided.
14789
+ """
14790
+ _conjure_encoder = ConjureEncoder()
14791
+
14792
+ _headers: Dict[str, Any] = {
14793
+ 'Accept': 'application/json',
14794
+ 'Content-Type': 'application/json',
14795
+ 'Authorization': auth_header,
14796
+ }
14797
+
14798
+ _params: Dict[str, Any] = {
14799
+ }
14800
+
14801
+ _path_params: Dict[str, str] = {
14802
+ }
14803
+
14804
+ _json: Any = _conjure_encoder.default(request)
14805
+
14806
+ _path = '/scout/v2/modules/batch-get'
14807
+ _path = _path.format(**_path_params)
14808
+
14809
+ _response: Response = self._request(
14810
+ 'POST',
14811
+ self._uri + _path,
14812
+ params=_params,
14813
+ headers=_headers,
14814
+ json=_json)
14815
+
14816
+ _decoder = ConjureDecoder()
14817
+ return _decoder.decode(_response.json(), List[modules_Module], self._return_none_for_unknown_union_types)
14818
+
14819
+ def search_modules(self, auth_header: str, request: "modules_SearchModulesRequest") -> "modules_SearchModulesResponse":
14820
+ """Search for modules.
14821
+ """
14822
+ _conjure_encoder = ConjureEncoder()
14823
+
14824
+ _headers: Dict[str, Any] = {
14825
+ 'Accept': 'application/json',
14826
+ 'Content-Type': 'application/json',
14827
+ 'Authorization': auth_header,
14828
+ }
14829
+
14830
+ _params: Dict[str, Any] = {
14831
+ }
14832
+
14833
+ _path_params: Dict[str, str] = {
14834
+ }
14835
+
14836
+ _json: Any = _conjure_encoder.default(request)
14837
+
14838
+ _path = '/scout/v2/modules/search'
14839
+ _path = _path.format(**_path_params)
14840
+
14841
+ _response: Response = self._request(
14842
+ 'POST',
14843
+ self._uri + _path,
14844
+ params=_params,
14845
+ headers=_headers,
14846
+ json=_json)
14847
+
14848
+ _decoder = ConjureDecoder()
14849
+ return _decoder.decode(_response.json(), modules_SearchModulesResponse, self._return_none_for_unknown_union_types)
14850
+
14851
+ def batch_archive_modules(self, auth_header: str, request: "modules_BatchArchiveModulesRequest") -> "modules_BatchArchiveModulesResponse":
14852
+ """Archive a set of modules.
14853
+ """
14854
+ _conjure_encoder = ConjureEncoder()
14855
+
14856
+ _headers: Dict[str, Any] = {
14857
+ 'Accept': 'application/json',
14858
+ 'Content-Type': 'application/json',
14859
+ 'Authorization': auth_header,
14860
+ }
14861
+
14862
+ _params: Dict[str, Any] = {
14863
+ }
14864
+
14865
+ _path_params: Dict[str, str] = {
14866
+ }
14867
+
14868
+ _json: Any = _conjure_encoder.default(request)
14869
+
14870
+ _path = '/scout/v2/modules/archive'
14871
+ _path = _path.format(**_path_params)
14872
+
14873
+ _response: Response = self._request(
14874
+ 'POST',
14875
+ self._uri + _path,
14876
+ params=_params,
14877
+ headers=_headers,
14878
+ json=_json)
14879
+
14880
+ _decoder = ConjureDecoder()
14881
+ return _decoder.decode(_response.json(), modules_BatchArchiveModulesResponse, self._return_none_for_unknown_union_types)
14882
+
14883
+ def batch_unarchive_modules(self, auth_header: str, request: "modules_BatchUnarchiveModulesRequest") -> "modules_BatchUnarchiveModulesResponse":
14884
+ """Unarchive a set of modules.
14885
+ """
14886
+ _conjure_encoder = ConjureEncoder()
14887
+
14888
+ _headers: Dict[str, Any] = {
14889
+ 'Accept': 'application/json',
14890
+ 'Content-Type': 'application/json',
14891
+ 'Authorization': auth_header,
14892
+ }
14893
+
14894
+ _params: Dict[str, Any] = {
14895
+ }
14896
+
14897
+ _path_params: Dict[str, str] = {
14898
+ }
14899
+
14900
+ _json: Any = _conjure_encoder.default(request)
14901
+
14902
+ _path = '/scout/v2/modules/unarchive'
14903
+ _path = _path.format(**_path_params)
14904
+
14905
+ _response: Response = self._request(
14906
+ 'POST',
14907
+ self._uri + _path,
14908
+ params=_params,
14909
+ headers=_headers,
14910
+ json=_json)
14911
+
14912
+ _decoder = ConjureDecoder()
14913
+ return _decoder.decode(_response.json(), modules_BatchUnarchiveModulesResponse, self._return_none_for_unknown_union_types)
14914
+
14915
+ def apply_module(self, auth_header: str, request: "modules_ApplyModuleRequest") -> "modules_ApplyModuleResponse":
14916
+ """Apply a module to an asset.
14917
+ """
14918
+ _conjure_encoder = ConjureEncoder()
14919
+
14920
+ _headers: Dict[str, Any] = {
14921
+ 'Accept': 'application/json',
14922
+ 'Content-Type': 'application/json',
14923
+ 'Authorization': auth_header,
14924
+ }
14925
+
14926
+ _params: Dict[str, Any] = {
14927
+ }
14928
+
14929
+ _path_params: Dict[str, str] = {
14930
+ }
14931
+
14932
+ _json: Any = _conjure_encoder.default(request)
14933
+
14934
+ _path = '/scout/v2/modules/apply'
14935
+ _path = _path.format(**_path_params)
14936
+
14937
+ _response: Response = self._request(
14938
+ 'POST',
14939
+ self._uri + _path,
14940
+ params=_params,
14941
+ headers=_headers,
14942
+ json=_json)
14943
+
14944
+ _decoder = ConjureDecoder()
14945
+ return _decoder.decode(_response.json(), modules_ApplyModuleResponse, self._return_none_for_unknown_union_types)
14946
+
14947
+ def unapply_module(self, auth_header: str, request: "modules_UnapplyModuleRequest") -> "modules_UnapplyModuleResponse":
14948
+ """Unapply a module from an asset.
14949
+ """
14950
+ _conjure_encoder = ConjureEncoder()
14951
+
14952
+ _headers: Dict[str, Any] = {
14953
+ 'Accept': 'application/json',
14954
+ 'Content-Type': 'application/json',
14955
+ 'Authorization': auth_header,
14956
+ }
14957
+
14958
+ _params: Dict[str, Any] = {
14959
+ }
14960
+
14961
+ _path_params: Dict[str, str] = {
14962
+ }
14963
+
14964
+ _json: Any = _conjure_encoder.default(request)
14965
+
14966
+ _path = '/scout/v2/modules/unapply'
14967
+ _path = _path.format(**_path_params)
14968
+
14969
+ _response: Response = self._request(
14970
+ 'POST',
14971
+ self._uri + _path,
14972
+ params=_params,
14973
+ headers=_headers,
14974
+ json=_json)
14975
+
14976
+ _decoder = ConjureDecoder()
14977
+ return _decoder.decode(_response.json(), modules_UnapplyModuleResponse, self._return_none_for_unknown_union_types)
14978
+
14979
+ def search_module_applications(self, auth_header: str, request: "modules_SearchModuleApplicationsRequest") -> "modules_SearchModuleApplicationsResponse":
14980
+ """Search for module applications.
14981
+ """
14982
+ _conjure_encoder = ConjureEncoder()
14983
+
14984
+ _headers: Dict[str, Any] = {
14985
+ 'Accept': 'application/json',
14986
+ 'Content-Type': 'application/json',
14987
+ 'Authorization': auth_header,
14988
+ }
14989
+
14990
+ _params: Dict[str, Any] = {
14991
+ }
14992
+
14993
+ _path_params: Dict[str, str] = {
14994
+ }
14995
+
14996
+ _json: Any = _conjure_encoder.default(request)
14997
+
14998
+ _path = '/scout/v2/modules/applications/search'
14999
+ _path = _path.format(**_path_params)
15000
+
15001
+ _response: Response = self._request(
15002
+ 'POST',
15003
+ self._uri + _path,
15004
+ params=_params,
15005
+ headers=_headers,
15006
+ json=_json)
15007
+
15008
+ _decoder = ConjureDecoder()
15009
+ return _decoder.decode(_response.json(), modules_SearchModuleApplicationsResponse, self._return_none_for_unknown_union_types)
15010
+
15011
+
15012
+ modules_ModulesService.__name__ = "ModulesService"
15013
+ modules_ModulesService.__qualname__ = "ModulesService"
15014
+ modules_ModulesService.__module__ = "nominal_api.modules"
15015
+
15016
+
15017
+ class modules_SearchModuleApplicationsRequest(ConjureBeanType):
15018
+
15019
+ @builtins.classmethod
15020
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
15021
+ return {
15022
+ 'search_text': ConjureFieldDefinition('searchText', str),
15023
+ 'asset_rids': ConjureFieldDefinition('assetRids', OptionalTypeWrapper[List[scout_rids_api_AssetRid]]),
15024
+ 'module_rids': ConjureFieldDefinition('moduleRids', OptionalTypeWrapper[List[modules_api_ModuleRid]]),
15025
+ 'page_size': ConjureFieldDefinition('pageSize', int),
15026
+ 'next_page_token': ConjureFieldDefinition('nextPageToken', OptionalTypeWrapper[api_Token])
15027
+ }
15028
+
15029
+ __slots__: List[str] = ['_search_text', '_asset_rids', '_module_rids', '_page_size', '_next_page_token']
15030
+
15031
+ def __init__(self, page_size: int, search_text: str, asset_rids: Optional[List[str]] = None, module_rids: Optional[List[str]] = None, next_page_token: Optional[str] = None) -> None:
15032
+ self._search_text = search_text
15033
+ self._asset_rids = asset_rids
15034
+ self._module_rids = module_rids
15035
+ self._page_size = page_size
15036
+ self._next_page_token = next_page_token
15037
+
15038
+ @builtins.property
15039
+ def search_text(self) -> str:
15040
+ return self._search_text
15041
+
15042
+ @builtins.property
15043
+ def asset_rids(self) -> Optional[List[str]]:
15044
+ return self._asset_rids
15045
+
15046
+ @builtins.property
15047
+ def module_rids(self) -> Optional[List[str]]:
15048
+ return self._module_rids
15049
+
15050
+ @builtins.property
15051
+ def page_size(self) -> int:
15052
+ return self._page_size
15053
+
15054
+ @builtins.property
15055
+ def next_page_token(self) -> Optional[str]:
15056
+ return self._next_page_token
15057
+
15058
+
15059
+ modules_SearchModuleApplicationsRequest.__name__ = "SearchModuleApplicationsRequest"
15060
+ modules_SearchModuleApplicationsRequest.__qualname__ = "SearchModuleApplicationsRequest"
15061
+ modules_SearchModuleApplicationsRequest.__module__ = "nominal_api.modules"
15062
+
15063
+
15064
+ class modules_SearchModuleApplicationsResponse(ConjureBeanType):
15065
+
15066
+ @builtins.classmethod
15067
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
15068
+ return {
15069
+ 'results': ConjureFieldDefinition('results', List[modules_ModuleApplication]),
15070
+ 'next_page_token': ConjureFieldDefinition('nextPageToken', OptionalTypeWrapper[api_Token])
15071
+ }
15072
+
15073
+ __slots__: List[str] = ['_results', '_next_page_token']
15074
+
15075
+ def __init__(self, results: List["modules_ModuleApplication"], next_page_token: Optional[str] = None) -> None:
15076
+ self._results = results
15077
+ self._next_page_token = next_page_token
15078
+
15079
+ @builtins.property
15080
+ def results(self) -> List["modules_ModuleApplication"]:
15081
+ return self._results
15082
+
15083
+ @builtins.property
15084
+ def next_page_token(self) -> Optional[str]:
15085
+ return self._next_page_token
15086
+
15087
+
15088
+ modules_SearchModuleApplicationsResponse.__name__ = "SearchModuleApplicationsResponse"
15089
+ modules_SearchModuleApplicationsResponse.__qualname__ = "SearchModuleApplicationsResponse"
15090
+ modules_SearchModuleApplicationsResponse.__module__ = "nominal_api.modules"
15091
+
15092
+
15093
+ class modules_SearchModulesQuery(ConjureUnionType):
15094
+ _search_text: Optional[str] = None
15095
+ _created_by: Optional[str] = None
15096
+ _last_updated_by: Optional[str] = None
15097
+ _and_: Optional[List["modules_SearchModulesQuery"]] = None
15098
+ _or_: Optional[List["modules_SearchModulesQuery"]] = None
15099
+ _not_: Optional["modules_SearchModulesQuery"] = None
15100
+
15101
+ @builtins.classmethod
15102
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
15103
+ return {
15104
+ 'search_text': ConjureFieldDefinition('searchText', str),
15105
+ 'created_by': ConjureFieldDefinition('createdBy', scout_rids_api_UserRid),
15106
+ 'last_updated_by': ConjureFieldDefinition('lastUpdatedBy', scout_rids_api_UserRid),
15107
+ 'and_': ConjureFieldDefinition('and', List[modules_SearchModulesQuery]),
15108
+ 'or_': ConjureFieldDefinition('or', List[modules_SearchModulesQuery]),
15109
+ 'not_': ConjureFieldDefinition('not', modules_SearchModulesQuery)
15110
+ }
15111
+
15112
+ def __init__(
15113
+ self,
15114
+ search_text: Optional[str] = None,
15115
+ created_by: Optional[str] = None,
15116
+ last_updated_by: Optional[str] = None,
15117
+ and_: Optional[List["modules_SearchModulesQuery"]] = None,
15118
+ or_: Optional[List["modules_SearchModulesQuery"]] = None,
15119
+ not_: Optional["modules_SearchModulesQuery"] = None,
15120
+ type_of_union: Optional[str] = None
15121
+ ) -> None:
15122
+ if type_of_union is None:
15123
+ if (search_text is not None) + (created_by is not None) + (last_updated_by is not None) + (and_ is not None) + (or_ is not None) + (not_ is not None) != 1:
15124
+ raise ValueError('a union must contain a single member')
15125
+
15126
+ if search_text is not None:
15127
+ self._search_text = search_text
15128
+ self._type = 'searchText'
15129
+ if created_by is not None:
15130
+ self._created_by = created_by
15131
+ self._type = 'createdBy'
15132
+ if last_updated_by is not None:
15133
+ self._last_updated_by = last_updated_by
15134
+ self._type = 'lastUpdatedBy'
15135
+ if and_ is not None:
15136
+ self._and_ = and_
15137
+ self._type = 'and'
15138
+ if or_ is not None:
15139
+ self._or_ = or_
15140
+ self._type = 'or'
15141
+ if not_ is not None:
15142
+ self._not_ = not_
15143
+ self._type = 'not'
15144
+
15145
+ elif type_of_union == 'searchText':
15146
+ if search_text is None:
15147
+ raise ValueError('a union value must not be None')
15148
+ self._search_text = search_text
15149
+ self._type = 'searchText'
15150
+ elif type_of_union == 'createdBy':
15151
+ if created_by is None:
15152
+ raise ValueError('a union value must not be None')
15153
+ self._created_by = created_by
15154
+ self._type = 'createdBy'
15155
+ elif type_of_union == 'lastUpdatedBy':
15156
+ if last_updated_by is None:
15157
+ raise ValueError('a union value must not be None')
15158
+ self._last_updated_by = last_updated_by
15159
+ self._type = 'lastUpdatedBy'
15160
+ elif type_of_union == 'and':
15161
+ if and_ is None:
15162
+ raise ValueError('a union value must not be None')
15163
+ self._and_ = and_
15164
+ self._type = 'and'
15165
+ elif type_of_union == 'or':
15166
+ if or_ is None:
15167
+ raise ValueError('a union value must not be None')
15168
+ self._or_ = or_
15169
+ self._type = 'or'
15170
+ elif type_of_union == 'not':
15171
+ if not_ is None:
15172
+ raise ValueError('a union value must not be None')
15173
+ self._not_ = not_
15174
+ self._type = 'not'
15175
+
15176
+ @builtins.property
15177
+ def search_text(self) -> Optional[str]:
15178
+ return self._search_text
15179
+
15180
+ @builtins.property
15181
+ def created_by(self) -> Optional[str]:
15182
+ return self._created_by
15183
+
15184
+ @builtins.property
15185
+ def last_updated_by(self) -> Optional[str]:
15186
+ return self._last_updated_by
15187
+
15188
+ @builtins.property
15189
+ def and_(self) -> Optional[List["modules_SearchModulesQuery"]]:
15190
+ return self._and_
15191
+
15192
+ @builtins.property
15193
+ def or_(self) -> Optional[List["modules_SearchModulesQuery"]]:
15194
+ return self._or_
15195
+
15196
+ @builtins.property
15197
+ def not_(self) -> Optional["modules_SearchModulesQuery"]:
15198
+ return self._not_
15199
+
15200
+ def accept(self, visitor) -> Any:
15201
+ if not isinstance(visitor, modules_SearchModulesQueryVisitor):
15202
+ raise ValueError('{} is not an instance of modules_SearchModulesQueryVisitor'.format(visitor.__class__.__name__))
15203
+ if self._type == 'searchText' and self.search_text is not None:
15204
+ return visitor._search_text(self.search_text)
15205
+ if self._type == 'createdBy' and self.created_by is not None:
15206
+ return visitor._created_by(self.created_by)
15207
+ if self._type == 'lastUpdatedBy' and self.last_updated_by is not None:
15208
+ return visitor._last_updated_by(self.last_updated_by)
15209
+ if self._type == 'and' and self.and_ is not None:
15210
+ return visitor._and(self.and_)
15211
+ if self._type == 'or' and self.or_ is not None:
15212
+ return visitor._or(self.or_)
15213
+ if self._type == 'not' and self.not_ is not None:
15214
+ return visitor._not(self.not_)
15215
+
15216
+
15217
+ modules_SearchModulesQuery.__name__ = "SearchModulesQuery"
15218
+ modules_SearchModulesQuery.__qualname__ = "SearchModulesQuery"
15219
+ modules_SearchModulesQuery.__module__ = "nominal_api.modules"
15220
+
15221
+
15222
+ class modules_SearchModulesQueryVisitor:
15223
+
15224
+ @abstractmethod
15225
+ def _search_text(self, search_text: str) -> Any:
15226
+ pass
15227
+
15228
+ @abstractmethod
15229
+ def _created_by(self, created_by: str) -> Any:
15230
+ pass
15231
+
15232
+ @abstractmethod
15233
+ def _last_updated_by(self, last_updated_by: str) -> Any:
15234
+ pass
15235
+
15236
+ @abstractmethod
15237
+ def _and(self, and_: List["modules_SearchModulesQuery"]) -> Any:
15238
+ pass
15239
+
15240
+ @abstractmethod
15241
+ def _or(self, or_: List["modules_SearchModulesQuery"]) -> Any:
15242
+ pass
15243
+
15244
+ @abstractmethod
15245
+ def _not(self, not_: "modules_SearchModulesQuery") -> Any:
15246
+ pass
15247
+
15248
+
15249
+ modules_SearchModulesQueryVisitor.__name__ = "SearchModulesQueryVisitor"
15250
+ modules_SearchModulesQueryVisitor.__qualname__ = "SearchModulesQueryVisitor"
15251
+ modules_SearchModulesQueryVisitor.__module__ = "nominal_api.modules"
15252
+
15253
+
15254
+ class modules_SearchModulesRequest(ConjureBeanType):
15255
+
15256
+ @builtins.classmethod
15257
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
15258
+ return {
15259
+ 'query': ConjureFieldDefinition('query', modules_SearchModulesQuery),
15260
+ 'page_size': ConjureFieldDefinition('pageSize', int),
15261
+ 'next_page_token': ConjureFieldDefinition('nextPageToken', OptionalTypeWrapper[api_Token])
15262
+ }
15263
+
15264
+ __slots__: List[str] = ['_query', '_page_size', '_next_page_token']
15265
+
15266
+ def __init__(self, page_size: int, query: "modules_SearchModulesQuery", next_page_token: Optional[str] = None) -> None:
15267
+ self._query = query
15268
+ self._page_size = page_size
15269
+ self._next_page_token = next_page_token
15270
+
15271
+ @builtins.property
15272
+ def query(self) -> "modules_SearchModulesQuery":
15273
+ return self._query
15274
+
15275
+ @builtins.property
15276
+ def page_size(self) -> int:
15277
+ return self._page_size
15278
+
15279
+ @builtins.property
15280
+ def next_page_token(self) -> Optional[str]:
15281
+ return self._next_page_token
15282
+
15283
+
15284
+ modules_SearchModulesRequest.__name__ = "SearchModulesRequest"
15285
+ modules_SearchModulesRequest.__qualname__ = "SearchModulesRequest"
15286
+ modules_SearchModulesRequest.__module__ = "nominal_api.modules"
15287
+
15288
+
15289
+ class modules_SearchModulesResponse(ConjureBeanType):
15290
+
15291
+ @builtins.classmethod
15292
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
15293
+ return {
15294
+ 'results': ConjureFieldDefinition('results', List[modules_ModuleSummary]),
15295
+ 'next_page_token': ConjureFieldDefinition('nextPageToken', OptionalTypeWrapper[api_Token])
15296
+ }
15297
+
15298
+ __slots__: List[str] = ['_results', '_next_page_token']
15299
+
15300
+ def __init__(self, results: List["modules_ModuleSummary"], next_page_token: Optional[str] = None) -> None:
15301
+ self._results = results
15302
+ self._next_page_token = next_page_token
15303
+
15304
+ @builtins.property
15305
+ def results(self) -> List["modules_ModuleSummary"]:
15306
+ return self._results
15307
+
15308
+ @builtins.property
15309
+ def next_page_token(self) -> Optional[str]:
15310
+ return self._next_page_token
15311
+
15312
+
15313
+ modules_SearchModulesResponse.__name__ = "SearchModulesResponse"
15314
+ modules_SearchModulesResponse.__qualname__ = "SearchModulesResponse"
15315
+ modules_SearchModulesResponse.__module__ = "nominal_api.modules"
15316
+
15317
+
15318
+ class modules_SemanticVersion(ConjureBeanType):
15319
+
15320
+ @builtins.classmethod
15321
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
15322
+ return {
15323
+ 'major': ConjureFieldDefinition('major', int),
15324
+ 'minor': ConjureFieldDefinition('minor', int),
15325
+ 'patch': ConjureFieldDefinition('patch', int)
15326
+ }
15327
+
15328
+ __slots__: List[str] = ['_major', '_minor', '_patch']
15329
+
15330
+ def __init__(self, major: int, minor: int, patch: int) -> None:
15331
+ self._major = major
15332
+ self._minor = minor
15333
+ self._patch = patch
15334
+
15335
+ @builtins.property
15336
+ def major(self) -> int:
15337
+ return self._major
15338
+
15339
+ @builtins.property
15340
+ def minor(self) -> int:
15341
+ return self._minor
15342
+
15343
+ @builtins.property
15344
+ def patch(self) -> int:
15345
+ return self._patch
15346
+
15347
+
15348
+ modules_SemanticVersion.__name__ = "SemanticVersion"
15349
+ modules_SemanticVersion.__qualname__ = "SemanticVersion"
15350
+ modules_SemanticVersion.__module__ = "nominal_api.modules"
15351
+
15352
+
15353
+ class modules_TypedModuleVariable(ConjureBeanType):
15354
+
15355
+ @builtins.classmethod
15356
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
15357
+ return {
15358
+ 'name': ConjureFieldDefinition('name', str),
15359
+ 'type': ConjureFieldDefinition('type', modules_ValueType),
15360
+ 'value': ConjureFieldDefinition('value', scout_compute_api_VariableValue)
15361
+ }
15362
+
15363
+ __slots__: List[str] = ['_name', '_type', '_value']
15364
+
15365
+ def __init__(self, name: str, type: "modules_ValueType", value: "scout_compute_api_VariableValue") -> None:
15366
+ self._name = name
15367
+ self._type = type
15368
+ self._value = value
15369
+
15370
+ @builtins.property
15371
+ def name(self) -> str:
15372
+ return self._name
15373
+
15374
+ @builtins.property
15375
+ def type(self) -> "modules_ValueType":
15376
+ return self._type
15377
+
15378
+ @builtins.property
15379
+ def value(self) -> "scout_compute_api_VariableValue":
15380
+ return self._value
15381
+
15382
+
15383
+ modules_TypedModuleVariable.__name__ = "TypedModuleVariable"
15384
+ modules_TypedModuleVariable.__qualname__ = "TypedModuleVariable"
15385
+ modules_TypedModuleVariable.__module__ = "nominal_api.modules"
15386
+
15387
+
15388
+ class modules_UnapplyModuleRequest(ConjureBeanType):
15389
+
15390
+ @builtins.classmethod
15391
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
15392
+ return {
15393
+ 'module_rid': ConjureFieldDefinition('moduleRid', modules_api_ModuleRid),
15394
+ 'asset_rid': ConjureFieldDefinition('assetRid', scout_rids_api_AssetRid)
15395
+ }
15396
+
15397
+ __slots__: List[str] = ['_module_rid', '_asset_rid']
15398
+
15399
+ def __init__(self, asset_rid: str, module_rid: str) -> None:
15400
+ self._module_rid = module_rid
15401
+ self._asset_rid = asset_rid
15402
+
15403
+ @builtins.property
15404
+ def module_rid(self) -> str:
15405
+ return self._module_rid
15406
+
15407
+ @builtins.property
15408
+ def asset_rid(self) -> str:
15409
+ return self._asset_rid
15410
+
15411
+
15412
+ modules_UnapplyModuleRequest.__name__ = "UnapplyModuleRequest"
15413
+ modules_UnapplyModuleRequest.__qualname__ = "UnapplyModuleRequest"
15414
+ modules_UnapplyModuleRequest.__module__ = "nominal_api.modules"
15415
+
15416
+
15417
+ class modules_UnapplyModuleResponse(ConjureBeanType):
15418
+
15419
+ @builtins.classmethod
15420
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
15421
+ return {
15422
+ 'success': ConjureFieldDefinition('success', bool)
15423
+ }
15424
+
15425
+ __slots__: List[str] = ['_success']
15426
+
15427
+ def __init__(self, success: bool) -> None:
15428
+ self._success = success
15429
+
15430
+ @builtins.property
15431
+ def success(self) -> bool:
15432
+ return self._success
15433
+
15434
+
15435
+ modules_UnapplyModuleResponse.__name__ = "UnapplyModuleResponse"
15436
+ modules_UnapplyModuleResponse.__qualname__ = "UnapplyModuleResponse"
15437
+ modules_UnapplyModuleResponse.__module__ = "nominal_api.modules"
15438
+
15439
+
15440
+ class modules_ValueType(ConjureEnumType):
15441
+
15442
+ NUMERIC_SERIES = 'NUMERIC_SERIES'
15443
+ '''NUMERIC_SERIES'''
15444
+ ENUM_SERIES = 'ENUM_SERIES'
15445
+ '''ENUM_SERIES'''
15446
+ RANGES_SERIES = 'RANGES_SERIES'
15447
+ '''RANGES_SERIES'''
15448
+ STRING_CONSTANT = 'STRING_CONSTANT'
15449
+ '''STRING_CONSTANT'''
15450
+ DURATION_CONSTANT = 'DURATION_CONSTANT'
15451
+ '''DURATION_CONSTANT'''
15452
+ TIMESTAMP_CONSTANT = 'TIMESTAMP_CONSTANT'
15453
+ '''TIMESTAMP_CONSTANT'''
15454
+ INTEGER_CONSTANT = 'INTEGER_CONSTANT'
15455
+ '''INTEGER_CONSTANT'''
15456
+ ASSET_RID = 'ASSET_RID'
15457
+ '''ASSET_RID'''
15458
+ UNKNOWN = 'UNKNOWN'
15459
+ '''UNKNOWN'''
15460
+
15461
+ def __reduce_ex__(self, proto):
15462
+ return self.__class__, (self.name,)
15463
+
15464
+
15465
+ modules_ValueType.__name__ = "ValueType"
15466
+ modules_ValueType.__qualname__ = "ValueType"
15467
+ modules_ValueType.__module__ = "nominal_api.modules"
15468
+
15469
+
13861
15470
  class persistent_compute_api_AppendResult(ConjureBeanType):
13862
15471
  """An append result won't cover the full `StreamingComputeNodeRequest#windowWidth` but rather just a smaller
13863
15472
  window. The end of the window that the append covers is guaranteed to be later than previously sent results.
@@ -14506,6 +16115,8 @@ class persistent_compute_api_InvalidComputationType(ConjureEnumType):
14506
16115
  '''LOG_SERIES'''
14507
16116
  LITERAL_RANGES = 'LITERAL_RANGES'
14508
16117
  '''LITERAL_RANGES'''
16118
+ ARRAY = 'ARRAY'
16119
+ '''ARRAY'''
14509
16120
  UNKNOWN = 'UNKNOWN'
14510
16121
  '''UNKNOWN'''
14511
16122
 
@@ -17865,7 +19476,7 @@ class scout_asset_api_Asset(ConjureBeanType):
17865
19476
  'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
17866
19477
  'labels': ConjureFieldDefinition('labels', List[api_Label]),
17867
19478
  'links': ConjureFieldDefinition('links', List[scout_run_api_Link]),
17868
- 'data_scopes': ConjureFieldDefinition('dataScopes', List[scout_asset_api_AssetDataScope]),
19479
+ 'data_scopes': ConjureFieldDefinition('dataScopes', List[scout_asset_api_DataScope]),
17869
19480
  'created_by': ConjureFieldDefinition('createdBy', OptionalTypeWrapper[str]),
17870
19481
  'created_at': ConjureFieldDefinition('createdAt', str),
17871
19482
  'updated_at': ConjureFieldDefinition('updatedAt', str),
@@ -17877,7 +19488,7 @@ class scout_asset_api_Asset(ConjureBeanType):
17877
19488
 
17878
19489
  __slots__: List[str] = ['_rid', '_title', '_description', '_properties', '_labels', '_links', '_data_scopes', '_created_by', '_created_at', '_updated_at', '_attachments', '_type', '_is_staged', '_is_archived']
17879
19490
 
17880
- def __init__(self, attachments: List[str], created_at: str, data_scopes: List["scout_asset_api_AssetDataScope"], is_archived: bool, is_staged: bool, labels: List[str], links: List["scout_run_api_Link"], properties: Dict[str, str], rid: str, title: str, updated_at: str, created_by: Optional[str] = None, description: Optional[str] = None, type: Optional[str] = None) -> None:
19491
+ def __init__(self, attachments: List[str], created_at: str, data_scopes: List["scout_asset_api_DataScope"], is_archived: bool, is_staged: bool, labels: List[str], links: List["scout_run_api_Link"], properties: Dict[str, str], rid: str, title: str, updated_at: str, created_by: Optional[str] = None, description: Optional[str] = None, type: Optional[str] = None) -> None:
17881
19492
  self._rid = rid
17882
19493
  self._title = title
17883
19494
  self._description = description
@@ -17924,7 +19535,7 @@ To associate links with a range of time, create a time range on the asset with l
17924
19535
  return self._links
17925
19536
 
17926
19537
  @builtins.property
17927
- def data_scopes(self) -> List["scout_asset_api_AssetDataScope"]:
19538
+ def data_scopes(self) -> List["scout_asset_api_DataScope"]:
17928
19539
  """The data scopes associated with the asset.
17929
19540
  """
17930
19541
  return self._data_scopes
@@ -17965,16 +19576,317 @@ scout_asset_api_Asset.__qualname__ = "Asset"
17965
19576
  scout_asset_api_Asset.__module__ = "nominal_api.scout_asset_api"
17966
19577
 
17967
19578
 
17968
- class scout_asset_api_AssetDataScope(ConjureBeanType):
19579
+ class scout_asset_api_AssetSortOptions(ConjureBeanType):
19580
+
19581
+ @builtins.classmethod
19582
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
19583
+ return {
19584
+ 'is_descending': ConjureFieldDefinition('isDescending', bool),
19585
+ 'field': ConjureFieldDefinition('field', OptionalTypeWrapper[scout_asset_api_SortField]),
19586
+ 'sort_key': ConjureFieldDefinition('sortKey', OptionalTypeWrapper[scout_asset_api_SortKey])
19587
+ }
19588
+
19589
+ __slots__: List[str] = ['_is_descending', '_field', '_sort_key']
19590
+
19591
+ def __init__(self, is_descending: bool, field: Optional["scout_asset_api_SortField"] = None, sort_key: Optional["scout_asset_api_SortKey"] = None) -> None:
19592
+ self._is_descending = is_descending
19593
+ self._field = field
19594
+ self._sort_key = sort_key
19595
+
19596
+ @builtins.property
19597
+ def is_descending(self) -> bool:
19598
+ return self._is_descending
19599
+
19600
+ @builtins.property
19601
+ def field(self) -> Optional["scout_asset_api_SortField"]:
19602
+ return self._field
19603
+
19604
+ @builtins.property
19605
+ def sort_key(self) -> Optional["scout_asset_api_SortKey"]:
19606
+ """Field to sort by. Includes both field and property-based sorting.
19607
+ Must be supplied if field is not provided separately.
19608
+ """
19609
+ return self._sort_key
19610
+
19611
+
19612
+ scout_asset_api_AssetSortOptions.__name__ = "AssetSortOptions"
19613
+ scout_asset_api_AssetSortOptions.__qualname__ = "AssetSortOptions"
19614
+ scout_asset_api_AssetSortOptions.__module__ = "nominal_api.scout_asset_api"
19615
+
19616
+
19617
+ class scout_asset_api_AssetTypeDataScopeConfig(ConjureBeanType):
19618
+
19619
+ @builtins.classmethod
19620
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
19621
+ return {
19622
+ 'suggested_ref_name': ConjureFieldDefinition('suggestedRefName', OptionalTypeWrapper[str]),
19623
+ 'tags': ConjureFieldDefinition('tags', scout_asset_api_TagConfig)
19624
+ }
19625
+
19626
+ __slots__: List[str] = ['_suggested_ref_name', '_tags']
19627
+
19628
+ def __init__(self, tags: "scout_asset_api_TagConfig", suggested_ref_name: Optional[str] = None) -> None:
19629
+ self._suggested_ref_name = suggested_ref_name
19630
+ self._tags = tags
19631
+
19632
+ @builtins.property
19633
+ def suggested_ref_name(self) -> Optional[str]:
19634
+ return self._suggested_ref_name
19635
+
19636
+ @builtins.property
19637
+ def tags(self) -> "scout_asset_api_TagConfig":
19638
+ """Tag names that should be supplied to downscope data for an asset of the asset type. These are not
19639
+ enforced.
19640
+ """
19641
+ return self._tags
19642
+
19643
+
19644
+ scout_asset_api_AssetTypeDataScopeConfig.__name__ = "AssetTypeDataScopeConfig"
19645
+ scout_asset_api_AssetTypeDataScopeConfig.__qualname__ = "AssetTypeDataScopeConfig"
19646
+ scout_asset_api_AssetTypeDataScopeConfig.__module__ = "nominal_api.scout_asset_api"
19647
+
19648
+
19649
+ class scout_asset_api_ChannelMetadata(ConjureBeanType):
17969
19650
 
17970
19651
  @builtins.classmethod
17971
19652
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
17972
19653
  return {
17973
- 'data_scope_name': ConjureFieldDefinition('dataScopeName', scout_asset_api_DataScopeName),
19654
+ 'name': ConjureFieldDefinition('name', scout_asset_api_Channel),
19655
+ 'data_source': ConjureFieldDefinition('dataSource', scout_run_api_DataSource),
19656
+ 'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[scout_run_api_Unit]),
19657
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
19658
+ 'data_type': ConjureFieldDefinition('dataType', OptionalTypeWrapper[api_SeriesDataType])
19659
+ }
19660
+
19661
+ __slots__: List[str] = ['_name', '_data_source', '_unit', '_description', '_data_type']
19662
+
19663
+ def __init__(self, data_source: "scout_run_api_DataSource", name: str, data_type: Optional["api_SeriesDataType"] = None, description: Optional[str] = None, unit: Optional["scout_run_api_Unit"] = None) -> None:
19664
+ self._name = name
19665
+ self._data_source = data_source
19666
+ self._unit = unit
19667
+ self._description = description
19668
+ self._data_type = data_type
19669
+
19670
+ @builtins.property
19671
+ def name(self) -> str:
19672
+ return self._name
19673
+
19674
+ @builtins.property
19675
+ def data_source(self) -> "scout_run_api_DataSource":
19676
+ return self._data_source
19677
+
19678
+ @builtins.property
19679
+ def unit(self) -> Optional["scout_run_api_Unit"]:
19680
+ return self._unit
19681
+
19682
+ @builtins.property
19683
+ def description(self) -> Optional[str]:
19684
+ return self._description
19685
+
19686
+ @builtins.property
19687
+ def data_type(self) -> Optional["api_SeriesDataType"]:
19688
+ return self._data_type
19689
+
19690
+
19691
+ scout_asset_api_ChannelMetadata.__name__ = "ChannelMetadata"
19692
+ scout_asset_api_ChannelMetadata.__qualname__ = "ChannelMetadata"
19693
+ scout_asset_api_ChannelMetadata.__module__ = "nominal_api.scout_asset_api"
19694
+
19695
+
19696
+ class scout_asset_api_CreateAssetDataScope(ConjureBeanType):
19697
+
19698
+ @builtins.classmethod
19699
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
19700
+ return {
19701
+ 'data_scope_name': ConjureFieldDefinition('dataScopeName', scout_api_DataSourceRefName),
19702
+ 'data_source': ConjureFieldDefinition('dataSource', scout_run_api_DataSource),
19703
+ 'offset': ConjureFieldDefinition('offset', OptionalTypeWrapper[scout_run_api_Duration]),
19704
+ 'series_tags': ConjureFieldDefinition('seriesTags', Dict[api_TagName, api_TagValue])
19705
+ }
19706
+
19707
+ __slots__: List[str] = ['_data_scope_name', '_data_source', '_offset', '_series_tags']
19708
+
19709
+ def __init__(self, data_scope_name: str, data_source: "scout_run_api_DataSource", series_tags: Dict[str, str], offset: Optional["scout_run_api_Duration"] = None) -> None:
19710
+ self._data_scope_name = data_scope_name
19711
+ self._data_source = data_source
19712
+ self._offset = offset
19713
+ self._series_tags = series_tags
19714
+
19715
+ @builtins.property
19716
+ def data_scope_name(self) -> str:
19717
+ """The name of the data scope. The name is guaranteed to be be unique within the context of an asset.
19718
+ """
19719
+ return self._data_scope_name
19720
+
19721
+ @builtins.property
19722
+ def data_source(self) -> "scout_run_api_DataSource":
19723
+ return self._data_source
19724
+
19725
+ @builtins.property
19726
+ def offset(self) -> Optional["scout_run_api_Duration"]:
19727
+ return self._offset
19728
+
19729
+ @builtins.property
19730
+ def series_tags(self) -> Dict[str, str]:
19731
+ """Filters the data source to series matching these tag values. The filtered set of series should be
19732
+ the ones that belong to the asset.
19733
+ """
19734
+ return self._series_tags
19735
+
19736
+
19737
+ scout_asset_api_CreateAssetDataScope.__name__ = "CreateAssetDataScope"
19738
+ scout_asset_api_CreateAssetDataScope.__qualname__ = "CreateAssetDataScope"
19739
+ scout_asset_api_CreateAssetDataScope.__module__ = "nominal_api.scout_asset_api"
19740
+
19741
+
19742
+ class scout_asset_api_CreateAssetRequest(ConjureBeanType):
19743
+
19744
+ @builtins.classmethod
19745
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
19746
+ return {
19747
+ 'title': ConjureFieldDefinition('title', str),
19748
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
19749
+ 'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
19750
+ 'labels': ConjureFieldDefinition('labels', List[api_Label]),
19751
+ 'links': ConjureFieldDefinition('links', List[scout_run_api_Link]),
19752
+ 'data_scopes': ConjureFieldDefinition('dataScopes', List[scout_asset_api_CreateAssetDataScope]),
19753
+ 'attachments': ConjureFieldDefinition('attachments', List[api_rids_AttachmentRid]),
19754
+ 'type': ConjureFieldDefinition('type', OptionalTypeWrapper[scout_rids_api_TypeRid]),
19755
+ 'workspace': ConjureFieldDefinition('workspace', OptionalTypeWrapper[api_rids_WorkspaceRid])
19756
+ }
19757
+
19758
+ __slots__: List[str] = ['_title', '_description', '_properties', '_labels', '_links', '_data_scopes', '_attachments', '_type', '_workspace']
19759
+
19760
+ def __init__(self, attachments: List[str], data_scopes: List["scout_asset_api_CreateAssetDataScope"], labels: List[str], links: List["scout_run_api_Link"], properties: Dict[str, str], title: str, description: Optional[str] = None, type: Optional[str] = None, workspace: Optional[str] = None) -> None:
19761
+ self._title = title
19762
+ self._description = description
19763
+ self._properties = properties
19764
+ self._labels = labels
19765
+ self._links = links
19766
+ self._data_scopes = data_scopes
19767
+ self._attachments = attachments
19768
+ self._type = type
19769
+ self._workspace = workspace
19770
+
19771
+ @builtins.property
19772
+ def title(self) -> str:
19773
+ return self._title
19774
+
19775
+ @builtins.property
19776
+ def description(self) -> Optional[str]:
19777
+ return self._description
19778
+
19779
+ @builtins.property
19780
+ def properties(self) -> Dict[str, str]:
19781
+ return self._properties
19782
+
19783
+ @builtins.property
19784
+ def labels(self) -> List[str]:
19785
+ return self._labels
19786
+
19787
+ @builtins.property
19788
+ def links(self) -> List["scout_run_api_Link"]:
19789
+ return self._links
19790
+
19791
+ @builtins.property
19792
+ def data_scopes(self) -> List["scout_asset_api_CreateAssetDataScope"]:
19793
+ """The data scopes associated with the asset.
19794
+ """
19795
+ return self._data_scopes
19796
+
19797
+ @builtins.property
19798
+ def attachments(self) -> List[str]:
19799
+ return self._attachments
19800
+
19801
+ @builtins.property
19802
+ def type(self) -> Optional[str]:
19803
+ return self._type
19804
+
19805
+ @builtins.property
19806
+ def workspace(self) -> Optional[str]:
19807
+ """The workspace in which to create the asset. If not provided, the asset will be created in
19808
+ the default workspace for the user's organization, if the default workspace for the
19809
+ organization is configured.
19810
+ All data scopes, attachments, and the optional asset type must be in the same workspace.
19811
+ """
19812
+ return self._workspace
19813
+
19814
+
19815
+ scout_asset_api_CreateAssetRequest.__name__ = "CreateAssetRequest"
19816
+ scout_asset_api_CreateAssetRequest.__qualname__ = "CreateAssetRequest"
19817
+ scout_asset_api_CreateAssetRequest.__module__ = "nominal_api.scout_asset_api"
19818
+
19819
+
19820
+ class scout_asset_api_CreateTypeRequest(ConjureBeanType):
19821
+
19822
+ @builtins.classmethod
19823
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
19824
+ return {
19825
+ 'name': ConjureFieldDefinition('name', str),
19826
+ 'property_configs': ConjureFieldDefinition('propertyConfigs', Dict[api_PropertyName, scout_asset_api_PropertyConfig]),
19827
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
19828
+ 'icon_name': ConjureFieldDefinition('iconName', OptionalTypeWrapper[str]),
19829
+ 'workspace': ConjureFieldDefinition('workspace', OptionalTypeWrapper[api_rids_WorkspaceRid]),
19830
+ 'datasource_configs': ConjureFieldDefinition('datasourceConfigs', OptionalTypeWrapper[Dict[api_rids_DataSourceRid, scout_asset_api_AssetTypeDataScopeConfig]])
19831
+ }
19832
+
19833
+ __slots__: List[str] = ['_name', '_property_configs', '_description', '_icon_name', '_workspace', '_datasource_configs']
19834
+
19835
+ def __init__(self, name: str, property_configs: Dict[str, "scout_asset_api_PropertyConfig"], datasource_configs: Optional[Dict[str, "scout_asset_api_AssetTypeDataScopeConfig"]] = None, description: Optional[str] = None, icon_name: Optional[str] = None, workspace: Optional[str] = None) -> None:
19836
+ self._name = name
19837
+ self._property_configs = property_configs
19838
+ self._description = description
19839
+ self._icon_name = icon_name
19840
+ self._workspace = workspace
19841
+ self._datasource_configs = datasource_configs
19842
+
19843
+ @builtins.property
19844
+ def name(self) -> str:
19845
+ return self._name
19846
+
19847
+ @builtins.property
19848
+ def property_configs(self) -> Dict[str, "scout_asset_api_PropertyConfig"]:
19849
+ return self._property_configs
19850
+
19851
+ @builtins.property
19852
+ def description(self) -> Optional[str]:
19853
+ return self._description
19854
+
19855
+ @builtins.property
19856
+ def icon_name(self) -> Optional[str]:
19857
+ return self._icon_name
19858
+
19859
+ @builtins.property
19860
+ def workspace(self) -> Optional[str]:
19861
+ """The workspace in which to create the asset type. If not provided, the asset type will be created in
19862
+ the default workspace for the user's organization, if the default workspace for the
19863
+ organization is configured.
19864
+ """
19865
+ return self._workspace
19866
+
19867
+ @builtins.property
19868
+ def datasource_configs(self) -> Optional[Dict[str, "scout_asset_api_AssetTypeDataScopeConfig"]]:
19869
+ """The configuration outlines what a data scope should provide when added to an asset of this type. It is
19870
+ referenced at data scope creation time, but does not actively modify existing data scopes.
19871
+ """
19872
+ return self._datasource_configs
19873
+
19874
+
19875
+ scout_asset_api_CreateTypeRequest.__name__ = "CreateTypeRequest"
19876
+ scout_asset_api_CreateTypeRequest.__qualname__ = "CreateTypeRequest"
19877
+ scout_asset_api_CreateTypeRequest.__module__ = "nominal_api.scout_asset_api"
19878
+
19879
+
19880
+ class scout_asset_api_DataScope(ConjureBeanType):
19881
+
19882
+ @builtins.classmethod
19883
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
19884
+ return {
19885
+ 'data_scope_name': ConjureFieldDefinition('dataScopeName', scout_api_DataSourceRefName),
17974
19886
  'data_source': ConjureFieldDefinition('dataSource', scout_run_api_DataSource),
17975
19887
  'offset': ConjureFieldDefinition('offset', OptionalTypeWrapper[scout_run_api_Duration]),
17976
19888
  'timestamp_type': ConjureFieldDefinition('timestampType', scout_run_api_WeakTimestampType),
17977
- 'series_tags': ConjureFieldDefinition('seriesTags', Dict[scout_asset_api_SeriesTagName, scout_asset_api_SeriesTagValue])
19889
+ 'series_tags': ConjureFieldDefinition('seriesTags', Dict[api_TagName, api_TagValue])
17978
19890
  }
17979
19891
 
17980
19892
  __slots__: List[str] = ['_data_scope_name', '_data_source', '_offset', '_timestamp_type', '_series_tags']
@@ -18012,310 +19924,9 @@ the ones that belong to the asset.
18012
19924
  return self._series_tags
18013
19925
 
18014
19926
 
18015
- scout_asset_api_AssetDataScope.__name__ = "AssetDataScope"
18016
- scout_asset_api_AssetDataScope.__qualname__ = "AssetDataScope"
18017
- scout_asset_api_AssetDataScope.__module__ = "nominal_api.scout_asset_api"
18018
-
18019
-
18020
- class scout_asset_api_AssetSortOptions(ConjureBeanType):
18021
-
18022
- @builtins.classmethod
18023
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
18024
- return {
18025
- 'is_descending': ConjureFieldDefinition('isDescending', bool),
18026
- 'field': ConjureFieldDefinition('field', OptionalTypeWrapper[scout_asset_api_SortField]),
18027
- 'sort_key': ConjureFieldDefinition('sortKey', OptionalTypeWrapper[scout_asset_api_SortKey])
18028
- }
18029
-
18030
- __slots__: List[str] = ['_is_descending', '_field', '_sort_key']
18031
-
18032
- def __init__(self, is_descending: bool, field: Optional["scout_asset_api_SortField"] = None, sort_key: Optional["scout_asset_api_SortKey"] = None) -> None:
18033
- self._is_descending = is_descending
18034
- self._field = field
18035
- self._sort_key = sort_key
18036
-
18037
- @builtins.property
18038
- def is_descending(self) -> bool:
18039
- return self._is_descending
18040
-
18041
- @builtins.property
18042
- def field(self) -> Optional["scout_asset_api_SortField"]:
18043
- return self._field
18044
-
18045
- @builtins.property
18046
- def sort_key(self) -> Optional["scout_asset_api_SortKey"]:
18047
- """Field to sort by. Includes both field and property-based sorting.
18048
- Must be supplied if field is not provided separately.
18049
- """
18050
- return self._sort_key
18051
-
18052
-
18053
- scout_asset_api_AssetSortOptions.__name__ = "AssetSortOptions"
18054
- scout_asset_api_AssetSortOptions.__qualname__ = "AssetSortOptions"
18055
- scout_asset_api_AssetSortOptions.__module__ = "nominal_api.scout_asset_api"
18056
-
18057
-
18058
- class scout_asset_api_AssetTypeDataScopeConfig(ConjureBeanType):
18059
-
18060
- @builtins.classmethod
18061
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
18062
- return {
18063
- 'suggested_ref_name': ConjureFieldDefinition('suggestedRefName', OptionalTypeWrapper[str]),
18064
- 'tags': ConjureFieldDefinition('tags', scout_asset_api_TagConfig)
18065
- }
18066
-
18067
- __slots__: List[str] = ['_suggested_ref_name', '_tags']
18068
-
18069
- def __init__(self, tags: "scout_asset_api_TagConfig", suggested_ref_name: Optional[str] = None) -> None:
18070
- self._suggested_ref_name = suggested_ref_name
18071
- self._tags = tags
18072
-
18073
- @builtins.property
18074
- def suggested_ref_name(self) -> Optional[str]:
18075
- return self._suggested_ref_name
18076
-
18077
- @builtins.property
18078
- def tags(self) -> "scout_asset_api_TagConfig":
18079
- """Tag names that should be supplied to downscope data for an asset of the asset type. These are not
18080
- enforced.
18081
- """
18082
- return self._tags
18083
-
18084
-
18085
- scout_asset_api_AssetTypeDataScopeConfig.__name__ = "AssetTypeDataScopeConfig"
18086
- scout_asset_api_AssetTypeDataScopeConfig.__qualname__ = "AssetTypeDataScopeConfig"
18087
- scout_asset_api_AssetTypeDataScopeConfig.__module__ = "nominal_api.scout_asset_api"
18088
-
18089
-
18090
- class scout_asset_api_ChannelMetadata(ConjureBeanType):
18091
-
18092
- @builtins.classmethod
18093
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
18094
- return {
18095
- 'name': ConjureFieldDefinition('name', scout_asset_api_Channel),
18096
- 'data_source': ConjureFieldDefinition('dataSource', scout_run_api_DataSource),
18097
- 'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[scout_run_api_Unit]),
18098
- 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
18099
- 'data_type': ConjureFieldDefinition('dataType', OptionalTypeWrapper[api_SeriesDataType])
18100
- }
18101
-
18102
- __slots__: List[str] = ['_name', '_data_source', '_unit', '_description', '_data_type']
18103
-
18104
- def __init__(self, data_source: "scout_run_api_DataSource", name: str, data_type: Optional["api_SeriesDataType"] = None, description: Optional[str] = None, unit: Optional["scout_run_api_Unit"] = None) -> None:
18105
- self._name = name
18106
- self._data_source = data_source
18107
- self._unit = unit
18108
- self._description = description
18109
- self._data_type = data_type
18110
-
18111
- @builtins.property
18112
- def name(self) -> str:
18113
- return self._name
18114
-
18115
- @builtins.property
18116
- def data_source(self) -> "scout_run_api_DataSource":
18117
- return self._data_source
18118
-
18119
- @builtins.property
18120
- def unit(self) -> Optional["scout_run_api_Unit"]:
18121
- return self._unit
18122
-
18123
- @builtins.property
18124
- def description(self) -> Optional[str]:
18125
- return self._description
18126
-
18127
- @builtins.property
18128
- def data_type(self) -> Optional["api_SeriesDataType"]:
18129
- return self._data_type
18130
-
18131
-
18132
- scout_asset_api_ChannelMetadata.__name__ = "ChannelMetadata"
18133
- scout_asset_api_ChannelMetadata.__qualname__ = "ChannelMetadata"
18134
- scout_asset_api_ChannelMetadata.__module__ = "nominal_api.scout_asset_api"
18135
-
18136
-
18137
- class scout_asset_api_CreateAssetDataScope(ConjureBeanType):
18138
-
18139
- @builtins.classmethod
18140
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
18141
- return {
18142
- 'data_scope_name': ConjureFieldDefinition('dataScopeName', scout_asset_api_DataScopeName),
18143
- 'data_source': ConjureFieldDefinition('dataSource', scout_run_api_DataSource),
18144
- 'offset': ConjureFieldDefinition('offset', OptionalTypeWrapper[scout_run_api_Duration]),
18145
- 'series_tags': ConjureFieldDefinition('seriesTags', Dict[scout_asset_api_SeriesTagName, scout_asset_api_SeriesTagValue])
18146
- }
18147
-
18148
- __slots__: List[str] = ['_data_scope_name', '_data_source', '_offset', '_series_tags']
18149
-
18150
- def __init__(self, data_scope_name: str, data_source: "scout_run_api_DataSource", series_tags: Dict[str, str], offset: Optional["scout_run_api_Duration"] = None) -> None:
18151
- self._data_scope_name = data_scope_name
18152
- self._data_source = data_source
18153
- self._offset = offset
18154
- self._series_tags = series_tags
18155
-
18156
- @builtins.property
18157
- def data_scope_name(self) -> str:
18158
- """The name of the data scope. The name is guaranteed to be be unique within the context of an asset.
18159
- """
18160
- return self._data_scope_name
18161
-
18162
- @builtins.property
18163
- def data_source(self) -> "scout_run_api_DataSource":
18164
- return self._data_source
18165
-
18166
- @builtins.property
18167
- def offset(self) -> Optional["scout_run_api_Duration"]:
18168
- return self._offset
18169
-
18170
- @builtins.property
18171
- def series_tags(self) -> Dict[str, str]:
18172
- """Filters the data source to series matching these tag values. The filtered set of series should be
18173
- the ones that belong to the asset.
18174
- """
18175
- return self._series_tags
18176
-
18177
-
18178
- scout_asset_api_CreateAssetDataScope.__name__ = "CreateAssetDataScope"
18179
- scout_asset_api_CreateAssetDataScope.__qualname__ = "CreateAssetDataScope"
18180
- scout_asset_api_CreateAssetDataScope.__module__ = "nominal_api.scout_asset_api"
18181
-
18182
-
18183
- class scout_asset_api_CreateAssetRequest(ConjureBeanType):
18184
-
18185
- @builtins.classmethod
18186
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
18187
- return {
18188
- 'title': ConjureFieldDefinition('title', str),
18189
- 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
18190
- 'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
18191
- 'labels': ConjureFieldDefinition('labels', List[api_Label]),
18192
- 'links': ConjureFieldDefinition('links', List[scout_run_api_Link]),
18193
- 'data_scopes': ConjureFieldDefinition('dataScopes', List[scout_asset_api_CreateAssetDataScope]),
18194
- 'attachments': ConjureFieldDefinition('attachments', List[api_rids_AttachmentRid]),
18195
- 'type': ConjureFieldDefinition('type', OptionalTypeWrapper[scout_rids_api_TypeRid]),
18196
- 'workspace': ConjureFieldDefinition('workspace', OptionalTypeWrapper[api_rids_WorkspaceRid])
18197
- }
18198
-
18199
- __slots__: List[str] = ['_title', '_description', '_properties', '_labels', '_links', '_data_scopes', '_attachments', '_type', '_workspace']
18200
-
18201
- def __init__(self, attachments: List[str], data_scopes: List["scout_asset_api_CreateAssetDataScope"], labels: List[str], links: List["scout_run_api_Link"], properties: Dict[str, str], title: str, description: Optional[str] = None, type: Optional[str] = None, workspace: Optional[str] = None) -> None:
18202
- self._title = title
18203
- self._description = description
18204
- self._properties = properties
18205
- self._labels = labels
18206
- self._links = links
18207
- self._data_scopes = data_scopes
18208
- self._attachments = attachments
18209
- self._type = type
18210
- self._workspace = workspace
18211
-
18212
- @builtins.property
18213
- def title(self) -> str:
18214
- return self._title
18215
-
18216
- @builtins.property
18217
- def description(self) -> Optional[str]:
18218
- return self._description
18219
-
18220
- @builtins.property
18221
- def properties(self) -> Dict[str, str]:
18222
- return self._properties
18223
-
18224
- @builtins.property
18225
- def labels(self) -> List[str]:
18226
- return self._labels
18227
-
18228
- @builtins.property
18229
- def links(self) -> List["scout_run_api_Link"]:
18230
- return self._links
18231
-
18232
- @builtins.property
18233
- def data_scopes(self) -> List["scout_asset_api_CreateAssetDataScope"]:
18234
- """The data scopes associated with the asset.
18235
- """
18236
- return self._data_scopes
18237
-
18238
- @builtins.property
18239
- def attachments(self) -> List[str]:
18240
- return self._attachments
18241
-
18242
- @builtins.property
18243
- def type(self) -> Optional[str]:
18244
- return self._type
18245
-
18246
- @builtins.property
18247
- def workspace(self) -> Optional[str]:
18248
- """The workspace in which to create the asset. If not provided, the asset will be created in
18249
- the default workspace for the user's organization, if the default workspace for the
18250
- organization is configured.
18251
- All data scopes, attachments, and the optional asset type must be in the same workspace.
18252
- """
18253
- return self._workspace
18254
-
18255
-
18256
- scout_asset_api_CreateAssetRequest.__name__ = "CreateAssetRequest"
18257
- scout_asset_api_CreateAssetRequest.__qualname__ = "CreateAssetRequest"
18258
- scout_asset_api_CreateAssetRequest.__module__ = "nominal_api.scout_asset_api"
18259
-
18260
-
18261
- class scout_asset_api_CreateTypeRequest(ConjureBeanType):
18262
-
18263
- @builtins.classmethod
18264
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
18265
- return {
18266
- 'name': ConjureFieldDefinition('name', str),
18267
- 'property_configs': ConjureFieldDefinition('propertyConfigs', Dict[api_PropertyName, scout_asset_api_PropertyConfig]),
18268
- 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
18269
- 'icon_name': ConjureFieldDefinition('iconName', OptionalTypeWrapper[str]),
18270
- 'workspace': ConjureFieldDefinition('workspace', OptionalTypeWrapper[api_rids_WorkspaceRid]),
18271
- 'datasource_configs': ConjureFieldDefinition('datasourceConfigs', OptionalTypeWrapper[Dict[api_rids_DataSourceRid, scout_asset_api_AssetTypeDataScopeConfig]])
18272
- }
18273
-
18274
- __slots__: List[str] = ['_name', '_property_configs', '_description', '_icon_name', '_workspace', '_datasource_configs']
18275
-
18276
- def __init__(self, name: str, property_configs: Dict[str, "scout_asset_api_PropertyConfig"], datasource_configs: Optional[Dict[str, "scout_asset_api_AssetTypeDataScopeConfig"]] = None, description: Optional[str] = None, icon_name: Optional[str] = None, workspace: Optional[str] = None) -> None:
18277
- self._name = name
18278
- self._property_configs = property_configs
18279
- self._description = description
18280
- self._icon_name = icon_name
18281
- self._workspace = workspace
18282
- self._datasource_configs = datasource_configs
18283
-
18284
- @builtins.property
18285
- def name(self) -> str:
18286
- return self._name
18287
-
18288
- @builtins.property
18289
- def property_configs(self) -> Dict[str, "scout_asset_api_PropertyConfig"]:
18290
- return self._property_configs
18291
-
18292
- @builtins.property
18293
- def description(self) -> Optional[str]:
18294
- return self._description
18295
-
18296
- @builtins.property
18297
- def icon_name(self) -> Optional[str]:
18298
- return self._icon_name
18299
-
18300
- @builtins.property
18301
- def workspace(self) -> Optional[str]:
18302
- """The workspace in which to create the asset type. If not provided, the asset type will be created in
18303
- the default workspace for the user's organization, if the default workspace for the
18304
- organization is configured.
18305
- """
18306
- return self._workspace
18307
-
18308
- @builtins.property
18309
- def datasource_configs(self) -> Optional[Dict[str, "scout_asset_api_AssetTypeDataScopeConfig"]]:
18310
- """The configuration outlines what a data scope should provide when added to an asset of this type. It is
18311
- referenced at data scope creation time, but does not actively modify existing data scopes.
18312
- """
18313
- return self._datasource_configs
18314
-
18315
-
18316
- scout_asset_api_CreateTypeRequest.__name__ = "CreateTypeRequest"
18317
- scout_asset_api_CreateTypeRequest.__qualname__ = "CreateTypeRequest"
18318
- scout_asset_api_CreateTypeRequest.__module__ = "nominal_api.scout_asset_api"
19927
+ scout_asset_api_DataScope.__name__ = "DataScope"
19928
+ scout_asset_api_DataScope.__qualname__ = "DataScope"
19929
+ scout_asset_api_DataScope.__module__ = "nominal_api.scout_asset_api"
18319
19930
 
18320
19931
 
18321
19932
  class scout_asset_api_PropertyConfig(ConjureBeanType):
@@ -18371,7 +19982,7 @@ class scout_asset_api_SearchAssetChannelsRequest(ConjureBeanType):
18371
19982
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
18372
19983
  return {
18373
19984
  'search_text': ConjureFieldDefinition('searchText', str),
18374
- 'data_scope_name_filter': ConjureFieldDefinition('dataScopeNameFilter', OptionalTypeWrapper[List[scout_asset_api_DataScopeName]]),
19985
+ 'data_scope_name_filter': ConjureFieldDefinition('dataScopeNameFilter', OptionalTypeWrapper[List[scout_api_DataSourceRefName]]),
18375
19986
  'next_page_token': ConjureFieldDefinition('nextPageToken', OptionalTypeWrapper[api_Token]),
18376
19987
  'page_size': ConjureFieldDefinition('pageSize', OptionalTypeWrapper[int])
18377
19988
  }
@@ -19233,7 +20844,7 @@ class scout_asset_api_UpdateAssetRefNamesRequest(ConjureBeanType):
19233
20844
  @builtins.classmethod
19234
20845
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
19235
20846
  return {
19236
- 'data_scope_ref_name_updates': ConjureFieldDefinition('dataScopeRefNameUpdates', Dict[scout_asset_api_DataScopeName, scout_asset_api_DataScopeName])
20847
+ 'data_scope_ref_name_updates': ConjureFieldDefinition('dataScopeRefNameUpdates', Dict[scout_api_DataSourceRefName, scout_api_DataSourceRefName])
19237
20848
  }
19238
20849
 
19239
20850
  __slots__: List[str] = ['_data_scope_ref_name_updates']
@@ -35852,6 +37463,8 @@ class scout_compute_api_BitOperationFunction(ConjureUnionType):
35852
37463
  _and_: Optional["scout_compute_api_BitAndFunction"] = None
35853
37464
  _or_: Optional["scout_compute_api_BitOrFunction"] = None
35854
37465
  _xor: Optional["scout_compute_api_BitXorFunction"] = None
37466
+ _shift_right: Optional["scout_compute_api_BitShiftRightFunction"] = None
37467
+ _shift_left: Optional["scout_compute_api_BitShiftLeftFunction"] = None
35855
37468
  _bit_test: Optional["scout_compute_api_BitTestFunction"] = None
35856
37469
 
35857
37470
  @builtins.classmethod
@@ -35860,6 +37473,8 @@ class scout_compute_api_BitOperationFunction(ConjureUnionType):
35860
37473
  'and_': ConjureFieldDefinition('and', scout_compute_api_BitAndFunction),
35861
37474
  'or_': ConjureFieldDefinition('or', scout_compute_api_BitOrFunction),
35862
37475
  'xor': ConjureFieldDefinition('xor', scout_compute_api_BitXorFunction),
37476
+ 'shift_right': ConjureFieldDefinition('shiftRight', scout_compute_api_BitShiftRightFunction),
37477
+ 'shift_left': ConjureFieldDefinition('shiftLeft', scout_compute_api_BitShiftLeftFunction),
35863
37478
  'bit_test': ConjureFieldDefinition('bitTest', scout_compute_api_BitTestFunction)
35864
37479
  }
35865
37480
 
@@ -35868,11 +37483,13 @@ class scout_compute_api_BitOperationFunction(ConjureUnionType):
35868
37483
  and_: Optional["scout_compute_api_BitAndFunction"] = None,
35869
37484
  or_: Optional["scout_compute_api_BitOrFunction"] = None,
35870
37485
  xor: Optional["scout_compute_api_BitXorFunction"] = None,
37486
+ shift_right: Optional["scout_compute_api_BitShiftRightFunction"] = None,
37487
+ shift_left: Optional["scout_compute_api_BitShiftLeftFunction"] = None,
35871
37488
  bit_test: Optional["scout_compute_api_BitTestFunction"] = None,
35872
37489
  type_of_union: Optional[str] = None
35873
37490
  ) -> None:
35874
37491
  if type_of_union is None:
35875
- if (and_ is not None) + (or_ is not None) + (xor is not None) + (bit_test is not None) != 1:
37492
+ if (and_ is not None) + (or_ is not None) + (xor is not None) + (shift_right is not None) + (shift_left is not None) + (bit_test is not None) != 1:
35876
37493
  raise ValueError('a union must contain a single member')
35877
37494
 
35878
37495
  if and_ is not None:
@@ -35884,6 +37501,12 @@ class scout_compute_api_BitOperationFunction(ConjureUnionType):
35884
37501
  if xor is not None:
35885
37502
  self._xor = xor
35886
37503
  self._type = 'xor'
37504
+ if shift_right is not None:
37505
+ self._shift_right = shift_right
37506
+ self._type = 'shiftRight'
37507
+ if shift_left is not None:
37508
+ self._shift_left = shift_left
37509
+ self._type = 'shiftLeft'
35887
37510
  if bit_test is not None:
35888
37511
  self._bit_test = bit_test
35889
37512
  self._type = 'bitTest'
@@ -35903,6 +37526,16 @@ class scout_compute_api_BitOperationFunction(ConjureUnionType):
35903
37526
  raise ValueError('a union value must not be None')
35904
37527
  self._xor = xor
35905
37528
  self._type = 'xor'
37529
+ elif type_of_union == 'shiftRight':
37530
+ if shift_right is None:
37531
+ raise ValueError('a union value must not be None')
37532
+ self._shift_right = shift_right
37533
+ self._type = 'shiftRight'
37534
+ elif type_of_union == 'shiftLeft':
37535
+ if shift_left is None:
37536
+ raise ValueError('a union value must not be None')
37537
+ self._shift_left = shift_left
37538
+ self._type = 'shiftLeft'
35906
37539
  elif type_of_union == 'bitTest':
35907
37540
  if bit_test is None:
35908
37541
  raise ValueError('a union value must not be None')
@@ -35921,6 +37554,14 @@ class scout_compute_api_BitOperationFunction(ConjureUnionType):
35921
37554
  def xor(self) -> Optional["scout_compute_api_BitXorFunction"]:
35922
37555
  return self._xor
35923
37556
 
37557
+ @builtins.property
37558
+ def shift_right(self) -> Optional["scout_compute_api_BitShiftRightFunction"]:
37559
+ return self._shift_right
37560
+
37561
+ @builtins.property
37562
+ def shift_left(self) -> Optional["scout_compute_api_BitShiftLeftFunction"]:
37563
+ return self._shift_left
37564
+
35924
37565
  @builtins.property
35925
37566
  def bit_test(self) -> Optional["scout_compute_api_BitTestFunction"]:
35926
37567
  return self._bit_test
@@ -35934,6 +37575,10 @@ class scout_compute_api_BitOperationFunction(ConjureUnionType):
35934
37575
  return visitor._or(self.or_)
35935
37576
  if self._type == 'xor' and self.xor is not None:
35936
37577
  return visitor._xor(self.xor)
37578
+ if self._type == 'shiftRight' and self.shift_right is not None:
37579
+ return visitor._shift_right(self.shift_right)
37580
+ if self._type == 'shiftLeft' and self.shift_left is not None:
37581
+ return visitor._shift_left(self.shift_left)
35937
37582
  if self._type == 'bitTest' and self.bit_test is not None:
35938
37583
  return visitor._bit_test(self.bit_test)
35939
37584
 
@@ -35957,6 +37602,14 @@ class scout_compute_api_BitOperationFunctionVisitor:
35957
37602
  def _xor(self, xor: "scout_compute_api_BitXorFunction") -> Any:
35958
37603
  pass
35959
37604
 
37605
+ @abstractmethod
37606
+ def _shift_right(self, shift_right: "scout_compute_api_BitShiftRightFunction") -> Any:
37607
+ pass
37608
+
37609
+ @abstractmethod
37610
+ def _shift_left(self, shift_left: "scout_compute_api_BitShiftLeftFunction") -> Any:
37611
+ pass
37612
+
35960
37613
  @abstractmethod
35961
37614
  def _bit_test(self, bit_test: "scout_compute_api_BitTestFunction") -> Any:
35962
37615
  pass
@@ -36021,6 +37674,56 @@ scout_compute_api_BitOrFunction.__qualname__ = "BitOrFunction"
36021
37674
  scout_compute_api_BitOrFunction.__module__ = "nominal_api.scout_compute_api"
36022
37675
 
36023
37676
 
37677
+ class scout_compute_api_BitShiftLeftFunction(ConjureBeanType):
37678
+ """Shifts the bits in each value left according to the given operand.
37679
+ """
37680
+
37681
+ @builtins.classmethod
37682
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
37683
+ return {
37684
+ 'operand': ConjureFieldDefinition('operand', int)
37685
+ }
37686
+
37687
+ __slots__: List[str] = ['_operand']
37688
+
37689
+ def __init__(self, operand: int) -> None:
37690
+ self._operand = operand
37691
+
37692
+ @builtins.property
37693
+ def operand(self) -> int:
37694
+ return self._operand
37695
+
37696
+
37697
+ scout_compute_api_BitShiftLeftFunction.__name__ = "BitShiftLeftFunction"
37698
+ scout_compute_api_BitShiftLeftFunction.__qualname__ = "BitShiftLeftFunction"
37699
+ scout_compute_api_BitShiftLeftFunction.__module__ = "nominal_api.scout_compute_api"
37700
+
37701
+
37702
+ class scout_compute_api_BitShiftRightFunction(ConjureBeanType):
37703
+ """Right shifts the bits in each value right according to the given operand.
37704
+ """
37705
+
37706
+ @builtins.classmethod
37707
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
37708
+ return {
37709
+ 'operand': ConjureFieldDefinition('operand', int)
37710
+ }
37711
+
37712
+ __slots__: List[str] = ['_operand']
37713
+
37714
+ def __init__(self, operand: int) -> None:
37715
+ self._operand = operand
37716
+
37717
+ @builtins.property
37718
+ def operand(self) -> int:
37719
+ return self._operand
37720
+
37721
+
37722
+ scout_compute_api_BitShiftRightFunction.__name__ = "BitShiftRightFunction"
37723
+ scout_compute_api_BitShiftRightFunction.__qualname__ = "BitShiftRightFunction"
37724
+ scout_compute_api_BitShiftRightFunction.__module__ = "nominal_api.scout_compute_api"
37725
+
37726
+
36024
37727
  class scout_compute_api_BitTestFunction(ConjureBeanType):
36025
37728
  """Returns the bit at the specified index, where the right-most bit has index 0.
36026
37729
  """
@@ -69138,6 +70841,29 @@ scout_run_api_DataReviewMetrics.__qualname__ = "DataReviewMetrics"
69138
70841
  scout_run_api_DataReviewMetrics.__module__ = "nominal_api.scout_run_api"
69139
70842
 
69140
70843
 
70844
+ class scout_run_api_DataScopes(ConjureBeanType):
70845
+
70846
+ @builtins.classmethod
70847
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
70848
+ return {
70849
+ 'data_scopes': ConjureFieldDefinition('dataScopes', Dict[scout_api_DataSourceRefName, scout_asset_api_DataScope])
70850
+ }
70851
+
70852
+ __slots__: List[str] = ['_data_scopes']
70853
+
70854
+ def __init__(self, data_scopes: Dict[str, "scout_asset_api_DataScope"]) -> None:
70855
+ self._data_scopes = data_scopes
70856
+
70857
+ @builtins.property
70858
+ def data_scopes(self) -> Dict[str, "scout_asset_api_DataScope"]:
70859
+ return self._data_scopes
70860
+
70861
+
70862
+ scout_run_api_DataScopes.__name__ = "DataScopes"
70863
+ scout_run_api_DataScopes.__qualname__ = "DataScopes"
70864
+ scout_run_api_DataScopes.__module__ = "nominal_api.scout_run_api"
70865
+
70866
+
69141
70867
  class scout_run_api_DataSource(ConjureUnionType):
69142
70868
  _dataset: Optional[str] = None
69143
70869
  _connection: Optional[str] = None
@@ -69521,7 +71247,8 @@ class scout_run_api_Run(ConjureBeanType):
69521
71247
  'links': ConjureFieldDefinition('links', List[scout_run_api_Link]),
69522
71248
  'created_at': ConjureFieldDefinition('createdAt', str),
69523
71249
  'updated_at': ConjureFieldDefinition('updatedAt', str),
69524
- 'asset_data_scopes': ConjureFieldDefinition('assetDataScopes', List[scout_asset_api_AssetDataScope]),
71250
+ 'asset_data_scopes_map': ConjureFieldDefinition('assetDataScopesMap', Dict[scout_rids_api_AssetRid, scout_run_api_DataScopes]),
71251
+ 'asset_data_scopes': ConjureFieldDefinition('assetDataScopes', List[scout_asset_api_DataScope]),
69525
71252
  'data_sources': ConjureFieldDefinition('dataSources', Dict[scout_api_DataSourceRefName, scout_run_api_RunDataSource]),
69526
71253
  'attachments': ConjureFieldDefinition('attachments', List[api_rids_AttachmentRid]),
69527
71254
  'asset': ConjureFieldDefinition('asset', OptionalTypeWrapper[scout_rids_api_AssetRid]),
@@ -69529,9 +71256,9 @@ class scout_run_api_Run(ConjureBeanType):
69529
71256
  'is_archived': ConjureFieldDefinition('isArchived', bool)
69530
71257
  }
69531
71258
 
69532
- __slots__: List[str] = ['_rid', '_run_number', '_run_prefix', '_title', '_description', '_author_rid', '_start_time', '_end_time', '_properties', '_labels', '_links', '_created_at', '_updated_at', '_asset_data_scopes', '_data_sources', '_attachments', '_asset', '_assets', '_is_archived']
71259
+ __slots__: List[str] = ['_rid', '_run_number', '_run_prefix', '_title', '_description', '_author_rid', '_start_time', '_end_time', '_properties', '_labels', '_links', '_created_at', '_updated_at', '_asset_data_scopes_map', '_asset_data_scopes', '_data_sources', '_attachments', '_asset', '_assets', '_is_archived']
69533
71260
 
69534
- def __init__(self, asset_data_scopes: List["scout_asset_api_AssetDataScope"], assets: List[str], attachments: List[str], created_at: str, data_sources: Dict[str, "scout_run_api_RunDataSource"], description: str, is_archived: bool, labels: List[str], links: List["scout_run_api_Link"], properties: Dict[str, str], rid: str, run_number: int, start_time: "scout_run_api_UtcTimestamp", title: str, updated_at: str, asset: Optional[str] = None, author_rid: Optional[str] = None, end_time: Optional["scout_run_api_UtcTimestamp"] = None, run_prefix: Optional[str] = None) -> None:
71261
+ def __init__(self, asset_data_scopes: List["scout_asset_api_DataScope"], asset_data_scopes_map: Dict[str, "scout_run_api_DataScopes"], assets: List[str], attachments: List[str], created_at: str, data_sources: Dict[str, "scout_run_api_RunDataSource"], description: str, is_archived: bool, labels: List[str], links: List["scout_run_api_Link"], properties: Dict[str, str], rid: str, run_number: int, start_time: "scout_run_api_UtcTimestamp", title: str, updated_at: str, asset: Optional[str] = None, author_rid: Optional[str] = None, end_time: Optional["scout_run_api_UtcTimestamp"] = None, run_prefix: Optional[str] = None) -> None:
69535
71262
  self._rid = rid
69536
71263
  self._run_number = run_number
69537
71264
  self._run_prefix = run_prefix
@@ -69545,6 +71272,7 @@ class scout_run_api_Run(ConjureBeanType):
69545
71272
  self._links = links
69546
71273
  self._created_at = created_at
69547
71274
  self._updated_at = updated_at
71275
+ self._asset_data_scopes_map = asset_data_scopes_map
69548
71276
  self._asset_data_scopes = asset_data_scopes
69549
71277
  self._data_sources = data_sources
69550
71278
  self._attachments = attachments
@@ -69605,13 +71333,19 @@ class scout_run_api_Run(ConjureBeanType):
69605
71333
  return self._updated_at
69606
71334
 
69607
71335
  @builtins.property
69608
- def asset_data_scopes(self) -> List["scout_asset_api_AssetDataScope"]:
69609
- """returns the data scopes for the assets associated with the run.
71336
+ def asset_data_scopes_map(self) -> Dict[str, "scout_run_api_DataScopes"]:
71337
+ """Map from asset RIDs to their data scopes
69610
71338
  """
71339
+ return self._asset_data_scopes_map
71340
+
71341
+ @builtins.property
71342
+ def asset_data_scopes(self) -> List["scout_asset_api_DataScope"]:
69611
71343
  return self._asset_data_scopes
69612
71344
 
69613
71345
  @builtins.property
69614
71346
  def data_sources(self) -> Dict[str, "scout_run_api_RunDataSource"]:
71347
+ """Map from refnames to run data sources. Will be empty for multi-asset runs.
71348
+ """
69615
71349
  return self._data_sources
69616
71350
 
69617
71351
  @builtins.property
@@ -83636,10 +85370,6 @@ scout_compute_api_SeriesName = str
83636
85370
 
83637
85371
  timeseries_logicalseries_api_MeasureName = str
83638
85372
 
83639
- scout_asset_api_DataScopeName = str
83640
-
83641
- scout_asset_api_SeriesTagName = str
83642
-
83643
85373
  scout_run_api_LogSetRid = str
83644
85374
 
83645
85375
  scout_units_api_UnitProperty = str
@@ -83666,8 +85396,6 @@ timeseries_logicalseries_api_TableName = str
83666
85396
 
83667
85397
  scout_rids_api_NotebookRid = str
83668
85398
 
83669
- scout_asset_api_SeriesTagValue = str
83670
-
83671
85399
  scout_rids_api_UserRid = str
83672
85400
 
83673
85401
  api_rids_DatasetRid = str
@@ -83732,6 +85460,8 @@ scout_rids_api_FunctionLineageRid = str
83732
85460
 
83733
85461
  timeseries_logicalseries_api_DatabaseName = str
83734
85462
 
85463
+ modules_api_ModuleRid = str
85464
+
83735
85465
  timeseries_logicalseries_api_SchemaName = str
83736
85466
 
83737
85467
  scout_datasource_connection_api_BucketName = str