nominal-api 0.941.0__py3-none-any.whl → 0.942.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.
nominal_api/_impl.py CHANGED
@@ -3897,12 +3897,12 @@ class datasource_api_ChannelMetadata(ConjureBeanType):
3897
3897
  'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[scout_run_api_Unit]),
3898
3898
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
3899
3899
  'data_type': ConjureFieldDefinition('dataType', OptionalTypeWrapper[api_SeriesDataType]),
3900
- 'series_rid': ConjureFieldDefinition('seriesRid', datasource_api_SeriesArchetypeRidOrLogicalSeriesRid)
3900
+ 'series_rid': ConjureFieldDefinition('seriesRid', datasource_api_SeriesMetadataRidOrLogicalSeriesRid)
3901
3901
  }
3902
3902
 
3903
3903
  __slots__: List[str] = ['_name', '_data_source', '_unit', '_description', '_data_type', '_series_rid']
3904
3904
 
3905
- def __init__(self, data_source: str, name: str, series_rid: "datasource_api_SeriesArchetypeRidOrLogicalSeriesRid", data_type: Optional["api_SeriesDataType"] = None, description: Optional[str] = None, unit: Optional["scout_run_api_Unit"] = None) -> None:
3905
+ def __init__(self, data_source: str, name: str, series_rid: "datasource_api_SeriesMetadataRidOrLogicalSeriesRid", data_type: Optional["api_SeriesDataType"] = None, description: Optional[str] = None, unit: Optional["scout_run_api_Unit"] = None) -> None:
3906
3906
  self._name = name
3907
3907
  self._data_source = data_source
3908
3908
  self._unit = unit
@@ -3931,7 +3931,7 @@ class datasource_api_ChannelMetadata(ConjureBeanType):
3931
3931
  return self._data_type
3932
3932
 
3933
3933
  @builtins.property
3934
- def series_rid(self) -> "datasource_api_SeriesArchetypeRidOrLogicalSeriesRid":
3934
+ def series_rid(self) -> "datasource_api_SeriesMetadataRidOrLogicalSeriesRid":
3935
3935
  return self._series_rid
3936
3936
 
3937
3937
 
@@ -4672,14 +4672,14 @@ datasource_api_SearchHierarchicalChannelsResponse.__qualname__ = "SearchHierarch
4672
4672
  datasource_api_SearchHierarchicalChannelsResponse.__module__ = "nominal_api.datasource_api"
4673
4673
 
4674
4674
 
4675
- class datasource_api_SeriesArchetypeRidOrLogicalSeriesRid(ConjureUnionType):
4675
+ class datasource_api_SeriesMetadataRidOrLogicalSeriesRid(ConjureUnionType):
4676
4676
  _series_archetype: Optional[str] = None
4677
4677
  _logical_series: Optional[str] = None
4678
4678
 
4679
4679
  @builtins.classmethod
4680
4680
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
4681
4681
  return {
4682
- 'series_archetype': ConjureFieldDefinition('seriesArchetype', api_SeriesArchetypeRid),
4682
+ 'series_archetype': ConjureFieldDefinition('seriesArchetype', api_SeriesMetadataRid),
4683
4683
  'logical_series': ConjureFieldDefinition('logicalSeries', api_LogicalSeriesRid)
4684
4684
  }
4685
4685
 
@@ -4720,20 +4720,20 @@ class datasource_api_SeriesArchetypeRidOrLogicalSeriesRid(ConjureUnionType):
4720
4720
  return self._logical_series
4721
4721
 
4722
4722
  def accept(self, visitor) -> Any:
4723
- if not isinstance(visitor, datasource_api_SeriesArchetypeRidOrLogicalSeriesRidVisitor):
4724
- raise ValueError('{} is not an instance of datasource_api_SeriesArchetypeRidOrLogicalSeriesRidVisitor'.format(visitor.__class__.__name__))
4723
+ if not isinstance(visitor, datasource_api_SeriesMetadataRidOrLogicalSeriesRidVisitor):
4724
+ raise ValueError('{} is not an instance of datasource_api_SeriesMetadataRidOrLogicalSeriesRidVisitor'.format(visitor.__class__.__name__))
4725
4725
  if self._type == 'seriesArchetype' and self.series_archetype is not None:
4726
4726
  return visitor._series_archetype(self.series_archetype)
4727
4727
  if self._type == 'logicalSeries' and self.logical_series is not None:
4728
4728
  return visitor._logical_series(self.logical_series)
4729
4729
 
4730
4730
 
4731
- datasource_api_SeriesArchetypeRidOrLogicalSeriesRid.__name__ = "SeriesArchetypeRidOrLogicalSeriesRid"
4732
- datasource_api_SeriesArchetypeRidOrLogicalSeriesRid.__qualname__ = "SeriesArchetypeRidOrLogicalSeriesRid"
4733
- datasource_api_SeriesArchetypeRidOrLogicalSeriesRid.__module__ = "nominal_api.datasource_api"
4731
+ datasource_api_SeriesMetadataRidOrLogicalSeriesRid.__name__ = "SeriesMetadataRidOrLogicalSeriesRid"
4732
+ datasource_api_SeriesMetadataRidOrLogicalSeriesRid.__qualname__ = "SeriesMetadataRidOrLogicalSeriesRid"
4733
+ datasource_api_SeriesMetadataRidOrLogicalSeriesRid.__module__ = "nominal_api.datasource_api"
4734
4734
 
4735
4735
 
4736
- class datasource_api_SeriesArchetypeRidOrLogicalSeriesRidVisitor:
4736
+ class datasource_api_SeriesMetadataRidOrLogicalSeriesRidVisitor:
4737
4737
 
4738
4738
  @abstractmethod
4739
4739
  def _series_archetype(self, series_archetype: str) -> Any:
@@ -4744,9 +4744,9 @@ class datasource_api_SeriesArchetypeRidOrLogicalSeriesRidVisitor:
4744
4744
  pass
4745
4745
 
4746
4746
 
4747
- datasource_api_SeriesArchetypeRidOrLogicalSeriesRidVisitor.__name__ = "SeriesArchetypeRidOrLogicalSeriesRidVisitor"
4748
- datasource_api_SeriesArchetypeRidOrLogicalSeriesRidVisitor.__qualname__ = "SeriesArchetypeRidOrLogicalSeriesRidVisitor"
4749
- datasource_api_SeriesArchetypeRidOrLogicalSeriesRidVisitor.__module__ = "nominal_api.datasource_api"
4747
+ datasource_api_SeriesMetadataRidOrLogicalSeriesRidVisitor.__name__ = "SeriesMetadataRidOrLogicalSeriesRidVisitor"
4748
+ datasource_api_SeriesMetadataRidOrLogicalSeriesRidVisitor.__qualname__ = "SeriesMetadataRidOrLogicalSeriesRidVisitor"
4749
+ datasource_api_SeriesMetadataRidOrLogicalSeriesRidVisitor.__module__ = "nominal_api.datasource_api"
4750
4750
 
4751
4751
 
4752
4752
  class datasource_logset_LogSetService(Service):
@@ -13517,6 +13517,35 @@ ingest_api_VideoTimestampManifestVisitor.__qualname__ = "VideoTimestampManifestV
13517
13517
  ingest_api_VideoTimestampManifestVisitor.__module__ = "nominal_api.ingest_api"
13518
13518
 
13519
13519
 
13520
+ class ingest_workflow_api_CreateIngestJobRequest(ConjureBeanType):
13521
+
13522
+ @builtins.classmethod
13523
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
13524
+ return {
13525
+ 'workspace_rid': ConjureFieldDefinition('workspaceRid', api_rids_WorkspaceRid),
13526
+ 'ingest_job_request': ConjureFieldDefinition('ingestJobRequest', ingest_api_IngestJobRequest)
13527
+ }
13528
+
13529
+ __slots__: List[str] = ['_workspace_rid', '_ingest_job_request']
13530
+
13531
+ def __init__(self, ingest_job_request: "ingest_api_IngestJobRequest", workspace_rid: str) -> None:
13532
+ self._workspace_rid = workspace_rid
13533
+ self._ingest_job_request = ingest_job_request
13534
+
13535
+ @builtins.property
13536
+ def workspace_rid(self) -> str:
13537
+ return self._workspace_rid
13538
+
13539
+ @builtins.property
13540
+ def ingest_job_request(self) -> "ingest_api_IngestJobRequest":
13541
+ return self._ingest_job_request
13542
+
13543
+
13544
+ ingest_workflow_api_CreateIngestJobRequest.__name__ = "CreateIngestJobRequest"
13545
+ ingest_workflow_api_CreateIngestJobRequest.__qualname__ = "CreateIngestJobRequest"
13546
+ ingest_workflow_api_CreateIngestJobRequest.__module__ = "nominal_api.ingest_workflow_api"
13547
+
13548
+
13520
13549
  class ingest_workflow_api_Empty(ConjureBeanType):
13521
13550
 
13522
13551
  @builtins.classmethod
@@ -14001,6 +14030,38 @@ ingest_workflow_api_IngestDataflashResponse.__module__ = "nominal_api.ingest_wor
14001
14030
 
14002
14031
  class ingest_workflow_api_IngestInternalService(Service):
14003
14032
 
14033
+ def create_ingest_job(self, auth_header: str, create_ingest_job_request: "ingest_workflow_api_CreateIngestJobRequest") -> str:
14034
+ """Creates an ingest job, returning a RID for the job.
14035
+ """
14036
+ _conjure_encoder = ConjureEncoder()
14037
+
14038
+ _headers: Dict[str, Any] = {
14039
+ 'Accept': 'application/json',
14040
+ 'Content-Type': 'application/json',
14041
+ 'Authorization': auth_header,
14042
+ }
14043
+
14044
+ _params: Dict[str, Any] = {
14045
+ }
14046
+
14047
+ _path_params: Dict[str, str] = {
14048
+ }
14049
+
14050
+ _json: Any = _conjure_encoder.default(create_ingest_job_request)
14051
+
14052
+ _path = '/internal/ingest/v1/ingest-job'
14053
+ _path = _path.format(**_path_params)
14054
+
14055
+ _response: Response = self._request(
14056
+ 'POST',
14057
+ self._uri + _path,
14058
+ params=_params,
14059
+ headers=_headers,
14060
+ json=_json)
14061
+
14062
+ _decoder = ConjureDecoder()
14063
+ return _decoder.decode(_response.json(), ingest_api_IngestJobRid, self._return_none_for_unknown_union_types)
14064
+
14004
14065
  def get_ingest_job(self, auth_header: str, ingest_job_rid: str) -> "ingest_api_IngestJob":
14005
14066
  """Returns a single ingest job by RID.
14006
14067
  """
@@ -17030,6 +17091,32 @@ persistent_compute_api_ClientMessageVisitor.__qualname__ = "ClientMessageVisitor
17030
17091
  persistent_compute_api_ClientMessageVisitor.__module__ = "nominal_api.persistent_compute_api"
17031
17092
 
17032
17093
 
17094
+ class persistent_compute_api_ClientMessageError(ConjureBeanType):
17095
+ """This will be sent if there is an error processing a `ClientMessage`. Note: This won't automatically close
17096
+ the connection. The client can continue sending `ClientMessage`s after receiving this error.
17097
+ """
17098
+
17099
+ @builtins.classmethod
17100
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
17101
+ return {
17102
+ 'error': ConjureFieldDefinition('error', api_SerializableError)
17103
+ }
17104
+
17105
+ __slots__: List[str] = ['_error']
17106
+
17107
+ def __init__(self, error: "api_SerializableError") -> None:
17108
+ self._error = error
17109
+
17110
+ @builtins.property
17111
+ def error(self) -> "api_SerializableError":
17112
+ return self._error
17113
+
17114
+
17115
+ persistent_compute_api_ClientMessageError.__name__ = "ClientMessageError"
17116
+ persistent_compute_api_ClientMessageError.__qualname__ = "ClientMessageError"
17117
+ persistent_compute_api_ClientMessageError.__module__ = "nominal_api.persistent_compute_api"
17118
+
17119
+
17033
17120
  class persistent_compute_api_ComputeNodeAppendResponse(ConjureUnionType):
17034
17121
  """These cover the subset of the union type in `ComputeNodeResponse` for which we support append results.
17035
17122
  Append results will have the same subtype as the previous full result for the same `SubscriptionId`.
@@ -17509,13 +17596,15 @@ class persistent_compute_api_HealthMessage(ConjureUnionType):
17509
17596
  _ping: Optional["persistent_compute_api_Ping"] = None
17510
17597
  _pong: Optional["persistent_compute_api_Pong"] = None
17511
17598
  _shutdown_notice: Optional["persistent_compute_api_ShutdownNotice"] = None
17599
+ _client_message_error: Optional["persistent_compute_api_ClientMessageError"] = None
17512
17600
 
17513
17601
  @builtins.classmethod
17514
17602
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
17515
17603
  return {
17516
17604
  'ping': ConjureFieldDefinition('ping', persistent_compute_api_Ping),
17517
17605
  'pong': ConjureFieldDefinition('pong', persistent_compute_api_Pong),
17518
- 'shutdown_notice': ConjureFieldDefinition('shutdownNotice', persistent_compute_api_ShutdownNotice)
17606
+ 'shutdown_notice': ConjureFieldDefinition('shutdownNotice', persistent_compute_api_ShutdownNotice),
17607
+ 'client_message_error': ConjureFieldDefinition('clientMessageError', persistent_compute_api_ClientMessageError)
17519
17608
  }
17520
17609
 
17521
17610
  def __init__(
@@ -17523,10 +17612,11 @@ class persistent_compute_api_HealthMessage(ConjureUnionType):
17523
17612
  ping: Optional["persistent_compute_api_Ping"] = None,
17524
17613
  pong: Optional["persistent_compute_api_Pong"] = None,
17525
17614
  shutdown_notice: Optional["persistent_compute_api_ShutdownNotice"] = None,
17615
+ client_message_error: Optional["persistent_compute_api_ClientMessageError"] = None,
17526
17616
  type_of_union: Optional[str] = None
17527
17617
  ) -> None:
17528
17618
  if type_of_union is None:
17529
- if (ping is not None) + (pong is not None) + (shutdown_notice is not None) != 1:
17619
+ if (ping is not None) + (pong is not None) + (shutdown_notice is not None) + (client_message_error is not None) != 1:
17530
17620
  raise ValueError('a union must contain a single member')
17531
17621
 
17532
17622
  if ping is not None:
@@ -17538,6 +17628,9 @@ class persistent_compute_api_HealthMessage(ConjureUnionType):
17538
17628
  if shutdown_notice is not None:
17539
17629
  self._shutdown_notice = shutdown_notice
17540
17630
  self._type = 'shutdownNotice'
17631
+ if client_message_error is not None:
17632
+ self._client_message_error = client_message_error
17633
+ self._type = 'clientMessageError'
17541
17634
 
17542
17635
  elif type_of_union == 'ping':
17543
17636
  if ping is None:
@@ -17554,6 +17647,11 @@ class persistent_compute_api_HealthMessage(ConjureUnionType):
17554
17647
  raise ValueError('a union value must not be None')
17555
17648
  self._shutdown_notice = shutdown_notice
17556
17649
  self._type = 'shutdownNotice'
17650
+ elif type_of_union == 'clientMessageError':
17651
+ if client_message_error is None:
17652
+ raise ValueError('a union value must not be None')
17653
+ self._client_message_error = client_message_error
17654
+ self._type = 'clientMessageError'
17557
17655
 
17558
17656
  @builtins.property
17559
17657
  def ping(self) -> Optional["persistent_compute_api_Ping"]:
@@ -17567,6 +17665,10 @@ class persistent_compute_api_HealthMessage(ConjureUnionType):
17567
17665
  def shutdown_notice(self) -> Optional["persistent_compute_api_ShutdownNotice"]:
17568
17666
  return self._shutdown_notice
17569
17667
 
17668
+ @builtins.property
17669
+ def client_message_error(self) -> Optional["persistent_compute_api_ClientMessageError"]:
17670
+ return self._client_message_error
17671
+
17570
17672
  def accept(self, visitor) -> Any:
17571
17673
  if not isinstance(visitor, persistent_compute_api_HealthMessageVisitor):
17572
17674
  raise ValueError('{} is not an instance of persistent_compute_api_HealthMessageVisitor'.format(visitor.__class__.__name__))
@@ -17576,6 +17678,8 @@ class persistent_compute_api_HealthMessage(ConjureUnionType):
17576
17678
  return visitor._pong(self.pong)
17577
17679
  if self._type == 'shutdownNotice' and self.shutdown_notice is not None:
17578
17680
  return visitor._shutdown_notice(self.shutdown_notice)
17681
+ if self._type == 'clientMessageError' and self.client_message_error is not None:
17682
+ return visitor._client_message_error(self.client_message_error)
17579
17683
 
17580
17684
 
17581
17685
  persistent_compute_api_HealthMessage.__name__ = "HealthMessage"
@@ -17597,6 +17701,10 @@ class persistent_compute_api_HealthMessageVisitor:
17597
17701
  def _shutdown_notice(self, shutdown_notice: "persistent_compute_api_ShutdownNotice") -> Any:
17598
17702
  pass
17599
17703
 
17704
+ @abstractmethod
17705
+ def _client_message_error(self, client_message_error: "persistent_compute_api_ClientMessageError") -> Any:
17706
+ pass
17707
+
17600
17708
 
17601
17709
  persistent_compute_api_HealthMessageVisitor.__name__ = "HealthMessageVisitor"
17602
17710
  persistent_compute_api_HealthMessageVisitor.__qualname__ = "HealthMessageVisitor"
@@ -92415,15 +92523,12 @@ themes_api_UpdateChartThemeRequest.__qualname__ = "UpdateChartThemeRequest"
92415
92523
  themes_api_UpdateChartThemeRequest.__module__ = "nominal_api.themes_api"
92416
92524
 
92417
92525
 
92418
- class timeseries_archetype_SeriesArchetypeService(Service):
92419
- """[INTERNAL]
92420
- A series archetype represents the constant information about data in a series - specifically, the name, units, a
92421
- description, and the tags. Series archetypes can be used to query points from specific series depending on the tag
92422
- value selections.
92526
+ class timeseries_channelmetadata_ChannelMetadataService(Service):
92527
+ """Endpoints for retrieving and updating channel metadata.
92423
92528
  """
92424
92529
 
92425
- def batch_get(self, auth_header: str, request: "timeseries_archetype_api_BatchGetSeriesArchetypeRequest") -> "timeseries_archetype_api_BatchGetSeriesArchetypeResponse":
92426
- """Batch get series archetypes by DataSourceRid.
92530
+ def get_channel_metadata(self, auth_header: str, request: "timeseries_channelmetadata_api_GetChannelMetadataRequest") -> "timeseries_channelmetadata_api_ChannelMetadata":
92531
+ """Get the metadata for a channel.
92427
92532
  """
92428
92533
  _conjure_encoder = ConjureEncoder()
92429
92534
 
@@ -92441,7 +92546,7 @@ value selections.
92441
92546
 
92442
92547
  _json: Any = _conjure_encoder.default(request)
92443
92548
 
92444
- _path = '/timeseries/archetype/v1/series-archetype/batch-get'
92549
+ _path = '/timeseries/channel-metadata/v1/channel-metadata/get'
92445
92550
  _path = _path.format(**_path_params)
92446
92551
 
92447
92552
  _response: Response = self._request(
@@ -92452,10 +92557,11 @@ value selections.
92452
92557
  json=_json)
92453
92558
 
92454
92559
  _decoder = ConjureDecoder()
92455
- return _decoder.decode(_response.json(), timeseries_archetype_api_BatchGetSeriesArchetypeResponse, self._return_none_for_unknown_union_types)
92560
+ return _decoder.decode(_response.json(), timeseries_channelmetadata_api_ChannelMetadata, self._return_none_for_unknown_union_types)
92456
92561
 
92457
- def create(self, auth_header: str, request: "timeseries_archetype_api_CreateSeriesArchetypeRequest") -> None:
92458
- """Create a new series archetype.
92562
+ def batch_get_channel_metadata(self, auth_header: str, request: "timeseries_channelmetadata_api_BatchGetChannelMetadataRequest") -> "timeseries_channelmetadata_api_BatchGetChannelMetadataResponse":
92563
+ """Batch get the metadata for multiple channels. If some channels cannot be found or authorized,
92564
+ they will be omitted from the response.
92459
92565
  """
92460
92566
  _conjure_encoder = ConjureEncoder()
92461
92567
 
@@ -92473,7 +92579,7 @@ value selections.
92473
92579
 
92474
92580
  _json: Any = _conjure_encoder.default(request)
92475
92581
 
92476
- _path = '/timeseries/archetype/v1/series-archetype'
92582
+ _path = '/timeseries/channel-metadata/v1/channel-metadata/batch-get'
92477
92583
  _path = _path.format(**_path_params)
92478
92584
 
92479
92585
  _response: Response = self._request(
@@ -92483,10 +92589,11 @@ value selections.
92483
92589
  headers=_headers,
92484
92590
  json=_json)
92485
92591
 
92486
- return
92592
+ _decoder = ConjureDecoder()
92593
+ return _decoder.decode(_response.json(), timeseries_channelmetadata_api_BatchGetChannelMetadataResponse, self._return_none_for_unknown_union_types)
92487
92594
 
92488
- def batch_create(self, auth_header: str, request: "timeseries_archetype_api_BatchCreateSeriesArchetypeRequest") -> None:
92489
- """Idempotently creates series archetypes.
92595
+ def update_channel_metadata(self, auth_header: str, request: "timeseries_channelmetadata_api_UpdateChannelMetadataRequest") -> "timeseries_channelmetadata_api_ChannelMetadata":
92596
+ """Update the metadata for a channel.
92490
92597
  """
92491
92598
  _conjure_encoder = ConjureEncoder()
92492
92599
 
@@ -92504,7 +92611,7 @@ value selections.
92504
92611
 
92505
92612
  _json: Any = _conjure_encoder.default(request)
92506
92613
 
92507
- _path = '/timeseries/archetype/v1/series-archetype/batch-create'
92614
+ _path = '/timeseries/channel-metadata/v1/channel-metadata/update'
92508
92615
  _path = _path.format(**_path_params)
92509
92616
 
92510
92617
  _response: Response = self._request(
@@ -92514,43 +92621,12 @@ value selections.
92514
92621
  headers=_headers,
92515
92622
  json=_json)
92516
92623
 
92517
- return
92518
-
92519
- def get(self, auth_header: str, rid: str) -> "timeseries_archetype_api_SeriesArchetype":
92520
- """Get a series archetype from its series archetype rid.
92521
- """
92522
- _conjure_encoder = ConjureEncoder()
92523
-
92524
- _headers: Dict[str, Any] = {
92525
- 'Accept': 'application/json',
92526
- 'Authorization': auth_header,
92527
- }
92528
-
92529
- _params: Dict[str, Any] = {
92530
- }
92531
-
92532
- _path_params: Dict[str, str] = {
92533
- 'rid': quote(str(_conjure_encoder.default(rid)), safe=''),
92534
- }
92535
-
92536
- _json: Any = None
92537
-
92538
- _path = '/timeseries/archetype/v1/series-archetype/{rid}'
92539
- _path = _path.format(**_path_params)
92540
-
92541
- _response: Response = self._request(
92542
- 'GET',
92543
- self._uri + _path,
92544
- params=_params,
92545
- headers=_headers,
92546
- json=_json)
92547
-
92548
92624
  _decoder = ConjureDecoder()
92549
- return _decoder.decode(_response.json(), timeseries_archetype_api_SeriesArchetype, self._return_none_for_unknown_union_types)
92625
+ return _decoder.decode(_response.json(), timeseries_channelmetadata_api_ChannelMetadata, self._return_none_for_unknown_union_types)
92550
92626
 
92551
- def update_metadata(self, auth_header: str, request: "timeseries_archetype_api_UpdateSeriesArchetypeMetadataRequest", rid: str) -> "timeseries_archetype_api_SeriesArchetype":
92552
- """Update the metadata on an existing series archetype.
92553
- Throws SeriesArchetypeNotFound if the series archetype does not exist.
92627
+ def batch_update_channel_metadata(self, auth_header: str, request: "timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest") -> "timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse":
92628
+ """Batch update the metadata for multiple channels. If some channels cannot be found or authorized,
92629
+ no metadata will be updated for any of the channels in the request.
92554
92630
  """
92555
92631
  _conjure_encoder = ConjureEncoder()
92556
92632
 
@@ -92564,12 +92640,11 @@ Throws SeriesArchetypeNotFound if the series archetype does not exist.
92564
92640
  }
92565
92641
 
92566
92642
  _path_params: Dict[str, str] = {
92567
- 'rid': quote(str(_conjure_encoder.default(rid)), safe=''),
92568
92643
  }
92569
92644
 
92570
92645
  _json: Any = _conjure_encoder.default(request)
92571
92646
 
92572
- _path = '/timeseries/archetype/v1/series-archetype/{rid}/metadata'
92647
+ _path = '/timeseries/channel-metadata/v1/channel-metadata/batch-update'
92573
92648
  _path = _path.format(**_path_params)
92574
92649
 
92575
92650
  _response: Response = self._request(
@@ -92580,1039 +92655,1635 @@ Throws SeriesArchetypeNotFound if the series archetype does not exist.
92580
92655
  json=_json)
92581
92656
 
92582
92657
  _decoder = ConjureDecoder()
92583
- return _decoder.decode(_response.json(), timeseries_archetype_api_SeriesArchetype, self._return_none_for_unknown_union_types)
92658
+ return _decoder.decode(_response.json(), timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse, self._return_none_for_unknown_union_types)
92584
92659
 
92585
92660
 
92586
- timeseries_archetype_SeriesArchetypeService.__name__ = "SeriesArchetypeService"
92587
- timeseries_archetype_SeriesArchetypeService.__qualname__ = "SeriesArchetypeService"
92588
- timeseries_archetype_SeriesArchetypeService.__module__ = "nominal_api.timeseries_archetype"
92661
+ timeseries_channelmetadata_ChannelMetadataService.__name__ = "ChannelMetadataService"
92662
+ timeseries_channelmetadata_ChannelMetadataService.__qualname__ = "ChannelMetadataService"
92663
+ timeseries_channelmetadata_ChannelMetadataService.__module__ = "nominal_api.timeseries_channelmetadata"
92589
92664
 
92590
92665
 
92591
- class timeseries_archetype_api_ApiLocatorTemplate(ConjureBeanType):
92666
+ class timeseries_channelmetadata_api_BatchGetChannelMetadataRequest(ConjureBeanType):
92592
92667
 
92593
92668
  @builtins.classmethod
92594
92669
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
92595
92670
  return {
92596
- 'channel': ConjureFieldDefinition('channel', api_Channel),
92597
- 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_ApiType)
92671
+ 'requests': ConjureFieldDefinition('requests', List[timeseries_channelmetadata_api_GetChannelMetadataRequest])
92598
92672
  }
92599
92673
 
92600
- __slots__: List[str] = ['_channel', '_type']
92601
-
92602
- def __init__(self, channel: str, type: "timeseries_logicalseries_api_ApiType") -> None:
92603
- self._channel = channel
92604
- self._type = type
92674
+ __slots__: List[str] = ['_requests']
92605
92675
 
92606
- @builtins.property
92607
- def channel(self) -> str:
92608
- return self._channel
92676
+ def __init__(self, requests: List["timeseries_channelmetadata_api_GetChannelMetadataRequest"]) -> None:
92677
+ self._requests = requests
92609
92678
 
92610
92679
  @builtins.property
92611
- def type(self) -> "timeseries_logicalseries_api_ApiType":
92612
- return self._type
92680
+ def requests(self) -> List["timeseries_channelmetadata_api_GetChannelMetadataRequest"]:
92681
+ return self._requests
92613
92682
 
92614
92683
 
92615
- timeseries_archetype_api_ApiLocatorTemplate.__name__ = "ApiLocatorTemplate"
92616
- timeseries_archetype_api_ApiLocatorTemplate.__qualname__ = "ApiLocatorTemplate"
92617
- timeseries_archetype_api_ApiLocatorTemplate.__module__ = "nominal_api.timeseries_archetype_api"
92684
+ timeseries_channelmetadata_api_BatchGetChannelMetadataRequest.__name__ = "BatchGetChannelMetadataRequest"
92685
+ timeseries_channelmetadata_api_BatchGetChannelMetadataRequest.__qualname__ = "BatchGetChannelMetadataRequest"
92686
+ timeseries_channelmetadata_api_BatchGetChannelMetadataRequest.__module__ = "nominal_api.timeseries_channelmetadata_api"
92618
92687
 
92619
92688
 
92620
- class timeseries_archetype_api_BatchCreateSeriesArchetypeRequest(ConjureBeanType):
92689
+ class timeseries_channelmetadata_api_BatchGetChannelMetadataResponse(ConjureBeanType):
92621
92690
 
92622
92691
  @builtins.classmethod
92623
92692
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
92624
92693
  return {
92625
- 'requests': ConjureFieldDefinition('requests', List[timeseries_archetype_api_CreateSeriesArchetypeRequest])
92694
+ 'responses': ConjureFieldDefinition('responses', List[timeseries_channelmetadata_api_ChannelMetadata])
92626
92695
  }
92627
92696
 
92628
- __slots__: List[str] = ['_requests']
92697
+ __slots__: List[str] = ['_responses']
92629
92698
 
92630
- def __init__(self, requests: List["timeseries_archetype_api_CreateSeriesArchetypeRequest"]) -> None:
92631
- self._requests = requests
92699
+ def __init__(self, responses: List["timeseries_channelmetadata_api_ChannelMetadata"]) -> None:
92700
+ self._responses = responses
92632
92701
 
92633
92702
  @builtins.property
92634
- def requests(self) -> List["timeseries_archetype_api_CreateSeriesArchetypeRequest"]:
92635
- return self._requests
92703
+ def responses(self) -> List["timeseries_channelmetadata_api_ChannelMetadata"]:
92704
+ return self._responses
92636
92705
 
92637
92706
 
92638
- timeseries_archetype_api_BatchCreateSeriesArchetypeRequest.__name__ = "BatchCreateSeriesArchetypeRequest"
92639
- timeseries_archetype_api_BatchCreateSeriesArchetypeRequest.__qualname__ = "BatchCreateSeriesArchetypeRequest"
92640
- timeseries_archetype_api_BatchCreateSeriesArchetypeRequest.__module__ = "nominal_api.timeseries_archetype_api"
92707
+ timeseries_channelmetadata_api_BatchGetChannelMetadataResponse.__name__ = "BatchGetChannelMetadataResponse"
92708
+ timeseries_channelmetadata_api_BatchGetChannelMetadataResponse.__qualname__ = "BatchGetChannelMetadataResponse"
92709
+ timeseries_channelmetadata_api_BatchGetChannelMetadataResponse.__module__ = "nominal_api.timeseries_channelmetadata_api"
92641
92710
 
92642
92711
 
92643
- class timeseries_archetype_api_BatchGetSeriesArchetypeRequest(ConjureBeanType):
92712
+ class timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest(ConjureBeanType):
92644
92713
 
92645
92714
  @builtins.classmethod
92646
92715
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
92647
92716
  return {
92648
- 'datasources': ConjureFieldDefinition('datasources', List[api_rids_DataSourceRid])
92717
+ 'requests': ConjureFieldDefinition('requests', List[timeseries_channelmetadata_api_UpdateChannelMetadataRequest])
92649
92718
  }
92650
92719
 
92651
- __slots__: List[str] = ['_datasources']
92720
+ __slots__: List[str] = ['_requests']
92652
92721
 
92653
- def __init__(self, datasources: List[str]) -> None:
92654
- self._datasources = datasources
92722
+ def __init__(self, requests: List["timeseries_channelmetadata_api_UpdateChannelMetadataRequest"]) -> None:
92723
+ self._requests = requests
92655
92724
 
92656
92725
  @builtins.property
92657
- def datasources(self) -> List[str]:
92658
- return self._datasources
92726
+ def requests(self) -> List["timeseries_channelmetadata_api_UpdateChannelMetadataRequest"]:
92727
+ return self._requests
92659
92728
 
92660
92729
 
92661
- timeseries_archetype_api_BatchGetSeriesArchetypeRequest.__name__ = "BatchGetSeriesArchetypeRequest"
92662
- timeseries_archetype_api_BatchGetSeriesArchetypeRequest.__qualname__ = "BatchGetSeriesArchetypeRequest"
92663
- timeseries_archetype_api_BatchGetSeriesArchetypeRequest.__module__ = "nominal_api.timeseries_archetype_api"
92730
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest.__name__ = "BatchUpdateChannelMetadataRequest"
92731
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest.__qualname__ = "BatchUpdateChannelMetadataRequest"
92732
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest.__module__ = "nominal_api.timeseries_channelmetadata_api"
92664
92733
 
92665
92734
 
92666
- class timeseries_archetype_api_BatchGetSeriesArchetypeResponse(ConjureBeanType):
92735
+ class timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse(ConjureBeanType):
92667
92736
 
92668
92737
  @builtins.classmethod
92669
92738
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
92670
92739
  return {
92671
- 'responses': ConjureFieldDefinition('responses', Dict[api_rids_DataSourceRid, List[timeseries_archetype_api_SeriesArchetype]])
92740
+ 'responses': ConjureFieldDefinition('responses', List[timeseries_channelmetadata_api_ChannelMetadata])
92672
92741
  }
92673
92742
 
92674
92743
  __slots__: List[str] = ['_responses']
92675
92744
 
92676
- def __init__(self, responses: Dict[str, List["timeseries_archetype_api_SeriesArchetype"]]) -> None:
92745
+ def __init__(self, responses: List["timeseries_channelmetadata_api_ChannelMetadata"]) -> None:
92677
92746
  self._responses = responses
92678
92747
 
92679
92748
  @builtins.property
92680
- def responses(self) -> Dict[str, List["timeseries_archetype_api_SeriesArchetype"]]:
92749
+ def responses(self) -> List["timeseries_channelmetadata_api_ChannelMetadata"]:
92681
92750
  return self._responses
92682
92751
 
92683
92752
 
92684
- timeseries_archetype_api_BatchGetSeriesArchetypeResponse.__name__ = "BatchGetSeriesArchetypeResponse"
92685
- timeseries_archetype_api_BatchGetSeriesArchetypeResponse.__qualname__ = "BatchGetSeriesArchetypeResponse"
92686
- timeseries_archetype_api_BatchGetSeriesArchetypeResponse.__module__ = "nominal_api.timeseries_archetype_api"
92753
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse.__name__ = "BatchUpdateChannelMetadataResponse"
92754
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse.__qualname__ = "BatchUpdateChannelMetadataResponse"
92755
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse.__module__ = "nominal_api.timeseries_channelmetadata_api"
92687
92756
 
92688
92757
 
92689
- class timeseries_archetype_api_BigQueryLocatorTemplate(ConjureBeanType):
92758
+ class timeseries_channelmetadata_api_ChannelIdentifier(ConjureBeanType):
92690
92759
 
92691
92760
  @builtins.classmethod
92692
92761
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
92693
92762
  return {
92694
- 'value_column': ConjureFieldDefinition('valueColumn', timeseries_logicalseries_api_ColumnName),
92695
- 'time_column': ConjureFieldDefinition('timeColumn', timeseries_logicalseries_api_ColumnName),
92696
- 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_BigQueryType)
92763
+ 'channel_name': ConjureFieldDefinition('channelName', api_Channel),
92764
+ 'data_source_rid': ConjureFieldDefinition('dataSourceRid', api_rids_DataSourceRid)
92697
92765
  }
92698
92766
 
92699
- __slots__: List[str] = ['_value_column', '_time_column', '_type']
92700
-
92701
- def __init__(self, time_column: str, type: "timeseries_logicalseries_api_BigQueryType", value_column: str) -> None:
92702
- self._value_column = value_column
92703
- self._time_column = time_column
92704
- self._type = type
92767
+ __slots__: List[str] = ['_channel_name', '_data_source_rid']
92705
92768
 
92706
- @builtins.property
92707
- def value_column(self) -> str:
92708
- return self._value_column
92769
+ def __init__(self, channel_name: str, data_source_rid: str) -> None:
92770
+ self._channel_name = channel_name
92771
+ self._data_source_rid = data_source_rid
92709
92772
 
92710
92773
  @builtins.property
92711
- def time_column(self) -> str:
92712
- return self._time_column
92774
+ def channel_name(self) -> str:
92775
+ return self._channel_name
92713
92776
 
92714
92777
  @builtins.property
92715
- def type(self) -> "timeseries_logicalseries_api_BigQueryType":
92716
- return self._type
92778
+ def data_source_rid(self) -> str:
92779
+ return self._data_source_rid
92717
92780
 
92718
92781
 
92719
- timeseries_archetype_api_BigQueryLocatorTemplate.__name__ = "BigQueryLocatorTemplate"
92720
- timeseries_archetype_api_BigQueryLocatorTemplate.__qualname__ = "BigQueryLocatorTemplate"
92721
- timeseries_archetype_api_BigQueryLocatorTemplate.__module__ = "nominal_api.timeseries_archetype_api"
92782
+ timeseries_channelmetadata_api_ChannelIdentifier.__name__ = "ChannelIdentifier"
92783
+ timeseries_channelmetadata_api_ChannelIdentifier.__qualname__ = "ChannelIdentifier"
92784
+ timeseries_channelmetadata_api_ChannelIdentifier.__module__ = "nominal_api.timeseries_channelmetadata_api"
92722
92785
 
92723
92786
 
92724
- class timeseries_archetype_api_CreateSeriesArchetypeRequest(ConjureBeanType):
92787
+ class timeseries_channelmetadata_api_ChannelMetadata(ConjureBeanType):
92725
92788
 
92726
92789
  @builtins.classmethod
92727
92790
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
92728
92791
  return {
92729
- 'channel': ConjureFieldDefinition('channel', api_Channel),
92730
- 'data_source_rid': ConjureFieldDefinition('dataSourceRid', api_rids_DataSourceRid),
92731
- 'locator': ConjureFieldDefinition('locator', timeseries_archetype_api_LocatorTemplate),
92732
- 'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[api_Unit]),
92792
+ 'channel_identifier': ConjureFieldDefinition('channelIdentifier', timeseries_channelmetadata_api_ChannelIdentifier),
92733
92793
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
92734
- 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue])
92794
+ 'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[api_Unit]),
92795
+ 'data_type': ConjureFieldDefinition('dataType', OptionalTypeWrapper[api_SeriesDataType])
92735
92796
  }
92736
92797
 
92737
- __slots__: List[str] = ['_channel', '_data_source_rid', '_locator', '_unit', '_description', '_tags']
92798
+ __slots__: List[str] = ['_channel_identifier', '_description', '_unit', '_data_type']
92738
92799
 
92739
- def __init__(self, channel: str, data_source_rid: str, locator: "timeseries_archetype_api_LocatorTemplate", tags: Dict[str, str], description: Optional[str] = None, unit: Optional[str] = None) -> None:
92740
- self._channel = channel
92741
- self._data_source_rid = data_source_rid
92742
- self._locator = locator
92743
- self._unit = unit
92800
+ def __init__(self, channel_identifier: "timeseries_channelmetadata_api_ChannelIdentifier", data_type: Optional["api_SeriesDataType"] = None, description: Optional[str] = None, unit: Optional[str] = None) -> None:
92801
+ self._channel_identifier = channel_identifier
92744
92802
  self._description = description
92745
- self._tags = tags
92746
-
92747
- @builtins.property
92748
- def channel(self) -> str:
92749
- """This name should be unique amongst SeriesArchetypes within the data source. All series created from this
92750
- archetype will share this name.
92751
- """
92752
- return self._channel
92803
+ self._unit = unit
92804
+ self._data_type = data_type
92753
92805
 
92754
92806
  @builtins.property
92755
- def data_source_rid(self) -> str:
92756
- return self._data_source_rid
92807
+ def channel_identifier(self) -> "timeseries_channelmetadata_api_ChannelIdentifier":
92808
+ return self._channel_identifier
92757
92809
 
92758
92810
  @builtins.property
92759
- def locator(self) -> "timeseries_archetype_api_LocatorTemplate":
92760
- return self._locator
92811
+ def description(self) -> Optional[str]:
92812
+ return self._description
92761
92813
 
92762
92814
  @builtins.property
92763
92815
  def unit(self) -> Optional[str]:
92764
92816
  return self._unit
92765
92817
 
92766
92818
  @builtins.property
92767
- def description(self) -> Optional[str]:
92768
- return self._description
92769
-
92770
- @builtins.property
92771
- def tags(self) -> Dict[str, str]:
92772
- """Tags specified here will take precedence over tags specified in the RunDatasource, in the case that both specify the same TagName.
92773
- """
92774
- return self._tags
92819
+ def data_type(self) -> Optional["api_SeriesDataType"]:
92820
+ return self._data_type
92775
92821
 
92776
92822
 
92777
- timeseries_archetype_api_CreateSeriesArchetypeRequest.__name__ = "CreateSeriesArchetypeRequest"
92778
- timeseries_archetype_api_CreateSeriesArchetypeRequest.__qualname__ = "CreateSeriesArchetypeRequest"
92779
- timeseries_archetype_api_CreateSeriesArchetypeRequest.__module__ = "nominal_api.timeseries_archetype_api"
92823
+ timeseries_channelmetadata_api_ChannelMetadata.__name__ = "ChannelMetadata"
92824
+ timeseries_channelmetadata_api_ChannelMetadata.__qualname__ = "ChannelMetadata"
92825
+ timeseries_channelmetadata_api_ChannelMetadata.__module__ = "nominal_api.timeseries_channelmetadata_api"
92780
92826
 
92781
92827
 
92782
- class timeseries_archetype_api_Influx1LocatorTemplate(ConjureBeanType):
92828
+ class timeseries_channelmetadata_api_GetChannelMetadataRequest(ConjureBeanType):
92783
92829
 
92784
92830
  @builtins.classmethod
92785
92831
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
92786
92832
  return {
92787
- 'database': ConjureFieldDefinition('database', timeseries_logicalseries_api_DatabaseName),
92788
- 'measurement': ConjureFieldDefinition('measurement', timeseries_logicalseries_api_MeasurementName),
92789
- 'field': ConjureFieldDefinition('field', timeseries_logicalseries_api_FieldName),
92790
- 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_InfluxType)
92833
+ 'channel_identifier': ConjureFieldDefinition('channelIdentifier', timeseries_channelmetadata_api_ChannelIdentifier)
92791
92834
  }
92792
92835
 
92793
- __slots__: List[str] = ['_database', '_measurement', '_field', '_type']
92794
-
92795
- def __init__(self, database: str, field: str, measurement: str, type: "timeseries_logicalseries_api_InfluxType") -> None:
92796
- self._database = database
92797
- self._measurement = measurement
92798
- self._field = field
92799
- self._type = type
92800
-
92801
- @builtins.property
92802
- def database(self) -> str:
92803
- return self._database
92804
-
92805
- @builtins.property
92806
- def measurement(self) -> str:
92807
- return self._measurement
92836
+ __slots__: List[str] = ['_channel_identifier']
92808
92837
 
92809
- @builtins.property
92810
- def field(self) -> str:
92811
- return self._field
92838
+ def __init__(self, channel_identifier: "timeseries_channelmetadata_api_ChannelIdentifier") -> None:
92839
+ self._channel_identifier = channel_identifier
92812
92840
 
92813
92841
  @builtins.property
92814
- def type(self) -> "timeseries_logicalseries_api_InfluxType":
92815
- return self._type
92842
+ def channel_identifier(self) -> "timeseries_channelmetadata_api_ChannelIdentifier":
92843
+ return self._channel_identifier
92816
92844
 
92817
92845
 
92818
- timeseries_archetype_api_Influx1LocatorTemplate.__name__ = "Influx1LocatorTemplate"
92819
- timeseries_archetype_api_Influx1LocatorTemplate.__qualname__ = "Influx1LocatorTemplate"
92820
- timeseries_archetype_api_Influx1LocatorTemplate.__module__ = "nominal_api.timeseries_archetype_api"
92846
+ timeseries_channelmetadata_api_GetChannelMetadataRequest.__name__ = "GetChannelMetadataRequest"
92847
+ timeseries_channelmetadata_api_GetChannelMetadataRequest.__qualname__ = "GetChannelMetadataRequest"
92848
+ timeseries_channelmetadata_api_GetChannelMetadataRequest.__module__ = "nominal_api.timeseries_channelmetadata_api"
92821
92849
 
92822
92850
 
92823
- class timeseries_archetype_api_Influx2LocatorTemplate(ConjureBeanType):
92851
+ class timeseries_channelmetadata_api_UpdateChannelMetadataRequest(ConjureBeanType):
92824
92852
 
92825
92853
  @builtins.classmethod
92826
92854
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
92827
92855
  return {
92828
- 'bucket': ConjureFieldDefinition('bucket', timeseries_logicalseries_api_BucketName),
92829
- 'measurement': ConjureFieldDefinition('measurement', timeseries_logicalseries_api_MeasurementName),
92830
- 'value_column': ConjureFieldDefinition('valueColumn', OptionalTypeWrapper[str]),
92831
- 'field': ConjureFieldDefinition('field', timeseries_logicalseries_api_FieldName),
92832
- 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_InfluxType)
92856
+ 'channel_identifier': ConjureFieldDefinition('channelIdentifier', timeseries_channelmetadata_api_ChannelIdentifier),
92857
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
92858
+ 'unit_update': ConjureFieldDefinition('unitUpdate', OptionalTypeWrapper[timeseries_logicalseries_api_UnitUpdate])
92833
92859
  }
92834
92860
 
92835
- __slots__: List[str] = ['_bucket', '_measurement', '_value_column', '_field', '_type']
92861
+ __slots__: List[str] = ['_channel_identifier', '_description', '_unit_update']
92836
92862
 
92837
- def __init__(self, bucket: str, field: str, measurement: str, type: "timeseries_logicalseries_api_InfluxType", value_column: Optional[str] = None) -> None:
92838
- self._bucket = bucket
92839
- self._measurement = measurement
92840
- self._value_column = value_column
92841
- self._field = field
92842
- self._type = type
92863
+ def __init__(self, channel_identifier: "timeseries_channelmetadata_api_ChannelIdentifier", description: Optional[str] = None, unit_update: Optional["timeseries_logicalseries_api_UnitUpdate"] = None) -> None:
92864
+ self._channel_identifier = channel_identifier
92865
+ self._description = description
92866
+ self._unit_update = unit_update
92843
92867
 
92844
92868
  @builtins.property
92845
- def bucket(self) -> str:
92846
- return self._bucket
92869
+ def channel_identifier(self) -> "timeseries_channelmetadata_api_ChannelIdentifier":
92870
+ return self._channel_identifier
92847
92871
 
92848
92872
  @builtins.property
92849
- def measurement(self) -> str:
92850
- return self._measurement
92873
+ def description(self) -> Optional[str]:
92874
+ return self._description
92851
92875
 
92852
92876
  @builtins.property
92853
- def value_column(self) -> Optional[str]:
92854
- """If omitted, defaults to `_value`. Can be used to extract tag values.
92855
- """
92856
- return self._value_column
92877
+ def unit_update(self) -> Optional["timeseries_logicalseries_api_UnitUpdate"]:
92878
+ return self._unit_update
92857
92879
 
92858
- @builtins.property
92859
- def field(self) -> str:
92860
- return self._field
92861
92880
 
92862
- @builtins.property
92863
- def type(self) -> "timeseries_logicalseries_api_InfluxType":
92864
- return self._type
92881
+ timeseries_channelmetadata_api_UpdateChannelMetadataRequest.__name__ = "UpdateChannelMetadataRequest"
92882
+ timeseries_channelmetadata_api_UpdateChannelMetadataRequest.__qualname__ = "UpdateChannelMetadataRequest"
92883
+ timeseries_channelmetadata_api_UpdateChannelMetadataRequest.__module__ = "nominal_api.timeseries_channelmetadata_api"
92865
92884
 
92866
92885
 
92867
- timeseries_archetype_api_Influx2LocatorTemplate.__name__ = "Influx2LocatorTemplate"
92868
- timeseries_archetype_api_Influx2LocatorTemplate.__qualname__ = "Influx2LocatorTemplate"
92869
- timeseries_archetype_api_Influx2LocatorTemplate.__module__ = "nominal_api.timeseries_archetype_api"
92886
+ class timeseries_logicalseries_LogicalSeriesService(Service):
92887
+ """A logical series is a timeseries, represented by a channel name and a tag set.
92888
+ """
92870
92889
 
92890
+ def create_logical_series(self, auth_header: str, create_logical_series: "timeseries_logicalseries_api_CreateLogicalSeries") -> "timeseries_logicalseries_api_LogicalSeries":
92891
+ """Create a new logical series.
92892
+ """
92893
+ _conjure_encoder = ConjureEncoder()
92871
92894
 
92872
- class timeseries_archetype_api_LocatorTemplate(ConjureUnionType):
92873
- _timescale_db: Optional["timeseries_archetype_api_TimescaleDbLocatorTemplate"] = None
92874
- _influx: Optional["timeseries_archetype_api_Influx2LocatorTemplate"] = None
92875
- _influx1: Optional["timeseries_archetype_api_Influx1LocatorTemplate"] = None
92876
- _nominal: Optional["timeseries_archetype_api_NominalLocatorTemplate"] = None
92877
- _timestream: Optional["timeseries_archetype_api_TimestreamLocatorTemplate"] = None
92878
- _visual_crossing: Optional["timeseries_archetype_api_VisualCrossingLocatorTemplate"] = None
92879
- _big_query: Optional["timeseries_archetype_api_BigQueryLocatorTemplate"] = None
92880
- _api: Optional["timeseries_archetype_api_ApiLocatorTemplate"] = None
92895
+ _headers: Dict[str, Any] = {
92896
+ 'Accept': 'application/json',
92897
+ 'Content-Type': 'application/json',
92898
+ 'Authorization': auth_header,
92899
+ }
92881
92900
 
92882
- @builtins.classmethod
92883
- def _options(cls) -> Dict[str, ConjureFieldDefinition]:
92884
- return {
92885
- 'timescale_db': ConjureFieldDefinition('timescaleDb', timeseries_archetype_api_TimescaleDbLocatorTemplate),
92886
- 'influx': ConjureFieldDefinition('influx', timeseries_archetype_api_Influx2LocatorTemplate),
92887
- 'influx1': ConjureFieldDefinition('influx1', timeseries_archetype_api_Influx1LocatorTemplate),
92888
- 'nominal': ConjureFieldDefinition('nominal', timeseries_archetype_api_NominalLocatorTemplate),
92889
- 'timestream': ConjureFieldDefinition('timestream', timeseries_archetype_api_TimestreamLocatorTemplate),
92890
- 'visual_crossing': ConjureFieldDefinition('visualCrossing', timeseries_archetype_api_VisualCrossingLocatorTemplate),
92891
- 'big_query': ConjureFieldDefinition('bigQuery', timeseries_archetype_api_BigQueryLocatorTemplate),
92892
- 'api': ConjureFieldDefinition('api', timeseries_archetype_api_ApiLocatorTemplate)
92901
+ _params: Dict[str, Any] = {
92893
92902
  }
92894
92903
 
92895
- def __init__(
92896
- self,
92897
- timescale_db: Optional["timeseries_archetype_api_TimescaleDbLocatorTemplate"] = None,
92898
- influx: Optional["timeseries_archetype_api_Influx2LocatorTemplate"] = None,
92899
- influx1: Optional["timeseries_archetype_api_Influx1LocatorTemplate"] = None,
92900
- nominal: Optional["timeseries_archetype_api_NominalLocatorTemplate"] = None,
92901
- timestream: Optional["timeseries_archetype_api_TimestreamLocatorTemplate"] = None,
92902
- visual_crossing: Optional["timeseries_archetype_api_VisualCrossingLocatorTemplate"] = None,
92903
- big_query: Optional["timeseries_archetype_api_BigQueryLocatorTemplate"] = None,
92904
- api: Optional["timeseries_archetype_api_ApiLocatorTemplate"] = None,
92905
- type_of_union: Optional[str] = None
92906
- ) -> None:
92907
- if type_of_union is None:
92908
- if (timescale_db is not None) + (influx is not None) + (influx1 is not None) + (nominal is not None) + (timestream is not None) + (visual_crossing is not None) + (big_query is not None) + (api is not None) != 1:
92909
- raise ValueError('a union must contain a single member')
92904
+ _path_params: Dict[str, str] = {
92905
+ }
92910
92906
 
92911
- if timescale_db is not None:
92912
- self._timescale_db = timescale_db
92913
- self._type = 'timescaleDb'
92914
- if influx is not None:
92915
- self._influx = influx
92916
- self._type = 'influx'
92917
- if influx1 is not None:
92918
- self._influx1 = influx1
92919
- self._type = 'influx1'
92920
- if nominal is not None:
92921
- self._nominal = nominal
92922
- self._type = 'nominal'
92923
- if timestream is not None:
92924
- self._timestream = timestream
92925
- self._type = 'timestream'
92926
- if visual_crossing is not None:
92927
- self._visual_crossing = visual_crossing
92928
- self._type = 'visualCrossing'
92929
- if big_query is not None:
92930
- self._big_query = big_query
92931
- self._type = 'bigQuery'
92932
- if api is not None:
92933
- self._api = api
92934
- self._type = 'api'
92907
+ _json: Any = _conjure_encoder.default(create_logical_series)
92935
92908
 
92936
- elif type_of_union == 'timescaleDb':
92937
- if timescale_db is None:
92938
- raise ValueError('a union value must not be None')
92939
- self._timescale_db = timescale_db
92940
- self._type = 'timescaleDb'
92941
- elif type_of_union == 'influx':
92942
- if influx is None:
92943
- raise ValueError('a union value must not be None')
92944
- self._influx = influx
92945
- self._type = 'influx'
92946
- elif type_of_union == 'influx1':
92947
- if influx1 is None:
92948
- raise ValueError('a union value must not be None')
92949
- self._influx1 = influx1
92950
- self._type = 'influx1'
92951
- elif type_of_union == 'nominal':
92952
- if nominal is None:
92953
- raise ValueError('a union value must not be None')
92954
- self._nominal = nominal
92955
- self._type = 'nominal'
92956
- elif type_of_union == 'timestream':
92957
- if timestream is None:
92958
- raise ValueError('a union value must not be None')
92959
- self._timestream = timestream
92960
- self._type = 'timestream'
92961
- elif type_of_union == 'visualCrossing':
92962
- if visual_crossing is None:
92963
- raise ValueError('a union value must not be None')
92964
- self._visual_crossing = visual_crossing
92965
- self._type = 'visualCrossing'
92966
- elif type_of_union == 'bigQuery':
92967
- if big_query is None:
92968
- raise ValueError('a union value must not be None')
92969
- self._big_query = big_query
92970
- self._type = 'bigQuery'
92971
- elif type_of_union == 'api':
92972
- if api is None:
92973
- raise ValueError('a union value must not be None')
92974
- self._api = api
92975
- self._type = 'api'
92909
+ _path = '/timeseries/logical-series/v1/logical-series'
92910
+ _path = _path.format(**_path_params)
92976
92911
 
92977
- @builtins.property
92978
- def timescale_db(self) -> Optional["timeseries_archetype_api_TimescaleDbLocatorTemplate"]:
92979
- return self._timescale_db
92912
+ _response: Response = self._request(
92913
+ 'POST',
92914
+ self._uri + _path,
92915
+ params=_params,
92916
+ headers=_headers,
92917
+ json=_json)
92980
92918
 
92981
- @builtins.property
92982
- def influx(self) -> Optional["timeseries_archetype_api_Influx2LocatorTemplate"]:
92983
- return self._influx
92919
+ _decoder = ConjureDecoder()
92920
+ return _decoder.decode(_response.json(), timeseries_logicalseries_api_LogicalSeries, self._return_none_for_unknown_union_types)
92984
92921
 
92985
- @builtins.property
92986
- def influx1(self) -> Optional["timeseries_archetype_api_Influx1LocatorTemplate"]:
92987
- return self._influx1
92922
+ def batch_create_logical_series(self, auth_header: str, request: "timeseries_logicalseries_api_BatchCreateLogicalSeriesRequest") -> "timeseries_logicalseries_api_BatchCreateLogicalSeriesResponse":
92923
+ """Batch create new logical series.
92924
+ """
92925
+ _conjure_encoder = ConjureEncoder()
92988
92926
 
92989
- @builtins.property
92990
- def nominal(self) -> Optional["timeseries_archetype_api_NominalLocatorTemplate"]:
92991
- return self._nominal
92927
+ _headers: Dict[str, Any] = {
92928
+ 'Accept': 'application/json',
92929
+ 'Content-Type': 'application/json',
92930
+ 'Authorization': auth_header,
92931
+ }
92992
92932
 
92993
- @builtins.property
92994
- def timestream(self) -> Optional["timeseries_archetype_api_TimestreamLocatorTemplate"]:
92995
- return self._timestream
92933
+ _params: Dict[str, Any] = {
92934
+ }
92996
92935
 
92997
- @builtins.property
92998
- def visual_crossing(self) -> Optional["timeseries_archetype_api_VisualCrossingLocatorTemplate"]:
92999
- return self._visual_crossing
92936
+ _path_params: Dict[str, str] = {
92937
+ }
93000
92938
 
93001
- @builtins.property
93002
- def big_query(self) -> Optional["timeseries_archetype_api_BigQueryLocatorTemplate"]:
93003
- return self._big_query
92939
+ _json: Any = _conjure_encoder.default(request)
93004
92940
 
93005
- @builtins.property
93006
- def api(self) -> Optional["timeseries_archetype_api_ApiLocatorTemplate"]:
93007
- return self._api
92941
+ _path = '/timeseries/logical-series/v1/logical-series/batch-create'
92942
+ _path = _path.format(**_path_params)
93008
92943
 
93009
- def accept(self, visitor) -> Any:
93010
- if not isinstance(visitor, timeseries_archetype_api_LocatorTemplateVisitor):
93011
- raise ValueError('{} is not an instance of timeseries_archetype_api_LocatorTemplateVisitor'.format(visitor.__class__.__name__))
93012
- if self._type == 'timescaleDb' and self.timescale_db is not None:
93013
- return visitor._timescale_db(self.timescale_db)
93014
- if self._type == 'influx' and self.influx is not None:
93015
- return visitor._influx(self.influx)
93016
- if self._type == 'influx1' and self.influx1 is not None:
93017
- return visitor._influx1(self.influx1)
93018
- if self._type == 'nominal' and self.nominal is not None:
93019
- return visitor._nominal(self.nominal)
93020
- if self._type == 'timestream' and self.timestream is not None:
93021
- return visitor._timestream(self.timestream)
93022
- if self._type == 'visualCrossing' and self.visual_crossing is not None:
93023
- return visitor._visual_crossing(self.visual_crossing)
93024
- if self._type == 'bigQuery' and self.big_query is not None:
93025
- return visitor._big_query(self.big_query)
93026
- if self._type == 'api' and self.api is not None:
93027
- return visitor._api(self.api)
92944
+ _response: Response = self._request(
92945
+ 'POST',
92946
+ self._uri + _path,
92947
+ params=_params,
92948
+ headers=_headers,
92949
+ json=_json)
93028
92950
 
92951
+ _decoder = ConjureDecoder()
92952
+ return _decoder.decode(_response.json(), timeseries_logicalseries_api_BatchCreateLogicalSeriesResponse, self._return_none_for_unknown_union_types)
93029
92953
 
93030
- timeseries_archetype_api_LocatorTemplate.__name__ = "LocatorTemplate"
93031
- timeseries_archetype_api_LocatorTemplate.__qualname__ = "LocatorTemplate"
93032
- timeseries_archetype_api_LocatorTemplate.__module__ = "nominal_api.timeseries_archetype_api"
92954
+ def batch_update_logical_series(self, auth_header: str, request: "timeseries_logicalseries_api_BatchUpdateLogicalSeriesRequest") -> "timeseries_logicalseries_api_BatchUpdateLogicalSeriesResponse":
92955
+ """Batch update logical series descriptions and units.
92956
+ """
92957
+ _conjure_encoder = ConjureEncoder()
93033
92958
 
92959
+ _headers: Dict[str, Any] = {
92960
+ 'Accept': 'application/json',
92961
+ 'Content-Type': 'application/json',
92962
+ 'Authorization': auth_header,
92963
+ }
93034
92964
 
93035
- class timeseries_archetype_api_LocatorTemplateVisitor:
92965
+ _params: Dict[str, Any] = {
92966
+ }
93036
92967
 
93037
- @abstractmethod
93038
- def _timescale_db(self, timescale_db: "timeseries_archetype_api_TimescaleDbLocatorTemplate") -> Any:
93039
- pass
92968
+ _path_params: Dict[str, str] = {
92969
+ }
93040
92970
 
93041
- @abstractmethod
93042
- def _influx(self, influx: "timeseries_archetype_api_Influx2LocatorTemplate") -> Any:
93043
- pass
92971
+ _json: Any = _conjure_encoder.default(request)
93044
92972
 
93045
- @abstractmethod
93046
- def _influx1(self, influx1: "timeseries_archetype_api_Influx1LocatorTemplate") -> Any:
93047
- pass
92973
+ _path = '/timeseries/logical-series/v1/logical-series/batch-update'
92974
+ _path = _path.format(**_path_params)
93048
92975
 
93049
- @abstractmethod
93050
- def _nominal(self, nominal: "timeseries_archetype_api_NominalLocatorTemplate") -> Any:
93051
- pass
92976
+ _response: Response = self._request(
92977
+ 'POST',
92978
+ self._uri + _path,
92979
+ params=_params,
92980
+ headers=_headers,
92981
+ json=_json)
93052
92982
 
93053
- @abstractmethod
93054
- def _timestream(self, timestream: "timeseries_archetype_api_TimestreamLocatorTemplate") -> Any:
93055
- pass
92983
+ _decoder = ConjureDecoder()
92984
+ return _decoder.decode(_response.json(), timeseries_logicalseries_api_BatchUpdateLogicalSeriesResponse, self._return_none_for_unknown_union_types)
93056
92985
 
93057
- @abstractmethod
93058
- def _visual_crossing(self, visual_crossing: "timeseries_archetype_api_VisualCrossingLocatorTemplate") -> Any:
93059
- pass
92986
+ def get_logical_series(self, auth_header: str, rid: str) -> "timeseries_logicalseries_api_LogicalSeries":
92987
+ """Get a logical series by logical series rid.
92988
+ """
92989
+ _conjure_encoder = ConjureEncoder()
93060
92990
 
93061
- @abstractmethod
93062
- def _big_query(self, big_query: "timeseries_archetype_api_BigQueryLocatorTemplate") -> Any:
93063
- pass
92991
+ _headers: Dict[str, Any] = {
92992
+ 'Accept': 'application/json',
92993
+ 'Authorization': auth_header,
92994
+ }
93064
92995
 
93065
- @abstractmethod
93066
- def _api(self, api: "timeseries_archetype_api_ApiLocatorTemplate") -> Any:
93067
- pass
92996
+ _params: Dict[str, Any] = {
92997
+ }
92998
+
92999
+ _path_params: Dict[str, str] = {
93000
+ 'rid': quote(str(_conjure_encoder.default(rid)), safe=''),
93001
+ }
93002
+
93003
+ _json: Any = None
93068
93004
 
93005
+ _path = '/timeseries/logical-series/v1/logical-series/{rid}'
93006
+ _path = _path.format(**_path_params)
93069
93007
 
93070
- timeseries_archetype_api_LocatorTemplateVisitor.__name__ = "LocatorTemplateVisitor"
93071
- timeseries_archetype_api_LocatorTemplateVisitor.__qualname__ = "LocatorTemplateVisitor"
93072
- timeseries_archetype_api_LocatorTemplateVisitor.__module__ = "nominal_api.timeseries_archetype_api"
93008
+ _response: Response = self._request(
93009
+ 'GET',
93010
+ self._uri + _path,
93011
+ params=_params,
93012
+ headers=_headers,
93013
+ json=_json)
93073
93014
 
93015
+ _decoder = ConjureDecoder()
93016
+ return _decoder.decode(_response.json(), timeseries_logicalseries_api_LogicalSeries, self._return_none_for_unknown_union_types)
93074
93017
 
93075
- class timeseries_archetype_api_NominalLocatorTemplate(ConjureBeanType):
93018
+ def resolve_batch(self, auth_header: str, request: "timeseries_logicalseries_api_BatchResolveSeriesRequest") -> "timeseries_logicalseries_api_BatchResolveSeriesResponse":
93019
+ """Resolves groups of channels, datasources and tags into logical series rids. An error response is provided
93020
+ if the channel + datasource + tag cannot be resolved into a logical series rid.
93021
+ """
93022
+ _conjure_encoder = ConjureEncoder()
93076
93023
 
93077
- @builtins.classmethod
93078
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93079
- return {
93080
- 'channel': ConjureFieldDefinition('channel', api_Channel),
93081
- 'type': ConjureFieldDefinition('type', storage_series_api_NominalDataType)
93024
+ _headers: Dict[str, Any] = {
93025
+ 'Accept': 'application/json',
93026
+ 'Content-Type': 'application/json',
93027
+ 'Authorization': auth_header,
93082
93028
  }
93083
93029
 
93084
- __slots__: List[str] = ['_channel', '_type']
93030
+ _params: Dict[str, Any] = {
93031
+ }
93085
93032
 
93086
- def __init__(self, channel: str, type: "storage_series_api_NominalDataType") -> None:
93087
- self._channel = channel
93088
- self._type = type
93033
+ _path_params: Dict[str, str] = {
93034
+ }
93089
93035
 
93090
- @builtins.property
93091
- def channel(self) -> str:
93092
- return self._channel
93036
+ _json: Any = _conjure_encoder.default(request)
93093
93037
 
93094
- @builtins.property
93095
- def type(self) -> "storage_series_api_NominalDataType":
93096
- return self._type
93038
+ _path = '/timeseries/logical-series/v1/resolve'
93039
+ _path = _path.format(**_path_params)
93040
+
93041
+ _response: Response = self._request(
93042
+ 'POST',
93043
+ self._uri + _path,
93044
+ params=_params,
93045
+ headers=_headers,
93046
+ json=_json)
93047
+
93048
+ _decoder = ConjureDecoder()
93049
+ return _decoder.decode(_response.json(), timeseries_logicalseries_api_BatchResolveSeriesResponse, self._return_none_for_unknown_union_types)
93097
93050
 
93098
93051
 
93099
- timeseries_archetype_api_NominalLocatorTemplate.__name__ = "NominalLocatorTemplate"
93100
- timeseries_archetype_api_NominalLocatorTemplate.__qualname__ = "NominalLocatorTemplate"
93101
- timeseries_archetype_api_NominalLocatorTemplate.__module__ = "nominal_api.timeseries_archetype_api"
93052
+ timeseries_logicalseries_LogicalSeriesService.__name__ = "LogicalSeriesService"
93053
+ timeseries_logicalseries_LogicalSeriesService.__qualname__ = "LogicalSeriesService"
93054
+ timeseries_logicalseries_LogicalSeriesService.__module__ = "nominal_api.timeseries_logicalseries"
93102
93055
 
93103
93056
 
93104
- class timeseries_archetype_api_SeriesArchetype(ConjureBeanType):
93057
+ class timeseries_logicalseries_api_ApiLocator(ConjureBeanType):
93105
93058
 
93106
93059
  @builtins.classmethod
93107
93060
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93108
93061
  return {
93109
- 'rid': ConjureFieldDefinition('rid', api_SeriesArchetypeRid),
93110
93062
  'channel': ConjureFieldDefinition('channel', api_Channel),
93111
- 'data_source_rid': ConjureFieldDefinition('dataSourceRid', api_rids_DataSourceRid),
93112
- 'locator': ConjureFieldDefinition('locator', timeseries_archetype_api_LocatorTemplate),
93113
- 'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[api_Unit]),
93114
- 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
93115
93063
  'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue]),
93116
- 'series_data_type': ConjureFieldDefinition('seriesDataType', OptionalTypeWrapper[api_SeriesDataType])
93064
+ 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_ApiType)
93117
93065
  }
93118
93066
 
93119
- __slots__: List[str] = ['_rid', '_channel', '_data_source_rid', '_locator', '_unit', '_description', '_tags', '_series_data_type']
93067
+ __slots__: List[str] = ['_channel', '_tags', '_type']
93120
93068
 
93121
- def __init__(self, channel: str, data_source_rid: str, locator: "timeseries_archetype_api_LocatorTemplate", rid: str, tags: Dict[str, str], description: Optional[str] = None, series_data_type: Optional["api_SeriesDataType"] = None, unit: Optional[str] = None) -> None:
93122
- self._rid = rid
93069
+ def __init__(self, channel: str, tags: Dict[str, str], type: "timeseries_logicalseries_api_ApiType") -> None:
93123
93070
  self._channel = channel
93124
- self._data_source_rid = data_source_rid
93125
- self._locator = locator
93126
- self._unit = unit
93127
- self._description = description
93128
93071
  self._tags = tags
93129
- self._series_data_type = series_data_type
93130
-
93131
- @builtins.property
93132
- def rid(self) -> str:
93133
- return self._rid
93072
+ self._type = type
93134
93073
 
93135
93074
  @builtins.property
93136
93075
  def channel(self) -> str:
93137
93076
  return self._channel
93138
93077
 
93139
93078
  @builtins.property
93140
- def data_source_rid(self) -> str:
93141
- return self._data_source_rid
93079
+ def tags(self) -> Dict[str, str]:
93080
+ return self._tags
93142
93081
 
93143
93082
  @builtins.property
93144
- def locator(self) -> "timeseries_archetype_api_LocatorTemplate":
93145
- return self._locator
93083
+ def type(self) -> "timeseries_logicalseries_api_ApiType":
93084
+ return self._type
93146
93085
 
93147
- @builtins.property
93148
- def unit(self) -> Optional[str]:
93149
- return self._unit
93150
93086
 
93151
- @builtins.property
93152
- def description(self) -> Optional[str]:
93153
- return self._description
93087
+ timeseries_logicalseries_api_ApiLocator.__name__ = "ApiLocator"
93088
+ timeseries_logicalseries_api_ApiLocator.__qualname__ = "ApiLocator"
93089
+ timeseries_logicalseries_api_ApiLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
93154
93090
 
93155
- @builtins.property
93156
- def tags(self) -> Dict[str, str]:
93157
- """Tags specified here will take precedence over tags specified in the RunDatasource, in the case that both specify the same TagName.
93158
- """
93159
- return self._tags
93160
93091
 
93161
- @builtins.property
93162
- def series_data_type(self) -> Optional["api_SeriesDataType"]:
93163
- return self._series_data_type
93092
+ class timeseries_logicalseries_api_ApiType(ConjureEnumType):
93093
+
93094
+ DOUBLE = 'DOUBLE'
93095
+ '''DOUBLE'''
93096
+ STRING = 'STRING'
93097
+ '''STRING'''
93098
+ INT64 = 'INT64'
93099
+ '''INT64'''
93100
+ UNKNOWN = 'UNKNOWN'
93101
+ '''UNKNOWN'''
93102
+
93103
+ def __reduce_ex__(self, proto):
93104
+ return self.__class__, (self.name,)
93164
93105
 
93165
93106
 
93166
- timeseries_archetype_api_SeriesArchetype.__name__ = "SeriesArchetype"
93167
- timeseries_archetype_api_SeriesArchetype.__qualname__ = "SeriesArchetype"
93168
- timeseries_archetype_api_SeriesArchetype.__module__ = "nominal_api.timeseries_archetype_api"
93107
+ timeseries_logicalseries_api_ApiType.__name__ = "ApiType"
93108
+ timeseries_logicalseries_api_ApiType.__qualname__ = "ApiType"
93109
+ timeseries_logicalseries_api_ApiType.__module__ = "nominal_api.timeseries_logicalseries_api"
93169
93110
 
93170
93111
 
93171
- class timeseries_archetype_api_TimescaleDbLocatorTemplate(ConjureBeanType):
93112
+ class timeseries_logicalseries_api_BatchCreateLogicalSeriesRequest(ConjureBeanType):
93172
93113
 
93173
93114
  @builtins.classmethod
93174
93115
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93175
93116
  return {
93176
- 'table': ConjureFieldDefinition('table', timeseries_logicalseries_api_TableName),
93177
- 'schema': ConjureFieldDefinition('schema', timeseries_logicalseries_api_SchemaName),
93178
- 'column': ConjureFieldDefinition('column', timeseries_logicalseries_api_ColumnName),
93179
- 'time_column': ConjureFieldDefinition('timeColumn', timeseries_logicalseries_api_ColumnName),
93180
- 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_TimescaleType)
93117
+ 'requests': ConjureFieldDefinition('requests', List[timeseries_logicalseries_api_CreateLogicalSeries])
93181
93118
  }
93182
93119
 
93183
- __slots__: List[str] = ['_table', '_schema', '_column', '_time_column', '_type']
93120
+ __slots__: List[str] = ['_requests']
93184
93121
 
93185
- def __init__(self, column: str, schema: str, table: str, time_column: str, type: "timeseries_logicalseries_api_TimescaleType") -> None:
93186
- self._table = table
93187
- self._schema = schema
93188
- self._column = column
93189
- self._time_column = time_column
93190
- self._type = type
93122
+ def __init__(self, requests: List["timeseries_logicalseries_api_CreateLogicalSeries"]) -> None:
93123
+ self._requests = requests
93191
93124
 
93192
93125
  @builtins.property
93193
- def table(self) -> str:
93194
- return self._table
93126
+ def requests(self) -> List["timeseries_logicalseries_api_CreateLogicalSeries"]:
93127
+ return self._requests
93195
93128
 
93196
- @builtins.property
93197
- def schema(self) -> str:
93198
- return self._schema
93199
93129
 
93200
- @builtins.property
93201
- def column(self) -> str:
93202
- return self._column
93130
+ timeseries_logicalseries_api_BatchCreateLogicalSeriesRequest.__name__ = "BatchCreateLogicalSeriesRequest"
93131
+ timeseries_logicalseries_api_BatchCreateLogicalSeriesRequest.__qualname__ = "BatchCreateLogicalSeriesRequest"
93132
+ timeseries_logicalseries_api_BatchCreateLogicalSeriesRequest.__module__ = "nominal_api.timeseries_logicalseries_api"
93203
93133
 
93204
- @builtins.property
93205
- def time_column(self) -> str:
93206
- return self._time_column
93134
+
93135
+ class timeseries_logicalseries_api_BatchCreateLogicalSeriesResponse(ConjureBeanType):
93136
+
93137
+ @builtins.classmethod
93138
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93139
+ return {
93140
+ 'responses': ConjureFieldDefinition('responses', List[timeseries_logicalseries_api_LogicalSeries])
93141
+ }
93142
+
93143
+ __slots__: List[str] = ['_responses']
93144
+
93145
+ def __init__(self, responses: List["timeseries_logicalseries_api_LogicalSeries"]) -> None:
93146
+ self._responses = responses
93207
93147
 
93208
93148
  @builtins.property
93209
- def type(self) -> "timeseries_logicalseries_api_TimescaleType":
93210
- return self._type
93149
+ def responses(self) -> List["timeseries_logicalseries_api_LogicalSeries"]:
93150
+ return self._responses
93211
93151
 
93212
93152
 
93213
- timeseries_archetype_api_TimescaleDbLocatorTemplate.__name__ = "TimescaleDbLocatorTemplate"
93214
- timeseries_archetype_api_TimescaleDbLocatorTemplate.__qualname__ = "TimescaleDbLocatorTemplate"
93215
- timeseries_archetype_api_TimescaleDbLocatorTemplate.__module__ = "nominal_api.timeseries_archetype_api"
93153
+ timeseries_logicalseries_api_BatchCreateLogicalSeriesResponse.__name__ = "BatchCreateLogicalSeriesResponse"
93154
+ timeseries_logicalseries_api_BatchCreateLogicalSeriesResponse.__qualname__ = "BatchCreateLogicalSeriesResponse"
93155
+ timeseries_logicalseries_api_BatchCreateLogicalSeriesResponse.__module__ = "nominal_api.timeseries_logicalseries_api"
93216
93156
 
93217
93157
 
93218
- class timeseries_archetype_api_TimestreamLocatorTemplate(ConjureBeanType):
93158
+ class timeseries_logicalseries_api_BatchResolveSeriesRequest(ConjureBeanType):
93219
93159
 
93220
93160
  @builtins.classmethod
93221
93161
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93222
93162
  return {
93223
- 'table': ConjureFieldDefinition('table', timeseries_logicalseries_api_TableName),
93224
- 'measure': ConjureFieldDefinition('measure', timeseries_logicalseries_api_MeasureName),
93225
- 'attribute': ConjureFieldDefinition('attribute', OptionalTypeWrapper[timeseries_logicalseries_api_AttributeName]),
93226
- 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_TimestreamType)
93163
+ 'requests': ConjureFieldDefinition('requests', List[timeseries_logicalseries_api_ResolveSeriesRequest])
93227
93164
  }
93228
93165
 
93229
- __slots__: List[str] = ['_table', '_measure', '_attribute', '_type']
93166
+ __slots__: List[str] = ['_requests']
93230
93167
 
93231
- def __init__(self, measure: str, table: str, type: "timeseries_logicalseries_api_TimestreamType", attribute: Optional[str] = None) -> None:
93232
- self._table = table
93233
- self._measure = measure
93234
- self._attribute = attribute
93235
- self._type = type
93168
+ def __init__(self, requests: List["timeseries_logicalseries_api_ResolveSeriesRequest"]) -> None:
93169
+ self._requests = requests
93236
93170
 
93237
93171
  @builtins.property
93238
- def table(self) -> str:
93239
- return self._table
93172
+ def requests(self) -> List["timeseries_logicalseries_api_ResolveSeriesRequest"]:
93173
+ return self._requests
93240
93174
 
93241
- @builtins.property
93242
- def measure(self) -> str:
93243
- return self._measure
93244
93175
 
93245
- @builtins.property
93246
- def attribute(self) -> Optional[str]:
93247
- return self._attribute
93176
+ timeseries_logicalseries_api_BatchResolveSeriesRequest.__name__ = "BatchResolveSeriesRequest"
93177
+ timeseries_logicalseries_api_BatchResolveSeriesRequest.__qualname__ = "BatchResolveSeriesRequest"
93178
+ timeseries_logicalseries_api_BatchResolveSeriesRequest.__module__ = "nominal_api.timeseries_logicalseries_api"
93179
+
93180
+
93181
+ class timeseries_logicalseries_api_BatchResolveSeriesResponse(ConjureBeanType):
93182
+
93183
+ @builtins.classmethod
93184
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93185
+ return {
93186
+ 'series': ConjureFieldDefinition('series', List[timeseries_logicalseries_api_ResolveSeriesResponse])
93187
+ }
93188
+
93189
+ __slots__: List[str] = ['_series']
93190
+
93191
+ def __init__(self, series: List["timeseries_logicalseries_api_ResolveSeriesResponse"]) -> None:
93192
+ self._series = series
93248
93193
 
93249
93194
  @builtins.property
93250
- def type(self) -> "timeseries_logicalseries_api_TimestreamType":
93251
- return self._type
93195
+ def series(self) -> List["timeseries_logicalseries_api_ResolveSeriesResponse"]:
93196
+ return self._series
93252
93197
 
93253
93198
 
93254
- timeseries_archetype_api_TimestreamLocatorTemplate.__name__ = "TimestreamLocatorTemplate"
93255
- timeseries_archetype_api_TimestreamLocatorTemplate.__qualname__ = "TimestreamLocatorTemplate"
93256
- timeseries_archetype_api_TimestreamLocatorTemplate.__module__ = "nominal_api.timeseries_archetype_api"
93199
+ timeseries_logicalseries_api_BatchResolveSeriesResponse.__name__ = "BatchResolveSeriesResponse"
93200
+ timeseries_logicalseries_api_BatchResolveSeriesResponse.__qualname__ = "BatchResolveSeriesResponse"
93201
+ timeseries_logicalseries_api_BatchResolveSeriesResponse.__module__ = "nominal_api.timeseries_logicalseries_api"
93257
93202
 
93258
93203
 
93259
- class timeseries_archetype_api_UpdateSeriesArchetypeMetadataRequest(ConjureBeanType):
93260
- """If fields are present, will override existing values.
93261
- """
93204
+ class timeseries_logicalseries_api_BatchUpdateLogicalSeriesRequest(ConjureBeanType):
93262
93205
 
93263
93206
  @builtins.classmethod
93264
93207
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93265
93208
  return {
93266
- 'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[api_Unit]),
93267
- 'unit_update': ConjureFieldDefinition('unitUpdate', OptionalTypeWrapper[timeseries_logicalseries_api_UnitUpdate]),
93268
- 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str])
93209
+ 'requests': ConjureFieldDefinition('requests', List[timeseries_logicalseries_api_UpdateLogicalSeries])
93269
93210
  }
93270
93211
 
93271
- __slots__: List[str] = ['_unit', '_unit_update', '_description']
93212
+ __slots__: List[str] = ['_requests']
93272
93213
 
93273
- def __init__(self, description: Optional[str] = None, unit: Optional[str] = None, unit_update: Optional["timeseries_logicalseries_api_UnitUpdate"] = None) -> None:
93274
- self._unit = unit
93275
- self._unit_update = unit_update
93276
- self._description = description
93214
+ def __init__(self, requests: List["timeseries_logicalseries_api_UpdateLogicalSeries"]) -> None:
93215
+ self._requests = requests
93277
93216
 
93278
93217
  @builtins.property
93279
- def unit(self) -> Optional[str]:
93280
- return self._unit
93218
+ def requests(self) -> List["timeseries_logicalseries_api_UpdateLogicalSeries"]:
93219
+ return self._requests
93281
93220
 
93282
- @builtins.property
93283
- def unit_update(self) -> Optional["timeseries_logicalseries_api_UnitUpdate"]:
93284
- return self._unit_update
93221
+
93222
+ timeseries_logicalseries_api_BatchUpdateLogicalSeriesRequest.__name__ = "BatchUpdateLogicalSeriesRequest"
93223
+ timeseries_logicalseries_api_BatchUpdateLogicalSeriesRequest.__qualname__ = "BatchUpdateLogicalSeriesRequest"
93224
+ timeseries_logicalseries_api_BatchUpdateLogicalSeriesRequest.__module__ = "nominal_api.timeseries_logicalseries_api"
93225
+
93226
+
93227
+ class timeseries_logicalseries_api_BatchUpdateLogicalSeriesResponse(ConjureBeanType):
93228
+
93229
+ @builtins.classmethod
93230
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93231
+ return {
93232
+ 'responses': ConjureFieldDefinition('responses', List[timeseries_logicalseries_api_LogicalSeries])
93233
+ }
93234
+
93235
+ __slots__: List[str] = ['_responses']
93236
+
93237
+ def __init__(self, responses: List["timeseries_logicalseries_api_LogicalSeries"]) -> None:
93238
+ self._responses = responses
93285
93239
 
93286
93240
  @builtins.property
93287
- def description(self) -> Optional[str]:
93288
- return self._description
93241
+ def responses(self) -> List["timeseries_logicalseries_api_LogicalSeries"]:
93242
+ return self._responses
93289
93243
 
93290
93244
 
93291
- timeseries_archetype_api_UpdateSeriesArchetypeMetadataRequest.__name__ = "UpdateSeriesArchetypeMetadataRequest"
93292
- timeseries_archetype_api_UpdateSeriesArchetypeMetadataRequest.__qualname__ = "UpdateSeriesArchetypeMetadataRequest"
93293
- timeseries_archetype_api_UpdateSeriesArchetypeMetadataRequest.__module__ = "nominal_api.timeseries_archetype_api"
93245
+ timeseries_logicalseries_api_BatchUpdateLogicalSeriesResponse.__name__ = "BatchUpdateLogicalSeriesResponse"
93246
+ timeseries_logicalseries_api_BatchUpdateLogicalSeriesResponse.__qualname__ = "BatchUpdateLogicalSeriesResponse"
93247
+ timeseries_logicalseries_api_BatchUpdateLogicalSeriesResponse.__module__ = "nominal_api.timeseries_logicalseries_api"
93294
93248
 
93295
93249
 
93296
- class timeseries_archetype_api_VisualCrossingLocatorTemplate(ConjureBeanType):
93250
+ class timeseries_logicalseries_api_BigQueryLocator(ConjureBeanType):
93297
93251
 
93298
93252
  @builtins.classmethod
93299
93253
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93300
93254
  return {
93301
- 'field': ConjureFieldDefinition('field', timeseries_logicalseries_api_FieldName),
93302
- 'endpoint': ConjureFieldDefinition('endpoint', OptionalTypeWrapper[timeseries_logicalseries_api_VisualCrossingEndpointUri]),
93303
- 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_VisualCrossingType)
93255
+ 'value_column': ConjureFieldDefinition('valueColumn', timeseries_logicalseries_api_ColumnName),
93256
+ 'time_column': ConjureFieldDefinition('timeColumn', timeseries_logicalseries_api_ColumnName),
93257
+ 'tag_values': ConjureFieldDefinition('tagValues', Dict[api_TagName, api_TagValue]),
93258
+ 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_BigQueryType)
93304
93259
  }
93305
93260
 
93306
- __slots__: List[str] = ['_field', '_endpoint', '_type']
93261
+ __slots__: List[str] = ['_value_column', '_time_column', '_tag_values', '_type']
93307
93262
 
93308
- def __init__(self, field: str, type: "timeseries_logicalseries_api_VisualCrossingType", endpoint: Optional["timeseries_logicalseries_api_VisualCrossingEndpointUri"] = None) -> None:
93309
- self._field = field
93310
- self._endpoint = endpoint
93263
+ def __init__(self, tag_values: Dict[str, str], time_column: str, type: "timeseries_logicalseries_api_BigQueryType", value_column: str) -> None:
93264
+ self._value_column = value_column
93265
+ self._time_column = time_column
93266
+ self._tag_values = tag_values
93311
93267
  self._type = type
93312
93268
 
93313
93269
  @builtins.property
93314
- def field(self) -> str:
93315
- return self._field
93270
+ def value_column(self) -> str:
93271
+ """The name of the column which has the values for this series
93272
+ """
93273
+ return self._value_column
93316
93274
 
93317
93275
  @builtins.property
93318
- def endpoint(self) -> Optional["timeseries_logicalseries_api_VisualCrossingEndpointUri"]:
93319
- """Defaults to HISTORY.
93276
+ def time_column(self) -> str:
93277
+ """The name of the column which has the timestamps for this series
93320
93278
  """
93321
- return self._endpoint
93279
+ return self._time_column
93322
93280
 
93323
93281
  @builtins.property
93324
- def type(self) -> "timeseries_logicalseries_api_VisualCrossingType":
93325
- return self._type
93326
-
93327
-
93328
- timeseries_archetype_api_VisualCrossingLocatorTemplate.__name__ = "VisualCrossingLocatorTemplate"
93329
- timeseries_archetype_api_VisualCrossingLocatorTemplate.__qualname__ = "VisualCrossingLocatorTemplate"
93330
- timeseries_archetype_api_VisualCrossingLocatorTemplate.__module__ = "nominal_api.timeseries_archetype_api"
93282
+ def tag_values(self) -> Dict[str, str]:
93283
+ """The mapping of columns to column values to filter on
93284
+ """
93285
+ return self._tag_values
93331
93286
 
93287
+ @builtins.property
93288
+ def type(self) -> "timeseries_logicalseries_api_BigQueryType":
93289
+ return self._type
93332
93290
 
93333
- class timeseries_channelmetadata_ChannelMetadataService(Service):
93334
- """Endpoints for retrieving and updating channel metadata.
93335
- """
93336
93291
 
93337
- def get_channel_metadata(self, auth_header: str, request: "timeseries_channelmetadata_api_GetChannelMetadataRequest") -> "timeseries_channelmetadata_api_ChannelMetadata":
93338
- """Get the metadata for a channel.
93339
- """
93340
- _conjure_encoder = ConjureEncoder()
93292
+ timeseries_logicalseries_api_BigQueryLocator.__name__ = "BigQueryLocator"
93293
+ timeseries_logicalseries_api_BigQueryLocator.__qualname__ = "BigQueryLocator"
93294
+ timeseries_logicalseries_api_BigQueryLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
93341
93295
 
93342
- _headers: Dict[str, Any] = {
93343
- 'Accept': 'application/json',
93344
- 'Content-Type': 'application/json',
93345
- 'Authorization': auth_header,
93346
- }
93347
93296
 
93348
- _params: Dict[str, Any] = {
93349
- }
93297
+ class timeseries_logicalseries_api_BigQueryType(ConjureEnumType):
93350
93298
 
93351
- _path_params: Dict[str, str] = {
93352
- }
93299
+ DOUBLE = 'DOUBLE'
93300
+ '''DOUBLE'''
93301
+ STRING = 'STRING'
93302
+ '''STRING'''
93303
+ UNKNOWN = 'UNKNOWN'
93304
+ '''UNKNOWN'''
93353
93305
 
93354
- _json: Any = _conjure_encoder.default(request)
93306
+ def __reduce_ex__(self, proto):
93307
+ return self.__class__, (self.name,)
93355
93308
 
93356
- _path = '/timeseries/channel-metadata/v1/channel-metadata/get'
93357
- _path = _path.format(**_path_params)
93358
93309
 
93359
- _response: Response = self._request(
93360
- 'POST',
93361
- self._uri + _path,
93362
- params=_params,
93363
- headers=_headers,
93364
- json=_json)
93310
+ timeseries_logicalseries_api_BigQueryType.__name__ = "BigQueryType"
93311
+ timeseries_logicalseries_api_BigQueryType.__qualname__ = "BigQueryType"
93312
+ timeseries_logicalseries_api_BigQueryType.__module__ = "nominal_api.timeseries_logicalseries_api"
93365
93313
 
93366
- _decoder = ConjureDecoder()
93367
- return _decoder.decode(_response.json(), timeseries_channelmetadata_api_ChannelMetadata, self._return_none_for_unknown_union_types)
93368
93314
 
93369
- def batch_get_channel_metadata(self, auth_header: str, request: "timeseries_channelmetadata_api_BatchGetChannelMetadataRequest") -> "timeseries_channelmetadata_api_BatchGetChannelMetadataResponse":
93370
- """Batch get the metadata for multiple channels. If some channels cannot be found or authorized,
93371
- they will be omitted from the response.
93372
- """
93373
- _conjure_encoder = ConjureEncoder()
93315
+ class timeseries_logicalseries_api_Context(ConjureBeanType):
93374
93316
 
93375
- _headers: Dict[str, Any] = {
93376
- 'Accept': 'application/json',
93377
- 'Content-Type': 'application/json',
93378
- 'Authorization': auth_header,
93317
+ @builtins.classmethod
93318
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93319
+ return {
93320
+ 'properties': ConjureFieldDefinition('properties', Dict[str, timeseries_logicalseries_api_ContextProperty])
93379
93321
  }
93380
93322
 
93381
- _params: Dict[str, Any] = {
93382
- }
93323
+ __slots__: List[str] = ['_properties']
93383
93324
 
93384
- _path_params: Dict[str, str] = {
93385
- }
93325
+ def __init__(self, properties: Dict[str, "timeseries_logicalseries_api_ContextProperty"]) -> None:
93326
+ self._properties = properties
93386
93327
 
93387
- _json: Any = _conjure_encoder.default(request)
93328
+ @builtins.property
93329
+ def properties(self) -> Dict[str, "timeseries_logicalseries_api_ContextProperty"]:
93330
+ return self._properties
93388
93331
 
93389
- _path = '/timeseries/channel-metadata/v1/channel-metadata/batch-get'
93390
- _path = _path.format(**_path_params)
93391
93332
 
93392
- _response: Response = self._request(
93393
- 'POST',
93394
- self._uri + _path,
93395
- params=_params,
93396
- headers=_headers,
93397
- json=_json)
93333
+ timeseries_logicalseries_api_Context.__name__ = "Context"
93334
+ timeseries_logicalseries_api_Context.__qualname__ = "Context"
93335
+ timeseries_logicalseries_api_Context.__module__ = "nominal_api.timeseries_logicalseries_api"
93398
93336
 
93399
- _decoder = ConjureDecoder()
93400
- return _decoder.decode(_response.json(), timeseries_channelmetadata_api_BatchGetChannelMetadataResponse, self._return_none_for_unknown_union_types)
93401
93337
 
93402
- def update_channel_metadata(self, auth_header: str, request: "timeseries_channelmetadata_api_UpdateChannelMetadataRequest") -> "timeseries_channelmetadata_api_ChannelMetadata":
93403
- """Update the metadata for a channel.
93404
- """
93405
- _conjure_encoder = ConjureEncoder()
93338
+ class timeseries_logicalseries_api_ContextProperty(ConjureUnionType):
93339
+ _value: Optional[str] = None
93406
93340
 
93407
- _headers: Dict[str, Any] = {
93408
- 'Accept': 'application/json',
93409
- 'Content-Type': 'application/json',
93410
- 'Authorization': auth_header,
93341
+ @builtins.classmethod
93342
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
93343
+ return {
93344
+ 'value': ConjureFieldDefinition('value', str)
93411
93345
  }
93412
93346
 
93413
- _params: Dict[str, Any] = {
93414
- }
93347
+ def __init__(
93348
+ self,
93349
+ value: Optional[str] = None,
93350
+ type_of_union: Optional[str] = None
93351
+ ) -> None:
93352
+ if type_of_union is None:
93353
+ if (value is not None) != 1:
93354
+ raise ValueError('a union must contain a single member')
93415
93355
 
93416
- _path_params: Dict[str, str] = {
93417
- }
93356
+ if value is not None:
93357
+ self._value = value
93358
+ self._type = 'value'
93418
93359
 
93419
- _json: Any = _conjure_encoder.default(request)
93360
+ elif type_of_union == 'value':
93361
+ if value is None:
93362
+ raise ValueError('a union value must not be None')
93363
+ self._value = value
93364
+ self._type = 'value'
93420
93365
 
93421
- _path = '/timeseries/channel-metadata/v1/channel-metadata/update'
93422
- _path = _path.format(**_path_params)
93366
+ @builtins.property
93367
+ def value(self) -> Optional[str]:
93368
+ return self._value
93423
93369
 
93424
- _response: Response = self._request(
93425
- 'POST',
93426
- self._uri + _path,
93427
- params=_params,
93428
- headers=_headers,
93429
- json=_json)
93370
+ def accept(self, visitor) -> Any:
93371
+ if not isinstance(visitor, timeseries_logicalseries_api_ContextPropertyVisitor):
93372
+ raise ValueError('{} is not an instance of timeseries_logicalseries_api_ContextPropertyVisitor'.format(visitor.__class__.__name__))
93373
+ if self._type == 'value' and self.value is not None:
93374
+ return visitor._value(self.value)
93430
93375
 
93431
- _decoder = ConjureDecoder()
93432
- return _decoder.decode(_response.json(), timeseries_channelmetadata_api_ChannelMetadata, self._return_none_for_unknown_union_types)
93433
93376
 
93434
- def batch_update_channel_metadata(self, auth_header: str, request: "timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest") -> "timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse":
93435
- """Batch update the metadata for multiple channels. If some channels cannot be found or authorized,
93436
- no metadata will be updated for any of the channels in the request.
93437
- """
93438
- _conjure_encoder = ConjureEncoder()
93377
+ timeseries_logicalseries_api_ContextProperty.__name__ = "ContextProperty"
93378
+ timeseries_logicalseries_api_ContextProperty.__qualname__ = "ContextProperty"
93379
+ timeseries_logicalseries_api_ContextProperty.__module__ = "nominal_api.timeseries_logicalseries_api"
93439
93380
 
93440
- _headers: Dict[str, Any] = {
93441
- 'Accept': 'application/json',
93442
- 'Content-Type': 'application/json',
93443
- 'Authorization': auth_header,
93444
- }
93445
93381
 
93446
- _params: Dict[str, Any] = {
93447
- }
93382
+ class timeseries_logicalseries_api_ContextPropertyVisitor:
93448
93383
 
93449
- _path_params: Dict[str, str] = {
93450
- }
93384
+ @abstractmethod
93385
+ def _value(self, value: str) -> Any:
93386
+ pass
93451
93387
 
93452
- _json: Any = _conjure_encoder.default(request)
93453
93388
 
93454
- _path = '/timeseries/channel-metadata/v1/channel-metadata/batch-update'
93455
- _path = _path.format(**_path_params)
93389
+ timeseries_logicalseries_api_ContextPropertyVisitor.__name__ = "ContextPropertyVisitor"
93390
+ timeseries_logicalseries_api_ContextPropertyVisitor.__qualname__ = "ContextPropertyVisitor"
93391
+ timeseries_logicalseries_api_ContextPropertyVisitor.__module__ = "nominal_api.timeseries_logicalseries_api"
93392
+
93393
+
93394
+ class timeseries_logicalseries_api_CreateLogicalSeries(ConjureBeanType):
93395
+
93396
+ @builtins.classmethod
93397
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93398
+ return {
93399
+ 'channel': ConjureFieldDefinition('channel', api_Channel),
93400
+ 'locator': ConjureFieldDefinition('locator', timeseries_logicalseries_api_Locator),
93401
+ 'id_locator': ConjureFieldDefinition('idLocator', OptionalTypeWrapper[str]),
93402
+ 'data_source_rid': ConjureFieldDefinition('dataSourceRid', api_rids_DataSourceRid),
93403
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
93404
+ 'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[api_Unit]),
93405
+ 'series_data_type': ConjureFieldDefinition('seriesDataType', OptionalTypeWrapper[api_SeriesDataType]),
93406
+ 'granularity': ConjureFieldDefinition('granularity', OptionalTypeWrapper[api_Granularity]),
93407
+ 'series_archetype_rid': ConjureFieldDefinition('seriesArchetypeRid', OptionalTypeWrapper[api_SeriesArchetypeRid])
93408
+ }
93409
+
93410
+ __slots__: List[str] = ['_channel', '_locator', '_id_locator', '_data_source_rid', '_description', '_unit', '_series_data_type', '_granularity', '_series_archetype_rid']
93411
+
93412
+ def __init__(self, channel: str, data_source_rid: str, locator: "timeseries_logicalseries_api_Locator", description: Optional[str] = None, granularity: Optional["api_Granularity"] = None, id_locator: Optional[str] = None, series_archetype_rid: Optional[str] = None, series_data_type: Optional["api_SeriesDataType"] = None, unit: Optional[str] = None) -> None:
93413
+ self._channel = channel
93414
+ self._locator = locator
93415
+ self._id_locator = id_locator
93416
+ self._data_source_rid = data_source_rid
93417
+ self._description = description
93418
+ self._unit = unit
93419
+ self._series_data_type = series_data_type
93420
+ self._granularity = granularity
93421
+ self._series_archetype_rid = series_archetype_rid
93422
+
93423
+ @builtins.property
93424
+ def channel(self) -> str:
93425
+ return self._channel
93426
+
93427
+ @builtins.property
93428
+ def locator(self) -> "timeseries_logicalseries_api_Locator":
93429
+ return self._locator
93430
+
93431
+ @builtins.property
93432
+ def id_locator(self) -> Optional[str]:
93433
+ """If present, will be used as the locator of the LogicalSeriesRid. If a logical series already exists
93434
+ with this id, will throw a CONFLICT.
93435
+ """
93436
+ return self._id_locator
93437
+
93438
+ @builtins.property
93439
+ def data_source_rid(self) -> str:
93440
+ return self._data_source_rid
93441
+
93442
+ @builtins.property
93443
+ def description(self) -> Optional[str]:
93444
+ return self._description
93445
+
93446
+ @builtins.property
93447
+ def unit(self) -> Optional[str]:
93448
+ return self._unit
93449
+
93450
+ @builtins.property
93451
+ def series_data_type(self) -> Optional["api_SeriesDataType"]:
93452
+ return self._series_data_type
93453
+
93454
+ @builtins.property
93455
+ def granularity(self) -> Optional["api_Granularity"]:
93456
+ return self._granularity
93457
+
93458
+ @builtins.property
93459
+ def series_archetype_rid(self) -> Optional[str]:
93460
+ """Deprecated. Do not use.
93461
+ """
93462
+ return self._series_archetype_rid
93463
+
93464
+
93465
+ timeseries_logicalseries_api_CreateLogicalSeries.__name__ = "CreateLogicalSeries"
93466
+ timeseries_logicalseries_api_CreateLogicalSeries.__qualname__ = "CreateLogicalSeries"
93467
+ timeseries_logicalseries_api_CreateLogicalSeries.__module__ = "nominal_api.timeseries_logicalseries_api"
93468
+
93469
+
93470
+ class timeseries_logicalseries_api_Influx1Locator(ConjureBeanType):
93471
+
93472
+ @builtins.classmethod
93473
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93474
+ return {
93475
+ 'database': ConjureFieldDefinition('database', timeseries_logicalseries_api_DatabaseName),
93476
+ 'measurement': ConjureFieldDefinition('measurement', timeseries_logicalseries_api_MeasurementName),
93477
+ 'field': ConjureFieldDefinition('field', timeseries_logicalseries_api_FieldName),
93478
+ 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue]),
93479
+ 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_InfluxType)
93480
+ }
93481
+
93482
+ __slots__: List[str] = ['_database', '_measurement', '_field', '_tags', '_type']
93483
+
93484
+ def __init__(self, database: str, field: str, measurement: str, tags: Dict[str, str], type: "timeseries_logicalseries_api_InfluxType") -> None:
93485
+ self._database = database
93486
+ self._measurement = measurement
93487
+ self._field = field
93488
+ self._tags = tags
93489
+ self._type = type
93490
+
93491
+ @builtins.property
93492
+ def database(self) -> str:
93493
+ return self._database
93494
+
93495
+ @builtins.property
93496
+ def measurement(self) -> str:
93497
+ return self._measurement
93498
+
93499
+ @builtins.property
93500
+ def field(self) -> str:
93501
+ return self._field
93502
+
93503
+ @builtins.property
93504
+ def tags(self) -> Dict[str, str]:
93505
+ return self._tags
93506
+
93507
+ @builtins.property
93508
+ def type(self) -> "timeseries_logicalseries_api_InfluxType":
93509
+ return self._type
93510
+
93511
+
93512
+ timeseries_logicalseries_api_Influx1Locator.__name__ = "Influx1Locator"
93513
+ timeseries_logicalseries_api_Influx1Locator.__qualname__ = "Influx1Locator"
93514
+ timeseries_logicalseries_api_Influx1Locator.__module__ = "nominal_api.timeseries_logicalseries_api"
93515
+
93516
+
93517
+ class timeseries_logicalseries_api_Influx2Locator(ConjureBeanType):
93518
+
93519
+ @builtins.classmethod
93520
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93521
+ return {
93522
+ 'bucket': ConjureFieldDefinition('bucket', timeseries_logicalseries_api_BucketName),
93523
+ 'measurement': ConjureFieldDefinition('measurement', timeseries_logicalseries_api_MeasurementName),
93524
+ 'field': ConjureFieldDefinition('field', timeseries_logicalseries_api_FieldName),
93525
+ 'value_column': ConjureFieldDefinition('valueColumn', OptionalTypeWrapper[str]),
93526
+ 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue]),
93527
+ 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_InfluxType)
93528
+ }
93529
+
93530
+ __slots__: List[str] = ['_bucket', '_measurement', '_field', '_value_column', '_tags', '_type']
93531
+
93532
+ def __init__(self, bucket: str, field: str, measurement: str, tags: Dict[str, str], type: "timeseries_logicalseries_api_InfluxType", value_column: Optional[str] = None) -> None:
93533
+ self._bucket = bucket
93534
+ self._measurement = measurement
93535
+ self._field = field
93536
+ self._value_column = value_column
93537
+ self._tags = tags
93538
+ self._type = type
93539
+
93540
+ @builtins.property
93541
+ def bucket(self) -> str:
93542
+ return self._bucket
93543
+
93544
+ @builtins.property
93545
+ def measurement(self) -> str:
93546
+ return self._measurement
93547
+
93548
+ @builtins.property
93549
+ def field(self) -> str:
93550
+ return self._field
93551
+
93552
+ @builtins.property
93553
+ def value_column(self) -> Optional[str]:
93554
+ """If omitted, defaults to `_value`. Can be used to extract tag values.
93555
+ """
93556
+ return self._value_column
93557
+
93558
+ @builtins.property
93559
+ def tags(self) -> Dict[str, str]:
93560
+ return self._tags
93561
+
93562
+ @builtins.property
93563
+ def type(self) -> "timeseries_logicalseries_api_InfluxType":
93564
+ return self._type
93565
+
93566
+
93567
+ timeseries_logicalseries_api_Influx2Locator.__name__ = "Influx2Locator"
93568
+ timeseries_logicalseries_api_Influx2Locator.__qualname__ = "Influx2Locator"
93569
+ timeseries_logicalseries_api_Influx2Locator.__module__ = "nominal_api.timeseries_logicalseries_api"
93570
+
93571
+
93572
+ class timeseries_logicalseries_api_InfluxType(ConjureEnumType):
93573
+
93574
+ BOOLEAN = 'BOOLEAN'
93575
+ '''BOOLEAN'''
93576
+ NUMERIC = 'NUMERIC'
93577
+ '''NUMERIC'''
93578
+ STRING = 'STRING'
93579
+ '''STRING'''
93580
+ UNKNOWN = 'UNKNOWN'
93581
+ '''UNKNOWN'''
93582
+
93583
+ def __reduce_ex__(self, proto):
93584
+ return self.__class__, (self.name,)
93585
+
93586
+
93587
+ timeseries_logicalseries_api_InfluxType.__name__ = "InfluxType"
93588
+ timeseries_logicalseries_api_InfluxType.__qualname__ = "InfluxType"
93589
+ timeseries_logicalseries_api_InfluxType.__module__ = "nominal_api.timeseries_logicalseries_api"
93590
+
93591
+
93592
+ class timeseries_logicalseries_api_Locator(ConjureUnionType):
93593
+ _timescale_db_locator: Optional["timeseries_logicalseries_api_TimescaleDbLocator"] = None
93594
+ _influx_locator: Optional["timeseries_logicalseries_api_Influx2Locator"] = None
93595
+ _influx1_locator: Optional["timeseries_logicalseries_api_Influx1Locator"] = None
93596
+ _nominal_locator: Optional["timeseries_logicalseries_api_NominalLocator"] = None
93597
+ _timestream_locator: Optional["timeseries_logicalseries_api_TimestreamLocator"] = None
93598
+ _visual_crossing_locator: Optional["timeseries_logicalseries_api_VisualCrossingLocator"] = None
93599
+ _big_query_locator: Optional["timeseries_logicalseries_api_BigQueryLocator"] = None
93600
+ _api_locator: Optional["timeseries_logicalseries_api_ApiLocator"] = None
93601
+
93602
+ @builtins.classmethod
93603
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
93604
+ return {
93605
+ 'timescale_db_locator': ConjureFieldDefinition('timescaleDbLocator', timeseries_logicalseries_api_TimescaleDbLocator),
93606
+ 'influx_locator': ConjureFieldDefinition('influxLocator', timeseries_logicalseries_api_Influx2Locator),
93607
+ 'influx1_locator': ConjureFieldDefinition('influx1Locator', timeseries_logicalseries_api_Influx1Locator),
93608
+ 'nominal_locator': ConjureFieldDefinition('nominalLocator', timeseries_logicalseries_api_NominalLocator),
93609
+ 'timestream_locator': ConjureFieldDefinition('timestreamLocator', timeseries_logicalseries_api_TimestreamLocator),
93610
+ 'visual_crossing_locator': ConjureFieldDefinition('visualCrossingLocator', timeseries_logicalseries_api_VisualCrossingLocator),
93611
+ 'big_query_locator': ConjureFieldDefinition('bigQueryLocator', timeseries_logicalseries_api_BigQueryLocator),
93612
+ 'api_locator': ConjureFieldDefinition('apiLocator', timeseries_logicalseries_api_ApiLocator)
93613
+ }
93614
+
93615
+ def __init__(
93616
+ self,
93617
+ timescale_db_locator: Optional["timeseries_logicalseries_api_TimescaleDbLocator"] = None,
93618
+ influx_locator: Optional["timeseries_logicalseries_api_Influx2Locator"] = None,
93619
+ influx1_locator: Optional["timeseries_logicalseries_api_Influx1Locator"] = None,
93620
+ nominal_locator: Optional["timeseries_logicalseries_api_NominalLocator"] = None,
93621
+ timestream_locator: Optional["timeseries_logicalseries_api_TimestreamLocator"] = None,
93622
+ visual_crossing_locator: Optional["timeseries_logicalseries_api_VisualCrossingLocator"] = None,
93623
+ big_query_locator: Optional["timeseries_logicalseries_api_BigQueryLocator"] = None,
93624
+ api_locator: Optional["timeseries_logicalseries_api_ApiLocator"] = None,
93625
+ type_of_union: Optional[str] = None
93626
+ ) -> None:
93627
+ if type_of_union is None:
93628
+ if (timescale_db_locator is not None) + (influx_locator is not None) + (influx1_locator is not None) + (nominal_locator is not None) + (timestream_locator is not None) + (visual_crossing_locator is not None) + (big_query_locator is not None) + (api_locator is not None) != 1:
93629
+ raise ValueError('a union must contain a single member')
93630
+
93631
+ if timescale_db_locator is not None:
93632
+ self._timescale_db_locator = timescale_db_locator
93633
+ self._type = 'timescaleDbLocator'
93634
+ if influx_locator is not None:
93635
+ self._influx_locator = influx_locator
93636
+ self._type = 'influxLocator'
93637
+ if influx1_locator is not None:
93638
+ self._influx1_locator = influx1_locator
93639
+ self._type = 'influx1Locator'
93640
+ if nominal_locator is not None:
93641
+ self._nominal_locator = nominal_locator
93642
+ self._type = 'nominalLocator'
93643
+ if timestream_locator is not None:
93644
+ self._timestream_locator = timestream_locator
93645
+ self._type = 'timestreamLocator'
93646
+ if visual_crossing_locator is not None:
93647
+ self._visual_crossing_locator = visual_crossing_locator
93648
+ self._type = 'visualCrossingLocator'
93649
+ if big_query_locator is not None:
93650
+ self._big_query_locator = big_query_locator
93651
+ self._type = 'bigQueryLocator'
93652
+ if api_locator is not None:
93653
+ self._api_locator = api_locator
93654
+ self._type = 'apiLocator'
93655
+
93656
+ elif type_of_union == 'timescaleDbLocator':
93657
+ if timescale_db_locator is None:
93658
+ raise ValueError('a union value must not be None')
93659
+ self._timescale_db_locator = timescale_db_locator
93660
+ self._type = 'timescaleDbLocator'
93661
+ elif type_of_union == 'influxLocator':
93662
+ if influx_locator is None:
93663
+ raise ValueError('a union value must not be None')
93664
+ self._influx_locator = influx_locator
93665
+ self._type = 'influxLocator'
93666
+ elif type_of_union == 'influx1Locator':
93667
+ if influx1_locator is None:
93668
+ raise ValueError('a union value must not be None')
93669
+ self._influx1_locator = influx1_locator
93670
+ self._type = 'influx1Locator'
93671
+ elif type_of_union == 'nominalLocator':
93672
+ if nominal_locator is None:
93673
+ raise ValueError('a union value must not be None')
93674
+ self._nominal_locator = nominal_locator
93675
+ self._type = 'nominalLocator'
93676
+ elif type_of_union == 'timestreamLocator':
93677
+ if timestream_locator is None:
93678
+ raise ValueError('a union value must not be None')
93679
+ self._timestream_locator = timestream_locator
93680
+ self._type = 'timestreamLocator'
93681
+ elif type_of_union == 'visualCrossingLocator':
93682
+ if visual_crossing_locator is None:
93683
+ raise ValueError('a union value must not be None')
93684
+ self._visual_crossing_locator = visual_crossing_locator
93685
+ self._type = 'visualCrossingLocator'
93686
+ elif type_of_union == 'bigQueryLocator':
93687
+ if big_query_locator is None:
93688
+ raise ValueError('a union value must not be None')
93689
+ self._big_query_locator = big_query_locator
93690
+ self._type = 'bigQueryLocator'
93691
+ elif type_of_union == 'apiLocator':
93692
+ if api_locator is None:
93693
+ raise ValueError('a union value must not be None')
93694
+ self._api_locator = api_locator
93695
+ self._type = 'apiLocator'
93696
+
93697
+ @builtins.property
93698
+ def timescale_db_locator(self) -> Optional["timeseries_logicalseries_api_TimescaleDbLocator"]:
93699
+ return self._timescale_db_locator
93700
+
93701
+ @builtins.property
93702
+ def influx_locator(self) -> Optional["timeseries_logicalseries_api_Influx2Locator"]:
93703
+ return self._influx_locator
93704
+
93705
+ @builtins.property
93706
+ def influx1_locator(self) -> Optional["timeseries_logicalseries_api_Influx1Locator"]:
93707
+ return self._influx1_locator
93708
+
93709
+ @builtins.property
93710
+ def nominal_locator(self) -> Optional["timeseries_logicalseries_api_NominalLocator"]:
93711
+ return self._nominal_locator
93712
+
93713
+ @builtins.property
93714
+ def timestream_locator(self) -> Optional["timeseries_logicalseries_api_TimestreamLocator"]:
93715
+ return self._timestream_locator
93716
+
93717
+ @builtins.property
93718
+ def visual_crossing_locator(self) -> Optional["timeseries_logicalseries_api_VisualCrossingLocator"]:
93719
+ return self._visual_crossing_locator
93720
+
93721
+ @builtins.property
93722
+ def big_query_locator(self) -> Optional["timeseries_logicalseries_api_BigQueryLocator"]:
93723
+ return self._big_query_locator
93724
+
93725
+ @builtins.property
93726
+ def api_locator(self) -> Optional["timeseries_logicalseries_api_ApiLocator"]:
93727
+ return self._api_locator
93728
+
93729
+ def accept(self, visitor) -> Any:
93730
+ if not isinstance(visitor, timeseries_logicalseries_api_LocatorVisitor):
93731
+ raise ValueError('{} is not an instance of timeseries_logicalseries_api_LocatorVisitor'.format(visitor.__class__.__name__))
93732
+ if self._type == 'timescaleDbLocator' and self.timescale_db_locator is not None:
93733
+ return visitor._timescale_db_locator(self.timescale_db_locator)
93734
+ if self._type == 'influxLocator' and self.influx_locator is not None:
93735
+ return visitor._influx_locator(self.influx_locator)
93736
+ if self._type == 'influx1Locator' and self.influx1_locator is not None:
93737
+ return visitor._influx1_locator(self.influx1_locator)
93738
+ if self._type == 'nominalLocator' and self.nominal_locator is not None:
93739
+ return visitor._nominal_locator(self.nominal_locator)
93740
+ if self._type == 'timestreamLocator' and self.timestream_locator is not None:
93741
+ return visitor._timestream_locator(self.timestream_locator)
93742
+ if self._type == 'visualCrossingLocator' and self.visual_crossing_locator is not None:
93743
+ return visitor._visual_crossing_locator(self.visual_crossing_locator)
93744
+ if self._type == 'bigQueryLocator' and self.big_query_locator is not None:
93745
+ return visitor._big_query_locator(self.big_query_locator)
93746
+ if self._type == 'apiLocator' and self.api_locator is not None:
93747
+ return visitor._api_locator(self.api_locator)
93748
+
93749
+
93750
+ timeseries_logicalseries_api_Locator.__name__ = "Locator"
93751
+ timeseries_logicalseries_api_Locator.__qualname__ = "Locator"
93752
+ timeseries_logicalseries_api_Locator.__module__ = "nominal_api.timeseries_logicalseries_api"
93753
+
93754
+
93755
+ class timeseries_logicalseries_api_LocatorVisitor:
93756
+
93757
+ @abstractmethod
93758
+ def _timescale_db_locator(self, timescale_db_locator: "timeseries_logicalseries_api_TimescaleDbLocator") -> Any:
93759
+ pass
93760
+
93761
+ @abstractmethod
93762
+ def _influx_locator(self, influx_locator: "timeseries_logicalseries_api_Influx2Locator") -> Any:
93763
+ pass
93764
+
93765
+ @abstractmethod
93766
+ def _influx1_locator(self, influx1_locator: "timeseries_logicalseries_api_Influx1Locator") -> Any:
93767
+ pass
93768
+
93769
+ @abstractmethod
93770
+ def _nominal_locator(self, nominal_locator: "timeseries_logicalseries_api_NominalLocator") -> Any:
93771
+ pass
93772
+
93773
+ @abstractmethod
93774
+ def _timestream_locator(self, timestream_locator: "timeseries_logicalseries_api_TimestreamLocator") -> Any:
93775
+ pass
93776
+
93777
+ @abstractmethod
93778
+ def _visual_crossing_locator(self, visual_crossing_locator: "timeseries_logicalseries_api_VisualCrossingLocator") -> Any:
93779
+ pass
93780
+
93781
+ @abstractmethod
93782
+ def _big_query_locator(self, big_query_locator: "timeseries_logicalseries_api_BigQueryLocator") -> Any:
93783
+ pass
93784
+
93785
+ @abstractmethod
93786
+ def _api_locator(self, api_locator: "timeseries_logicalseries_api_ApiLocator") -> Any:
93787
+ pass
93788
+
93789
+
93790
+ timeseries_logicalseries_api_LocatorVisitor.__name__ = "LocatorVisitor"
93791
+ timeseries_logicalseries_api_LocatorVisitor.__qualname__ = "LocatorVisitor"
93792
+ timeseries_logicalseries_api_LocatorVisitor.__module__ = "nominal_api.timeseries_logicalseries_api"
93793
+
93794
+
93795
+ class timeseries_logicalseries_api_LogicalSeries(ConjureBeanType):
93796
+
93797
+ @builtins.classmethod
93798
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93799
+ return {
93800
+ 'rid': ConjureFieldDefinition('rid', api_LogicalSeriesRid),
93801
+ 'data_source_rid': ConjureFieldDefinition('dataSourceRid', api_rids_DataSourceRid),
93802
+ 'locator': ConjureFieldDefinition('locator', timeseries_logicalseries_api_Locator),
93803
+ 'time_locator': ConjureFieldDefinition('timeLocator', OptionalTypeWrapper[timeseries_logicalseries_api_Locator]),
93804
+ 'channel': ConjureFieldDefinition('channel', api_Channel),
93805
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
93806
+ 'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[api_Unit]),
93807
+ 'series_data_type': ConjureFieldDefinition('seriesDataType', OptionalTypeWrapper[api_SeriesDataType]),
93808
+ 'granularity': ConjureFieldDefinition('granularity', OptionalTypeWrapper[api_Granularity])
93809
+ }
93810
+
93811
+ __slots__: List[str] = ['_rid', '_data_source_rid', '_locator', '_time_locator', '_channel', '_description', '_unit', '_series_data_type', '_granularity']
93812
+
93813
+ def __init__(self, channel: str, data_source_rid: str, locator: "timeseries_logicalseries_api_Locator", rid: str, description: Optional[str] = None, granularity: Optional["api_Granularity"] = None, series_data_type: Optional["api_SeriesDataType"] = None, time_locator: Optional["timeseries_logicalseries_api_Locator"] = None, unit: Optional[str] = None) -> None:
93814
+ self._rid = rid
93815
+ self._data_source_rid = data_source_rid
93816
+ self._locator = locator
93817
+ self._time_locator = time_locator
93818
+ self._channel = channel
93819
+ self._description = description
93820
+ self._unit = unit
93821
+ self._series_data_type = series_data_type
93822
+ self._granularity = granularity
93823
+
93824
+ @builtins.property
93825
+ def rid(self) -> str:
93826
+ return self._rid
93827
+
93828
+ @builtins.property
93829
+ def data_source_rid(self) -> str:
93830
+ return self._data_source_rid
93831
+
93832
+ @builtins.property
93833
+ def locator(self) -> "timeseries_logicalseries_api_Locator":
93834
+ return self._locator
93835
+
93836
+ @builtins.property
93837
+ def time_locator(self) -> Optional["timeseries_logicalseries_api_Locator"]:
93838
+ """Only required to be present for legacy CSVs.
93839
+ """
93840
+ return self._time_locator
93841
+
93842
+ @builtins.property
93843
+ def channel(self) -> str:
93844
+ return self._channel
93845
+
93846
+ @builtins.property
93847
+ def description(self) -> Optional[str]:
93848
+ return self._description
93849
+
93850
+ @builtins.property
93851
+ def unit(self) -> Optional[str]:
93852
+ return self._unit
93853
+
93854
+ @builtins.property
93855
+ def series_data_type(self) -> Optional["api_SeriesDataType"]:
93856
+ return self._series_data_type
93857
+
93858
+ @builtins.property
93859
+ def granularity(self) -> Optional["api_Granularity"]:
93860
+ """Time granularity of the series. If omitted, defaults to nanoseconds.
93861
+ """
93862
+ return self._granularity
93863
+
93864
+
93865
+ timeseries_logicalseries_api_LogicalSeries.__name__ = "LogicalSeries"
93866
+ timeseries_logicalseries_api_LogicalSeries.__qualname__ = "LogicalSeries"
93867
+ timeseries_logicalseries_api_LogicalSeries.__module__ = "nominal_api.timeseries_logicalseries_api"
93868
+
93869
+
93870
+ class timeseries_logicalseries_api_NominalLocator(ConjureBeanType):
93871
+
93872
+ @builtins.classmethod
93873
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93874
+ return {
93875
+ 'channel': ConjureFieldDefinition('channel', api_Channel),
93876
+ 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue]),
93877
+ 'type': ConjureFieldDefinition('type', storage_series_api_NominalDataType)
93878
+ }
93879
+
93880
+ __slots__: List[str] = ['_channel', '_tags', '_type']
93881
+
93882
+ def __init__(self, channel: str, tags: Dict[str, str], type: "storage_series_api_NominalDataType") -> None:
93883
+ self._channel = channel
93884
+ self._tags = tags
93885
+ self._type = type
93886
+
93887
+ @builtins.property
93888
+ def channel(self) -> str:
93889
+ return self._channel
93890
+
93891
+ @builtins.property
93892
+ def tags(self) -> Dict[str, str]:
93893
+ return self._tags
93894
+
93895
+ @builtins.property
93896
+ def type(self) -> "storage_series_api_NominalDataType":
93897
+ return self._type
93898
+
93899
+
93900
+ timeseries_logicalseries_api_NominalLocator.__name__ = "NominalLocator"
93901
+ timeseries_logicalseries_api_NominalLocator.__qualname__ = "NominalLocator"
93902
+ timeseries_logicalseries_api_NominalLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
93903
+
93904
+
93905
+ class timeseries_logicalseries_api_ResolveSeriesError(ConjureBeanType):
93906
+
93907
+ @builtins.classmethod
93908
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93909
+ return {
93910
+ 'message': ConjureFieldDefinition('message', str),
93911
+ 'args': ConjureFieldDefinition('args', Dict[str, str])
93912
+ }
93913
+
93914
+ __slots__: List[str] = ['_message', '_args']
93915
+
93916
+ def __init__(self, args: Dict[str, str], message: str) -> None:
93917
+ self._message = message
93918
+ self._args = args
93919
+
93920
+ @builtins.property
93921
+ def message(self) -> str:
93922
+ return self._message
93923
+
93924
+ @builtins.property
93925
+ def args(self) -> Dict[str, str]:
93926
+ return self._args
93927
+
93928
+
93929
+ timeseries_logicalseries_api_ResolveSeriesError.__name__ = "ResolveSeriesError"
93930
+ timeseries_logicalseries_api_ResolveSeriesError.__qualname__ = "ResolveSeriesError"
93931
+ timeseries_logicalseries_api_ResolveSeriesError.__module__ = "nominal_api.timeseries_logicalseries_api"
93932
+
93933
+
93934
+ class timeseries_logicalseries_api_ResolveSeriesRequest(ConjureBeanType):
93935
+
93936
+ @builtins.classmethod
93937
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93938
+ return {
93939
+ 'name': ConjureFieldDefinition('name', api_Channel),
93940
+ 'datasource': ConjureFieldDefinition('datasource', api_rids_DataSourceRid),
93941
+ 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue])
93942
+ }
93943
+
93944
+ __slots__: List[str] = ['_name', '_datasource', '_tags']
93945
+
93946
+ def __init__(self, datasource: str, name: str, tags: Dict[str, str]) -> None:
93947
+ self._name = name
93948
+ self._datasource = datasource
93949
+ self._tags = tags
93950
+
93951
+ @builtins.property
93952
+ def name(self) -> str:
93953
+ return self._name
93954
+
93955
+ @builtins.property
93956
+ def datasource(self) -> str:
93957
+ return self._datasource
93958
+
93959
+ @builtins.property
93960
+ def tags(self) -> Dict[str, str]:
93961
+ return self._tags
93962
+
93963
+
93964
+ timeseries_logicalseries_api_ResolveSeriesRequest.__name__ = "ResolveSeriesRequest"
93965
+ timeseries_logicalseries_api_ResolveSeriesRequest.__qualname__ = "ResolveSeriesRequest"
93966
+ timeseries_logicalseries_api_ResolveSeriesRequest.__module__ = "nominal_api.timeseries_logicalseries_api"
93967
+
93968
+
93969
+ class timeseries_logicalseries_api_ResolveSeriesResponse(ConjureUnionType):
93970
+ _rid: Optional[str] = None
93971
+ _error: Optional["timeseries_logicalseries_api_ResolveSeriesError"] = None
93972
+
93973
+ @builtins.classmethod
93974
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
93975
+ return {
93976
+ 'rid': ConjureFieldDefinition('rid', api_LogicalSeriesRid),
93977
+ 'error': ConjureFieldDefinition('error', timeseries_logicalseries_api_ResolveSeriesError)
93978
+ }
93979
+
93980
+ def __init__(
93981
+ self,
93982
+ rid: Optional[str] = None,
93983
+ error: Optional["timeseries_logicalseries_api_ResolveSeriesError"] = None,
93984
+ type_of_union: Optional[str] = None
93985
+ ) -> None:
93986
+ if type_of_union is None:
93987
+ if (rid is not None) + (error is not None) != 1:
93988
+ raise ValueError('a union must contain a single member')
93989
+
93990
+ if rid is not None:
93991
+ self._rid = rid
93992
+ self._type = 'rid'
93993
+ if error is not None:
93994
+ self._error = error
93995
+ self._type = 'error'
93996
+
93997
+ elif type_of_union == 'rid':
93998
+ if rid is None:
93999
+ raise ValueError('a union value must not be None')
94000
+ self._rid = rid
94001
+ self._type = 'rid'
94002
+ elif type_of_union == 'error':
94003
+ if error is None:
94004
+ raise ValueError('a union value must not be None')
94005
+ self._error = error
94006
+ self._type = 'error'
94007
+
94008
+ @builtins.property
94009
+ def rid(self) -> Optional[str]:
94010
+ return self._rid
94011
+
94012
+ @builtins.property
94013
+ def error(self) -> Optional["timeseries_logicalseries_api_ResolveSeriesError"]:
94014
+ return self._error
94015
+
94016
+ def accept(self, visitor) -> Any:
94017
+ if not isinstance(visitor, timeseries_logicalseries_api_ResolveSeriesResponseVisitor):
94018
+ raise ValueError('{} is not an instance of timeseries_logicalseries_api_ResolveSeriesResponseVisitor'.format(visitor.__class__.__name__))
94019
+ if self._type == 'rid' and self.rid is not None:
94020
+ return visitor._rid(self.rid)
94021
+ if self._type == 'error' and self.error is not None:
94022
+ return visitor._error(self.error)
94023
+
94024
+
94025
+ timeseries_logicalseries_api_ResolveSeriesResponse.__name__ = "ResolveSeriesResponse"
94026
+ timeseries_logicalseries_api_ResolveSeriesResponse.__qualname__ = "ResolveSeriesResponse"
94027
+ timeseries_logicalseries_api_ResolveSeriesResponse.__module__ = "nominal_api.timeseries_logicalseries_api"
93456
94028
 
93457
- _response: Response = self._request(
93458
- 'POST',
93459
- self._uri + _path,
93460
- params=_params,
93461
- headers=_headers,
93462
- json=_json)
93463
94029
 
93464
- _decoder = ConjureDecoder()
93465
- return _decoder.decode(_response.json(), timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse, self._return_none_for_unknown_union_types)
94030
+ class timeseries_logicalseries_api_ResolveSeriesResponseVisitor:
93466
94031
 
94032
+ @abstractmethod
94033
+ def _rid(self, rid: str) -> Any:
94034
+ pass
93467
94035
 
93468
- timeseries_channelmetadata_ChannelMetadataService.__name__ = "ChannelMetadataService"
93469
- timeseries_channelmetadata_ChannelMetadataService.__qualname__ = "ChannelMetadataService"
93470
- timeseries_channelmetadata_ChannelMetadataService.__module__ = "nominal_api.timeseries_channelmetadata"
94036
+ @abstractmethod
94037
+ def _error(self, error: "timeseries_logicalseries_api_ResolveSeriesError") -> Any:
94038
+ pass
93471
94039
 
93472
94040
 
93473
- class timeseries_channelmetadata_api_BatchGetChannelMetadataRequest(ConjureBeanType):
94041
+ timeseries_logicalseries_api_ResolveSeriesResponseVisitor.__name__ = "ResolveSeriesResponseVisitor"
94042
+ timeseries_logicalseries_api_ResolveSeriesResponseVisitor.__qualname__ = "ResolveSeriesResponseVisitor"
94043
+ timeseries_logicalseries_api_ResolveSeriesResponseVisitor.__module__ = "nominal_api.timeseries_logicalseries_api"
94044
+
94045
+
94046
+ class timeseries_logicalseries_api_TimescaleDbLocator(ConjureBeanType):
93474
94047
 
93475
94048
  @builtins.classmethod
93476
94049
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93477
94050
  return {
93478
- 'requests': ConjureFieldDefinition('requests', List[timeseries_channelmetadata_api_GetChannelMetadataRequest])
94051
+ 'table': ConjureFieldDefinition('table', timeseries_logicalseries_api_TableName),
94052
+ 'schema': ConjureFieldDefinition('schema', timeseries_logicalseries_api_SchemaName),
94053
+ 'column': ConjureFieldDefinition('column', timeseries_logicalseries_api_ColumnName),
94054
+ 'time_column': ConjureFieldDefinition('timeColumn', timeseries_logicalseries_api_ColumnName),
94055
+ 'dimensions': ConjureFieldDefinition('dimensions', Dict[api_TagName, api_TagValue]),
94056
+ 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_TimescaleType)
93479
94057
  }
93480
94058
 
93481
- __slots__: List[str] = ['_requests']
94059
+ __slots__: List[str] = ['_table', '_schema', '_column', '_time_column', '_dimensions', '_type']
93482
94060
 
93483
- def __init__(self, requests: List["timeseries_channelmetadata_api_GetChannelMetadataRequest"]) -> None:
93484
- self._requests = requests
94061
+ def __init__(self, column: str, dimensions: Dict[str, str], schema: str, table: str, time_column: str, type: "timeseries_logicalseries_api_TimescaleType") -> None:
94062
+ self._table = table
94063
+ self._schema = schema
94064
+ self._column = column
94065
+ self._time_column = time_column
94066
+ self._dimensions = dimensions
94067
+ self._type = type
93485
94068
 
93486
94069
  @builtins.property
93487
- def requests(self) -> List["timeseries_channelmetadata_api_GetChannelMetadataRequest"]:
93488
- return self._requests
94070
+ def table(self) -> str:
94071
+ return self._table
93489
94072
 
94073
+ @builtins.property
94074
+ def schema(self) -> str:
94075
+ return self._schema
93490
94076
 
93491
- timeseries_channelmetadata_api_BatchGetChannelMetadataRequest.__name__ = "BatchGetChannelMetadataRequest"
93492
- timeseries_channelmetadata_api_BatchGetChannelMetadataRequest.__qualname__ = "BatchGetChannelMetadataRequest"
93493
- timeseries_channelmetadata_api_BatchGetChannelMetadataRequest.__module__ = "nominal_api.timeseries_channelmetadata_api"
94077
+ @builtins.property
94078
+ def column(self) -> str:
94079
+ return self._column
93494
94080
 
94081
+ @builtins.property
94082
+ def time_column(self) -> str:
94083
+ return self._time_column
93495
94084
 
93496
- class timeseries_channelmetadata_api_BatchGetChannelMetadataResponse(ConjureBeanType):
94085
+ @builtins.property
94086
+ def dimensions(self) -> Dict[str, str]:
94087
+ return self._dimensions
93497
94088
 
93498
- @builtins.classmethod
93499
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93500
- return {
93501
- 'responses': ConjureFieldDefinition('responses', List[timeseries_channelmetadata_api_ChannelMetadata])
93502
- }
94089
+ @builtins.property
94090
+ def type(self) -> "timeseries_logicalseries_api_TimescaleType":
94091
+ return self._type
93503
94092
 
93504
- __slots__: List[str] = ['_responses']
93505
94093
 
93506
- def __init__(self, responses: List["timeseries_channelmetadata_api_ChannelMetadata"]) -> None:
93507
- self._responses = responses
94094
+ timeseries_logicalseries_api_TimescaleDbLocator.__name__ = "TimescaleDbLocator"
94095
+ timeseries_logicalseries_api_TimescaleDbLocator.__qualname__ = "TimescaleDbLocator"
94096
+ timeseries_logicalseries_api_TimescaleDbLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
93508
94097
 
93509
- @builtins.property
93510
- def responses(self) -> List["timeseries_channelmetadata_api_ChannelMetadata"]:
93511
- return self._responses
93512
94098
 
94099
+ class timeseries_logicalseries_api_TimescaleType(ConjureEnumType):
93513
94100
 
93514
- timeseries_channelmetadata_api_BatchGetChannelMetadataResponse.__name__ = "BatchGetChannelMetadataResponse"
93515
- timeseries_channelmetadata_api_BatchGetChannelMetadataResponse.__qualname__ = "BatchGetChannelMetadataResponse"
93516
- timeseries_channelmetadata_api_BatchGetChannelMetadataResponse.__module__ = "nominal_api.timeseries_channelmetadata_api"
94101
+ BOOLEAN = 'BOOLEAN'
94102
+ '''BOOLEAN'''
94103
+ DOUBLE = 'DOUBLE'
94104
+ '''DOUBLE'''
94105
+ STRING = 'STRING'
94106
+ '''STRING'''
94107
+ UNKNOWN = 'UNKNOWN'
94108
+ '''UNKNOWN'''
94109
+
94110
+ def __reduce_ex__(self, proto):
94111
+ return self.__class__, (self.name,)
93517
94112
 
93518
94113
 
93519
- class timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest(ConjureBeanType):
94114
+ timeseries_logicalseries_api_TimescaleType.__name__ = "TimescaleType"
94115
+ timeseries_logicalseries_api_TimescaleType.__qualname__ = "TimescaleType"
94116
+ timeseries_logicalseries_api_TimescaleType.__module__ = "nominal_api.timeseries_logicalseries_api"
94117
+
94118
+
94119
+ class timeseries_logicalseries_api_TimestreamLocator(ConjureBeanType):
93520
94120
 
93521
94121
  @builtins.classmethod
93522
94122
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93523
94123
  return {
93524
- 'requests': ConjureFieldDefinition('requests', List[timeseries_channelmetadata_api_UpdateChannelMetadataRequest])
94124
+ 'table': ConjureFieldDefinition('table', timeseries_logicalseries_api_TableName),
94125
+ 'dimensions': ConjureFieldDefinition('dimensions', Dict[api_TagName, api_TagValue]),
94126
+ 'measure': ConjureFieldDefinition('measure', timeseries_logicalseries_api_MeasureName),
94127
+ 'attribute': ConjureFieldDefinition('attribute', OptionalTypeWrapper[timeseries_logicalseries_api_AttributeName]),
94128
+ 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_TimestreamType)
93525
94129
  }
93526
94130
 
93527
- __slots__: List[str] = ['_requests']
94131
+ __slots__: List[str] = ['_table', '_dimensions', '_measure', '_attribute', '_type']
93528
94132
 
93529
- def __init__(self, requests: List["timeseries_channelmetadata_api_UpdateChannelMetadataRequest"]) -> None:
93530
- self._requests = requests
94133
+ def __init__(self, dimensions: Dict[str, str], measure: str, table: str, type: "timeseries_logicalseries_api_TimestreamType", attribute: Optional[str] = None) -> None:
94134
+ self._table = table
94135
+ self._dimensions = dimensions
94136
+ self._measure = measure
94137
+ self._attribute = attribute
94138
+ self._type = type
93531
94139
 
93532
94140
  @builtins.property
93533
- def requests(self) -> List["timeseries_channelmetadata_api_UpdateChannelMetadataRequest"]:
93534
- return self._requests
94141
+ def table(self) -> str:
94142
+ return self._table
93535
94143
 
94144
+ @builtins.property
94145
+ def dimensions(self) -> Dict[str, str]:
94146
+ return self._dimensions
93536
94147
 
93537
- timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest.__name__ = "BatchUpdateChannelMetadataRequest"
93538
- timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest.__qualname__ = "BatchUpdateChannelMetadataRequest"
93539
- timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest.__module__ = "nominal_api.timeseries_channelmetadata_api"
94148
+ @builtins.property
94149
+ def measure(self) -> str:
94150
+ return self._measure
94151
+
94152
+ @builtins.property
94153
+ def attribute(self) -> Optional[str]:
94154
+ """If present, will be the attribute within the measurement for multi-measures.
94155
+ """
94156
+ return self._attribute
93540
94157
 
94158
+ @builtins.property
94159
+ def type(self) -> "timeseries_logicalseries_api_TimestreamType":
94160
+ return self._type
93541
94161
 
93542
- class timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse(ConjureBeanType):
93543
94162
 
93544
- @builtins.classmethod
93545
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93546
- return {
93547
- 'responses': ConjureFieldDefinition('responses', List[timeseries_channelmetadata_api_ChannelMetadata])
93548
- }
94163
+ timeseries_logicalseries_api_TimestreamLocator.__name__ = "TimestreamLocator"
94164
+ timeseries_logicalseries_api_TimestreamLocator.__qualname__ = "TimestreamLocator"
94165
+ timeseries_logicalseries_api_TimestreamLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
93549
94166
 
93550
- __slots__: List[str] = ['_responses']
93551
94167
 
93552
- def __init__(self, responses: List["timeseries_channelmetadata_api_ChannelMetadata"]) -> None:
93553
- self._responses = responses
94168
+ class timeseries_logicalseries_api_TimestreamType(ConjureEnumType):
93554
94169
 
93555
- @builtins.property
93556
- def responses(self) -> List["timeseries_channelmetadata_api_ChannelMetadata"]:
93557
- return self._responses
94170
+ DOUBLE = 'DOUBLE'
94171
+ '''DOUBLE'''
94172
+ STRING = 'STRING'
94173
+ '''STRING'''
94174
+ UNKNOWN = 'UNKNOWN'
94175
+ '''UNKNOWN'''
93558
94176
 
94177
+ def __reduce_ex__(self, proto):
94178
+ return self.__class__, (self.name,)
93559
94179
 
93560
- timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse.__name__ = "BatchUpdateChannelMetadataResponse"
93561
- timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse.__qualname__ = "BatchUpdateChannelMetadataResponse"
93562
- timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse.__module__ = "nominal_api.timeseries_channelmetadata_api"
94180
+
94181
+ timeseries_logicalseries_api_TimestreamType.__name__ = "TimestreamType"
94182
+ timeseries_logicalseries_api_TimestreamType.__qualname__ = "TimestreamType"
94183
+ timeseries_logicalseries_api_TimestreamType.__module__ = "nominal_api.timeseries_logicalseries_api"
93563
94184
 
93564
94185
 
93565
- class timeseries_channelmetadata_api_ChannelIdentifier(ConjureBeanType):
94186
+ class timeseries_logicalseries_api_UnitUpdate(ConjureUnionType):
94187
+ """UnitUpdate is used to either set a unit, or to clear an existing unit.
94188
+ """
94189
+ _unit: Optional[str] = None
94190
+ _clear_unit: Optional["api_Empty"] = None
93566
94191
 
93567
94192
  @builtins.classmethod
93568
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94193
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
93569
94194
  return {
93570
- 'channel_name': ConjureFieldDefinition('channelName', api_Channel),
93571
- 'data_source_rid': ConjureFieldDefinition('dataSourceRid', api_rids_DataSourceRid)
94195
+ 'unit': ConjureFieldDefinition('unit', api_Unit),
94196
+ 'clear_unit': ConjureFieldDefinition('clearUnit', api_Empty)
93572
94197
  }
93573
94198
 
93574
- __slots__: List[str] = ['_channel_name', '_data_source_rid']
94199
+ def __init__(
94200
+ self,
94201
+ unit: Optional[str] = None,
94202
+ clear_unit: Optional["api_Empty"] = None,
94203
+ type_of_union: Optional[str] = None
94204
+ ) -> None:
94205
+ if type_of_union is None:
94206
+ if (unit is not None) + (clear_unit is not None) != 1:
94207
+ raise ValueError('a union must contain a single member')
93575
94208
 
93576
- def __init__(self, channel_name: str, data_source_rid: str) -> None:
93577
- self._channel_name = channel_name
93578
- self._data_source_rid = data_source_rid
94209
+ if unit is not None:
94210
+ self._unit = unit
94211
+ self._type = 'unit'
94212
+ if clear_unit is not None:
94213
+ self._clear_unit = clear_unit
94214
+ self._type = 'clearUnit'
94215
+
94216
+ elif type_of_union == 'unit':
94217
+ if unit is None:
94218
+ raise ValueError('a union value must not be None')
94219
+ self._unit = unit
94220
+ self._type = 'unit'
94221
+ elif type_of_union == 'clearUnit':
94222
+ if clear_unit is None:
94223
+ raise ValueError('a union value must not be None')
94224
+ self._clear_unit = clear_unit
94225
+ self._type = 'clearUnit'
93579
94226
 
93580
94227
  @builtins.property
93581
- def channel_name(self) -> str:
93582
- return self._channel_name
94228
+ def unit(self) -> Optional[str]:
94229
+ return self._unit
93583
94230
 
93584
94231
  @builtins.property
93585
- def data_source_rid(self) -> str:
93586
- return self._data_source_rid
94232
+ def clear_unit(self) -> Optional["api_Empty"]:
94233
+ return self._clear_unit
93587
94234
 
94235
+ def accept(self, visitor) -> Any:
94236
+ if not isinstance(visitor, timeseries_logicalseries_api_UnitUpdateVisitor):
94237
+ raise ValueError('{} is not an instance of timeseries_logicalseries_api_UnitUpdateVisitor'.format(visitor.__class__.__name__))
94238
+ if self._type == 'unit' and self.unit is not None:
94239
+ return visitor._unit(self.unit)
94240
+ if self._type == 'clearUnit' and self.clear_unit is not None:
94241
+ return visitor._clear_unit(self.clear_unit)
93588
94242
 
93589
- timeseries_channelmetadata_api_ChannelIdentifier.__name__ = "ChannelIdentifier"
93590
- timeseries_channelmetadata_api_ChannelIdentifier.__qualname__ = "ChannelIdentifier"
93591
- timeseries_channelmetadata_api_ChannelIdentifier.__module__ = "nominal_api.timeseries_channelmetadata_api"
94243
+
94244
+ timeseries_logicalseries_api_UnitUpdate.__name__ = "UnitUpdate"
94245
+ timeseries_logicalseries_api_UnitUpdate.__qualname__ = "UnitUpdate"
94246
+ timeseries_logicalseries_api_UnitUpdate.__module__ = "nominal_api.timeseries_logicalseries_api"
93592
94247
 
93593
94248
 
93594
- class timeseries_channelmetadata_api_ChannelMetadata(ConjureBeanType):
94249
+ class timeseries_logicalseries_api_UnitUpdateVisitor:
94250
+
94251
+ @abstractmethod
94252
+ def _unit(self, unit: str) -> Any:
94253
+ pass
94254
+
94255
+ @abstractmethod
94256
+ def _clear_unit(self, clear_unit: "api_Empty") -> Any:
94257
+ pass
94258
+
94259
+
94260
+ timeseries_logicalseries_api_UnitUpdateVisitor.__name__ = "UnitUpdateVisitor"
94261
+ timeseries_logicalseries_api_UnitUpdateVisitor.__qualname__ = "UnitUpdateVisitor"
94262
+ timeseries_logicalseries_api_UnitUpdateVisitor.__module__ = "nominal_api.timeseries_logicalseries_api"
94263
+
94264
+
94265
+ class timeseries_logicalseries_api_UpdateLogicalSeries(ConjureBeanType):
93595
94266
 
93596
94267
  @builtins.classmethod
93597
94268
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93598
94269
  return {
93599
- 'channel_identifier': ConjureFieldDefinition('channelIdentifier', timeseries_channelmetadata_api_ChannelIdentifier),
94270
+ 'logical_series_rid': ConjureFieldDefinition('logicalSeriesRid', api_LogicalSeriesRid),
93600
94271
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
93601
94272
  'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[api_Unit]),
93602
- 'data_type': ConjureFieldDefinition('dataType', OptionalTypeWrapper[api_SeriesDataType])
94273
+ 'unit_update': ConjureFieldDefinition('unitUpdate', OptionalTypeWrapper[timeseries_logicalseries_api_UnitUpdate])
93603
94274
  }
93604
94275
 
93605
- __slots__: List[str] = ['_channel_identifier', '_description', '_unit', '_data_type']
94276
+ __slots__: List[str] = ['_logical_series_rid', '_description', '_unit', '_unit_update']
93606
94277
 
93607
- def __init__(self, channel_identifier: "timeseries_channelmetadata_api_ChannelIdentifier", data_type: Optional["api_SeriesDataType"] = None, description: Optional[str] = None, unit: Optional[str] = None) -> None:
93608
- self._channel_identifier = channel_identifier
94278
+ def __init__(self, logical_series_rid: str, description: Optional[str] = None, unit: Optional[str] = None, unit_update: Optional["timeseries_logicalseries_api_UnitUpdate"] = None) -> None:
94279
+ self._logical_series_rid = logical_series_rid
93609
94280
  self._description = description
93610
94281
  self._unit = unit
93611
- self._data_type = data_type
94282
+ self._unit_update = unit_update
93612
94283
 
93613
94284
  @builtins.property
93614
- def channel_identifier(self) -> "timeseries_channelmetadata_api_ChannelIdentifier":
93615
- return self._channel_identifier
94285
+ def logical_series_rid(self) -> str:
94286
+ return self._logical_series_rid
93616
94287
 
93617
94288
  @builtins.property
93618
94289
  def description(self) -> Optional[str]:
@@ -93623,111 +94294,106 @@ class timeseries_channelmetadata_api_ChannelMetadata(ConjureBeanType):
93623
94294
  return self._unit
93624
94295
 
93625
94296
  @builtins.property
93626
- def data_type(self) -> Optional["api_SeriesDataType"]:
93627
- return self._data_type
93628
-
93629
-
93630
- timeseries_channelmetadata_api_ChannelMetadata.__name__ = "ChannelMetadata"
93631
- timeseries_channelmetadata_api_ChannelMetadata.__qualname__ = "ChannelMetadata"
93632
- timeseries_channelmetadata_api_ChannelMetadata.__module__ = "nominal_api.timeseries_channelmetadata_api"
94297
+ def unit_update(self) -> Optional["timeseries_logicalseries_api_UnitUpdate"]:
94298
+ return self._unit_update
93633
94299
 
93634
94300
 
93635
- class timeseries_channelmetadata_api_GetChannelMetadataRequest(ConjureBeanType):
94301
+ timeseries_logicalseries_api_UpdateLogicalSeries.__name__ = "UpdateLogicalSeries"
94302
+ timeseries_logicalseries_api_UpdateLogicalSeries.__qualname__ = "UpdateLogicalSeries"
94303
+ timeseries_logicalseries_api_UpdateLogicalSeries.__module__ = "nominal_api.timeseries_logicalseries_api"
93636
94304
 
93637
- @builtins.classmethod
93638
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93639
- return {
93640
- 'channel_identifier': ConjureFieldDefinition('channelIdentifier', timeseries_channelmetadata_api_ChannelIdentifier)
93641
- }
93642
94305
 
93643
- __slots__: List[str] = ['_channel_identifier']
94306
+ class timeseries_logicalseries_api_VisualCrossingEndpointUri(ConjureEnumType):
93644
94307
 
93645
- def __init__(self, channel_identifier: "timeseries_channelmetadata_api_ChannelIdentifier") -> None:
93646
- self._channel_identifier = channel_identifier
94308
+ HISTORY = 'HISTORY'
94309
+ '''HISTORY'''
94310
+ TIMELINE = 'TIMELINE'
94311
+ '''TIMELINE'''
94312
+ UNKNOWN = 'UNKNOWN'
94313
+ '''UNKNOWN'''
93647
94314
 
93648
- @builtins.property
93649
- def channel_identifier(self) -> "timeseries_channelmetadata_api_ChannelIdentifier":
93650
- return self._channel_identifier
94315
+ def __reduce_ex__(self, proto):
94316
+ return self.__class__, (self.name,)
93651
94317
 
93652
94318
 
93653
- timeseries_channelmetadata_api_GetChannelMetadataRequest.__name__ = "GetChannelMetadataRequest"
93654
- timeseries_channelmetadata_api_GetChannelMetadataRequest.__qualname__ = "GetChannelMetadataRequest"
93655
- timeseries_channelmetadata_api_GetChannelMetadataRequest.__module__ = "nominal_api.timeseries_channelmetadata_api"
94319
+ timeseries_logicalseries_api_VisualCrossingEndpointUri.__name__ = "VisualCrossingEndpointUri"
94320
+ timeseries_logicalseries_api_VisualCrossingEndpointUri.__qualname__ = "VisualCrossingEndpointUri"
94321
+ timeseries_logicalseries_api_VisualCrossingEndpointUri.__module__ = "nominal_api.timeseries_logicalseries_api"
93656
94322
 
93657
94323
 
93658
- class timeseries_channelmetadata_api_UpdateChannelMetadataRequest(ConjureBeanType):
94324
+ class timeseries_logicalseries_api_VisualCrossingLocator(ConjureBeanType):
93659
94325
 
93660
94326
  @builtins.classmethod
93661
94327
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93662
94328
  return {
93663
- 'channel_identifier': ConjureFieldDefinition('channelIdentifier', timeseries_channelmetadata_api_ChannelIdentifier),
93664
- 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
93665
- 'unit_update': ConjureFieldDefinition('unitUpdate', OptionalTypeWrapper[timeseries_logicalseries_api_UnitUpdate])
94329
+ 'location': ConjureFieldDefinition('location', timeseries_logicalseries_api_LocationName),
94330
+ 'endpoint': ConjureFieldDefinition('endpoint', OptionalTypeWrapper[timeseries_logicalseries_api_VisualCrossingEndpointUri]),
94331
+ 'field': ConjureFieldDefinition('field', timeseries_logicalseries_api_FieldName),
94332
+ 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_VisualCrossingType)
93666
94333
  }
93667
94334
 
93668
- __slots__: List[str] = ['_channel_identifier', '_description', '_unit_update']
94335
+ __slots__: List[str] = ['_location', '_endpoint', '_field', '_type']
93669
94336
 
93670
- def __init__(self, channel_identifier: "timeseries_channelmetadata_api_ChannelIdentifier", description: Optional[str] = None, unit_update: Optional["timeseries_logicalseries_api_UnitUpdate"] = None) -> None:
93671
- self._channel_identifier = channel_identifier
93672
- self._description = description
93673
- self._unit_update = unit_update
94337
+ def __init__(self, field: str, location: str, type: "timeseries_logicalseries_api_VisualCrossingType", endpoint: Optional["timeseries_logicalseries_api_VisualCrossingEndpointUri"] = None) -> None:
94338
+ self._location = location
94339
+ self._endpoint = endpoint
94340
+ self._field = field
94341
+ self._type = type
93674
94342
 
93675
94343
  @builtins.property
93676
- def channel_identifier(self) -> "timeseries_channelmetadata_api_ChannelIdentifier":
93677
- return self._channel_identifier
94344
+ def location(self) -> str:
94345
+ """Location to fetch data from. Can be any arbitrary string (i.e. name, abbreviation,
94346
+ zip code, lat/long, etc.) as remote endpoint performs location resolution.
94347
+ """
94348
+ return self._location
93678
94349
 
93679
94350
  @builtins.property
93680
- def description(self) -> Optional[str]:
93681
- return self._description
94351
+ def endpoint(self) -> Optional["timeseries_logicalseries_api_VisualCrossingEndpointUri"]:
94352
+ """Defaults to HISTORY. Endpoint to fetch data from for this series.
94353
+ """
94354
+ return self._endpoint
93682
94355
 
93683
94356
  @builtins.property
93684
- def unit_update(self) -> Optional["timeseries_logicalseries_api_UnitUpdate"]:
93685
- return self._unit_update
93686
-
94357
+ def field(self) -> str:
94358
+ return self._field
93687
94359
 
93688
- timeseries_channelmetadata_api_UpdateChannelMetadataRequest.__name__ = "UpdateChannelMetadataRequest"
93689
- timeseries_channelmetadata_api_UpdateChannelMetadataRequest.__qualname__ = "UpdateChannelMetadataRequest"
93690
- timeseries_channelmetadata_api_UpdateChannelMetadataRequest.__module__ = "nominal_api.timeseries_channelmetadata_api"
94360
+ @builtins.property
94361
+ def type(self) -> "timeseries_logicalseries_api_VisualCrossingType":
94362
+ return self._type
93691
94363
 
93692
94364
 
93693
- class timeseries_logicalseries_LogicalSeriesService(Service):
93694
- """A logical series is a timeseries, represented by a channel name and a tag set.
93695
- """
94365
+ timeseries_logicalseries_api_VisualCrossingLocator.__name__ = "VisualCrossingLocator"
94366
+ timeseries_logicalseries_api_VisualCrossingLocator.__qualname__ = "VisualCrossingLocator"
94367
+ timeseries_logicalseries_api_VisualCrossingLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
93696
94368
 
93697
- def create_logical_series(self, auth_header: str, create_logical_series: "timeseries_logicalseries_api_CreateLogicalSeries") -> "timeseries_logicalseries_api_LogicalSeries":
93698
- """Create a new logical series.
93699
- """
93700
- _conjure_encoder = ConjureEncoder()
93701
94369
 
93702
- _headers: Dict[str, Any] = {
93703
- 'Accept': 'application/json',
93704
- 'Content-Type': 'application/json',
93705
- 'Authorization': auth_header,
93706
- }
94370
+ class timeseries_logicalseries_api_VisualCrossingType(ConjureEnumType):
93707
94371
 
93708
- _params: Dict[str, Any] = {
93709
- }
94372
+ DOUBLE = 'DOUBLE'
94373
+ '''DOUBLE'''
94374
+ STRING = 'STRING'
94375
+ '''STRING'''
94376
+ UNKNOWN = 'UNKNOWN'
94377
+ '''UNKNOWN'''
93710
94378
 
93711
- _path_params: Dict[str, str] = {
93712
- }
94379
+ def __reduce_ex__(self, proto):
94380
+ return self.__class__, (self.name,)
93713
94381
 
93714
- _json: Any = _conjure_encoder.default(create_logical_series)
93715
94382
 
93716
- _path = '/timeseries/logical-series/v1/logical-series'
93717
- _path = _path.format(**_path_params)
94383
+ timeseries_logicalseries_api_VisualCrossingType.__name__ = "VisualCrossingType"
94384
+ timeseries_logicalseries_api_VisualCrossingType.__qualname__ = "VisualCrossingType"
94385
+ timeseries_logicalseries_api_VisualCrossingType.__module__ = "nominal_api.timeseries_logicalseries_api"
93718
94386
 
93719
- _response: Response = self._request(
93720
- 'POST',
93721
- self._uri + _path,
93722
- params=_params,
93723
- headers=_headers,
93724
- json=_json)
93725
94387
 
93726
- _decoder = ConjureDecoder()
93727
- return _decoder.decode(_response.json(), timeseries_logicalseries_api_LogicalSeries, self._return_none_for_unknown_union_types)
94388
+ class timeseries_metadata_SeriesMetadataService(Service):
94389
+ """[INTERNAL]
94390
+ Series metadata represents the constant information about data in a series - specifically, the name, units, a
94391
+ description, and the tags. Series metadata can be used to query points from specific series depending on the tag
94392
+ value selections.
94393
+ """
93728
94394
 
93729
- def batch_create_logical_series(self, auth_header: str, request: "timeseries_logicalseries_api_BatchCreateLogicalSeriesRequest") -> "timeseries_logicalseries_api_BatchCreateLogicalSeriesResponse":
93730
- """Batch create new logical series.
94395
+ def batch_get(self, auth_header: str, request: "timeseries_metadata_api_BatchGetSeriesMetadataRequest") -> "timeseries_metadata_api_BatchGetSeriesMetadataResponse":
94396
+ """Batch get series metadata by DataSourceRid.
93731
94397
  """
93732
94398
  _conjure_encoder = ConjureEncoder()
93733
94399
 
@@ -93745,7 +94411,7 @@ class timeseries_logicalseries_LogicalSeriesService(Service):
93745
94411
 
93746
94412
  _json: Any = _conjure_encoder.default(request)
93747
94413
 
93748
- _path = '/timeseries/logical-series/v1/logical-series/batch-create'
94414
+ _path = '/timeseries/archetype/v1/series-archetype/batch-get'
93749
94415
  _path = _path.format(**_path_params)
93750
94416
 
93751
94417
  _response: Response = self._request(
@@ -93756,10 +94422,10 @@ class timeseries_logicalseries_LogicalSeriesService(Service):
93756
94422
  json=_json)
93757
94423
 
93758
94424
  _decoder = ConjureDecoder()
93759
- return _decoder.decode(_response.json(), timeseries_logicalseries_api_BatchCreateLogicalSeriesResponse, self._return_none_for_unknown_union_types)
94425
+ return _decoder.decode(_response.json(), timeseries_metadata_api_BatchGetSeriesMetadataResponse, self._return_none_for_unknown_union_types)
93760
94426
 
93761
- def batch_update_logical_series(self, auth_header: str, request: "timeseries_logicalseries_api_BatchUpdateLogicalSeriesRequest") -> "timeseries_logicalseries_api_BatchUpdateLogicalSeriesResponse":
93762
- """Batch update logical series descriptions and units.
94427
+ def create(self, auth_header: str, request: "timeseries_metadata_api_CreateSeriesMetadataRequest") -> None:
94428
+ """Create new series metadata.
93763
94429
  """
93764
94430
  _conjure_encoder = ConjureEncoder()
93765
94431
 
@@ -93777,7 +94443,7 @@ class timeseries_logicalseries_LogicalSeriesService(Service):
93777
94443
 
93778
94444
  _json: Any = _conjure_encoder.default(request)
93779
94445
 
93780
- _path = '/timeseries/logical-series/v1/logical-series/batch-update'
94446
+ _path = '/timeseries/archetype/v1/series-archetype'
93781
94447
  _path = _path.format(**_path_params)
93782
94448
 
93783
94449
  _response: Response = self._request(
@@ -93787,16 +94453,16 @@ class timeseries_logicalseries_LogicalSeriesService(Service):
93787
94453
  headers=_headers,
93788
94454
  json=_json)
93789
94455
 
93790
- _decoder = ConjureDecoder()
93791
- return _decoder.decode(_response.json(), timeseries_logicalseries_api_BatchUpdateLogicalSeriesResponse, self._return_none_for_unknown_union_types)
94456
+ return
93792
94457
 
93793
- def get_logical_series(self, auth_header: str, rid: str) -> "timeseries_logicalseries_api_LogicalSeries":
93794
- """Get a logical series by logical series rid.
94458
+ def batch_create(self, auth_header: str, request: "timeseries_metadata_api_BatchCreateSeriesMetadataRequest") -> None:
94459
+ """Idempotently creates series metadata.
93795
94460
  """
93796
94461
  _conjure_encoder = ConjureEncoder()
93797
94462
 
93798
94463
  _headers: Dict[str, Any] = {
93799
94464
  'Accept': 'application/json',
94465
+ 'Content-Type': 'application/json',
93800
94466
  'Authorization': auth_header,
93801
94467
  }
93802
94468
 
@@ -93804,33 +94470,29 @@ class timeseries_logicalseries_LogicalSeriesService(Service):
93804
94470
  }
93805
94471
 
93806
94472
  _path_params: Dict[str, str] = {
93807
- 'rid': quote(str(_conjure_encoder.default(rid)), safe=''),
93808
94473
  }
93809
94474
 
93810
- _json: Any = None
94475
+ _json: Any = _conjure_encoder.default(request)
93811
94476
 
93812
- _path = '/timeseries/logical-series/v1/logical-series/{rid}'
94477
+ _path = '/timeseries/archetype/v1/series-archetype/batch-create'
93813
94478
  _path = _path.format(**_path_params)
93814
94479
 
93815
94480
  _response: Response = self._request(
93816
- 'GET',
94481
+ 'POST',
93817
94482
  self._uri + _path,
93818
94483
  params=_params,
93819
94484
  headers=_headers,
93820
94485
  json=_json)
93821
94486
 
93822
- _decoder = ConjureDecoder()
93823
- return _decoder.decode(_response.json(), timeseries_logicalseries_api_LogicalSeries, self._return_none_for_unknown_union_types)
94487
+ return
93824
94488
 
93825
- def resolve_batch(self, auth_header: str, request: "timeseries_logicalseries_api_BatchResolveSeriesRequest") -> "timeseries_logicalseries_api_BatchResolveSeriesResponse":
93826
- """Resolves groups of channels, datasources and tags into logical series rids. An error response is provided
93827
- if the channel + datasource + tag cannot be resolved into a logical series rid.
94489
+ def get(self, auth_header: str, rid: str) -> "timeseries_metadata_api_SeriesMetadata":
94490
+ """Get series metadata from its series metadata rid.
93828
94491
  """
93829
94492
  _conjure_encoder = ConjureEncoder()
93830
94493
 
93831
94494
  _headers: Dict[str, Any] = {
93832
94495
  'Accept': 'application/json',
93833
- 'Content-Type': 'application/json',
93834
94496
  'Authorization': auth_header,
93835
94497
  }
93836
94498
 
@@ -93838,443 +94500,256 @@ if the channel + datasource + tag cannot be resolved into a logical series rid.
93838
94500
  }
93839
94501
 
93840
94502
  _path_params: Dict[str, str] = {
94503
+ 'rid': quote(str(_conjure_encoder.default(rid)), safe=''),
93841
94504
  }
93842
94505
 
93843
- _json: Any = _conjure_encoder.default(request)
94506
+ _json: Any = None
93844
94507
 
93845
- _path = '/timeseries/logical-series/v1/resolve'
94508
+ _path = '/timeseries/archetype/v1/series-archetype/{rid}'
93846
94509
  _path = _path.format(**_path_params)
93847
94510
 
93848
94511
  _response: Response = self._request(
93849
- 'POST',
93850
- self._uri + _path,
93851
- params=_params,
93852
- headers=_headers,
93853
- json=_json)
93854
-
93855
- _decoder = ConjureDecoder()
93856
- return _decoder.decode(_response.json(), timeseries_logicalseries_api_BatchResolveSeriesResponse, self._return_none_for_unknown_union_types)
93857
-
93858
-
93859
- timeseries_logicalseries_LogicalSeriesService.__name__ = "LogicalSeriesService"
93860
- timeseries_logicalseries_LogicalSeriesService.__qualname__ = "LogicalSeriesService"
93861
- timeseries_logicalseries_LogicalSeriesService.__module__ = "nominal_api.timeseries_logicalseries"
93862
-
93863
-
93864
- class timeseries_logicalseries_api_ApiLocator(ConjureBeanType):
93865
-
93866
- @builtins.classmethod
93867
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93868
- return {
93869
- 'channel': ConjureFieldDefinition('channel', api_Channel),
93870
- 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue]),
93871
- 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_ApiType)
93872
- }
93873
-
93874
- __slots__: List[str] = ['_channel', '_tags', '_type']
93875
-
93876
- def __init__(self, channel: str, tags: Dict[str, str], type: "timeseries_logicalseries_api_ApiType") -> None:
93877
- self._channel = channel
93878
- self._tags = tags
93879
- self._type = type
93880
-
93881
- @builtins.property
93882
- def channel(self) -> str:
93883
- return self._channel
93884
-
93885
- @builtins.property
93886
- def tags(self) -> Dict[str, str]:
93887
- return self._tags
93888
-
93889
- @builtins.property
93890
- def type(self) -> "timeseries_logicalseries_api_ApiType":
93891
- return self._type
93892
-
93893
-
93894
- timeseries_logicalseries_api_ApiLocator.__name__ = "ApiLocator"
93895
- timeseries_logicalseries_api_ApiLocator.__qualname__ = "ApiLocator"
93896
- timeseries_logicalseries_api_ApiLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
93897
-
93898
-
93899
- class timeseries_logicalseries_api_ApiType(ConjureEnumType):
93900
-
93901
- DOUBLE = 'DOUBLE'
93902
- '''DOUBLE'''
93903
- STRING = 'STRING'
93904
- '''STRING'''
93905
- INT64 = 'INT64'
93906
- '''INT64'''
93907
- UNKNOWN = 'UNKNOWN'
93908
- '''UNKNOWN'''
93909
-
93910
- def __reduce_ex__(self, proto):
93911
- return self.__class__, (self.name,)
93912
-
93913
-
93914
- timeseries_logicalseries_api_ApiType.__name__ = "ApiType"
93915
- timeseries_logicalseries_api_ApiType.__qualname__ = "ApiType"
93916
- timeseries_logicalseries_api_ApiType.__module__ = "nominal_api.timeseries_logicalseries_api"
93917
-
93918
-
93919
- class timeseries_logicalseries_api_BatchCreateLogicalSeriesRequest(ConjureBeanType):
93920
-
93921
- @builtins.classmethod
93922
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93923
- return {
93924
- 'requests': ConjureFieldDefinition('requests', List[timeseries_logicalseries_api_CreateLogicalSeries])
93925
- }
93926
-
93927
- __slots__: List[str] = ['_requests']
93928
-
93929
- def __init__(self, requests: List["timeseries_logicalseries_api_CreateLogicalSeries"]) -> None:
93930
- self._requests = requests
93931
-
93932
- @builtins.property
93933
- def requests(self) -> List["timeseries_logicalseries_api_CreateLogicalSeries"]:
93934
- return self._requests
94512
+ 'GET',
94513
+ self._uri + _path,
94514
+ params=_params,
94515
+ headers=_headers,
94516
+ json=_json)
93935
94517
 
94518
+ _decoder = ConjureDecoder()
94519
+ return _decoder.decode(_response.json(), timeseries_metadata_api_SeriesMetadata, self._return_none_for_unknown_union_types)
93936
94520
 
93937
- timeseries_logicalseries_api_BatchCreateLogicalSeriesRequest.__name__ = "BatchCreateLogicalSeriesRequest"
93938
- timeseries_logicalseries_api_BatchCreateLogicalSeriesRequest.__qualname__ = "BatchCreateLogicalSeriesRequest"
93939
- timeseries_logicalseries_api_BatchCreateLogicalSeriesRequest.__module__ = "nominal_api.timeseries_logicalseries_api"
94521
+ def update_metadata(self, auth_header: str, request: "timeseries_metadata_api_UpdateSeriesMetadataRequest", rid: str) -> "timeseries_metadata_api_SeriesMetadata":
94522
+ """Update existing series metadata.
94523
+ Throws SeriesMetadataNotFound if the series metadata does not exist.
94524
+ """
94525
+ _conjure_encoder = ConjureEncoder()
93940
94526
 
94527
+ _headers: Dict[str, Any] = {
94528
+ 'Accept': 'application/json',
94529
+ 'Content-Type': 'application/json',
94530
+ 'Authorization': auth_header,
94531
+ }
93941
94532
 
93942
- class timeseries_logicalseries_api_BatchCreateLogicalSeriesResponse(ConjureBeanType):
94533
+ _params: Dict[str, Any] = {
94534
+ }
93943
94535
 
93944
- @builtins.classmethod
93945
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93946
- return {
93947
- 'responses': ConjureFieldDefinition('responses', List[timeseries_logicalseries_api_LogicalSeries])
94536
+ _path_params: Dict[str, str] = {
94537
+ 'rid': quote(str(_conjure_encoder.default(rid)), safe=''),
93948
94538
  }
93949
94539
 
93950
- __slots__: List[str] = ['_responses']
94540
+ _json: Any = _conjure_encoder.default(request)
93951
94541
 
93952
- def __init__(self, responses: List["timeseries_logicalseries_api_LogicalSeries"]) -> None:
93953
- self._responses = responses
94542
+ _path = '/timeseries/archetype/v1/series-archetype/{rid}/metadata'
94543
+ _path = _path.format(**_path_params)
93954
94544
 
93955
- @builtins.property
93956
- def responses(self) -> List["timeseries_logicalseries_api_LogicalSeries"]:
93957
- return self._responses
94545
+ _response: Response = self._request(
94546
+ 'POST',
94547
+ self._uri + _path,
94548
+ params=_params,
94549
+ headers=_headers,
94550
+ json=_json)
94551
+
94552
+ _decoder = ConjureDecoder()
94553
+ return _decoder.decode(_response.json(), timeseries_metadata_api_SeriesMetadata, self._return_none_for_unknown_union_types)
93958
94554
 
93959
94555
 
93960
- timeseries_logicalseries_api_BatchCreateLogicalSeriesResponse.__name__ = "BatchCreateLogicalSeriesResponse"
93961
- timeseries_logicalseries_api_BatchCreateLogicalSeriesResponse.__qualname__ = "BatchCreateLogicalSeriesResponse"
93962
- timeseries_logicalseries_api_BatchCreateLogicalSeriesResponse.__module__ = "nominal_api.timeseries_logicalseries_api"
94556
+ timeseries_metadata_SeriesMetadataService.__name__ = "SeriesMetadataService"
94557
+ timeseries_metadata_SeriesMetadataService.__qualname__ = "SeriesMetadataService"
94558
+ timeseries_metadata_SeriesMetadataService.__module__ = "nominal_api.timeseries_metadata"
93963
94559
 
93964
94560
 
93965
- class timeseries_logicalseries_api_BatchResolveSeriesRequest(ConjureBeanType):
94561
+ class timeseries_metadata_api_ApiLocatorTemplate(ConjureBeanType):
93966
94562
 
93967
94563
  @builtins.classmethod
93968
94564
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93969
94565
  return {
93970
- 'requests': ConjureFieldDefinition('requests', List[timeseries_logicalseries_api_ResolveSeriesRequest])
94566
+ 'channel': ConjureFieldDefinition('channel', api_Channel),
94567
+ 'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_ApiType)
93971
94568
  }
93972
94569
 
93973
- __slots__: List[str] = ['_requests']
94570
+ __slots__: List[str] = ['_channel', '_type']
93974
94571
 
93975
- def __init__(self, requests: List["timeseries_logicalseries_api_ResolveSeriesRequest"]) -> None:
93976
- self._requests = requests
94572
+ def __init__(self, channel: str, type: "timeseries_logicalseries_api_ApiType") -> None:
94573
+ self._channel = channel
94574
+ self._type = type
93977
94575
 
93978
94576
  @builtins.property
93979
- def requests(self) -> List["timeseries_logicalseries_api_ResolveSeriesRequest"]:
93980
- return self._requests
94577
+ def channel(self) -> str:
94578
+ return self._channel
93981
94579
 
94580
+ @builtins.property
94581
+ def type(self) -> "timeseries_logicalseries_api_ApiType":
94582
+ return self._type
93982
94583
 
93983
- timeseries_logicalseries_api_BatchResolveSeriesRequest.__name__ = "BatchResolveSeriesRequest"
93984
- timeseries_logicalseries_api_BatchResolveSeriesRequest.__qualname__ = "BatchResolveSeriesRequest"
93985
- timeseries_logicalseries_api_BatchResolveSeriesRequest.__module__ = "nominal_api.timeseries_logicalseries_api"
93986
94584
 
94585
+ timeseries_metadata_api_ApiLocatorTemplate.__name__ = "ApiLocatorTemplate"
94586
+ timeseries_metadata_api_ApiLocatorTemplate.__qualname__ = "ApiLocatorTemplate"
94587
+ timeseries_metadata_api_ApiLocatorTemplate.__module__ = "nominal_api.timeseries_metadata_api"
93987
94588
 
93988
- class timeseries_logicalseries_api_BatchResolveSeriesResponse(ConjureBeanType):
94589
+
94590
+ class timeseries_metadata_api_BatchCreateSeriesMetadataRequest(ConjureBeanType):
93989
94591
 
93990
94592
  @builtins.classmethod
93991
94593
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
93992
94594
  return {
93993
- 'series': ConjureFieldDefinition('series', List[timeseries_logicalseries_api_ResolveSeriesResponse])
94595
+ 'requests': ConjureFieldDefinition('requests', List[timeseries_metadata_api_CreateSeriesMetadataRequest])
93994
94596
  }
93995
94597
 
93996
- __slots__: List[str] = ['_series']
94598
+ __slots__: List[str] = ['_requests']
93997
94599
 
93998
- def __init__(self, series: List["timeseries_logicalseries_api_ResolveSeriesResponse"]) -> None:
93999
- self._series = series
94600
+ def __init__(self, requests: List["timeseries_metadata_api_CreateSeriesMetadataRequest"]) -> None:
94601
+ self._requests = requests
94000
94602
 
94001
94603
  @builtins.property
94002
- def series(self) -> List["timeseries_logicalseries_api_ResolveSeriesResponse"]:
94003
- return self._series
94604
+ def requests(self) -> List["timeseries_metadata_api_CreateSeriesMetadataRequest"]:
94605
+ return self._requests
94004
94606
 
94005
94607
 
94006
- timeseries_logicalseries_api_BatchResolveSeriesResponse.__name__ = "BatchResolveSeriesResponse"
94007
- timeseries_logicalseries_api_BatchResolveSeriesResponse.__qualname__ = "BatchResolveSeriesResponse"
94008
- timeseries_logicalseries_api_BatchResolveSeriesResponse.__module__ = "nominal_api.timeseries_logicalseries_api"
94608
+ timeseries_metadata_api_BatchCreateSeriesMetadataRequest.__name__ = "BatchCreateSeriesMetadataRequest"
94609
+ timeseries_metadata_api_BatchCreateSeriesMetadataRequest.__qualname__ = "BatchCreateSeriesMetadataRequest"
94610
+ timeseries_metadata_api_BatchCreateSeriesMetadataRequest.__module__ = "nominal_api.timeseries_metadata_api"
94009
94611
 
94010
94612
 
94011
- class timeseries_logicalseries_api_BatchUpdateLogicalSeriesRequest(ConjureBeanType):
94613
+ class timeseries_metadata_api_BatchGetSeriesMetadataRequest(ConjureBeanType):
94012
94614
 
94013
94615
  @builtins.classmethod
94014
94616
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94015
94617
  return {
94016
- 'requests': ConjureFieldDefinition('requests', List[timeseries_logicalseries_api_UpdateLogicalSeries])
94618
+ 'datasources': ConjureFieldDefinition('datasources', List[api_rids_DataSourceRid])
94017
94619
  }
94018
94620
 
94019
- __slots__: List[str] = ['_requests']
94621
+ __slots__: List[str] = ['_datasources']
94020
94622
 
94021
- def __init__(self, requests: List["timeseries_logicalseries_api_UpdateLogicalSeries"]) -> None:
94022
- self._requests = requests
94623
+ def __init__(self, datasources: List[str]) -> None:
94624
+ self._datasources = datasources
94023
94625
 
94024
94626
  @builtins.property
94025
- def requests(self) -> List["timeseries_logicalseries_api_UpdateLogicalSeries"]:
94026
- return self._requests
94627
+ def datasources(self) -> List[str]:
94628
+ return self._datasources
94027
94629
 
94028
94630
 
94029
- timeseries_logicalseries_api_BatchUpdateLogicalSeriesRequest.__name__ = "BatchUpdateLogicalSeriesRequest"
94030
- timeseries_logicalseries_api_BatchUpdateLogicalSeriesRequest.__qualname__ = "BatchUpdateLogicalSeriesRequest"
94031
- timeseries_logicalseries_api_BatchUpdateLogicalSeriesRequest.__module__ = "nominal_api.timeseries_logicalseries_api"
94631
+ timeseries_metadata_api_BatchGetSeriesMetadataRequest.__name__ = "BatchGetSeriesMetadataRequest"
94632
+ timeseries_metadata_api_BatchGetSeriesMetadataRequest.__qualname__ = "BatchGetSeriesMetadataRequest"
94633
+ timeseries_metadata_api_BatchGetSeriesMetadataRequest.__module__ = "nominal_api.timeseries_metadata_api"
94032
94634
 
94033
94635
 
94034
- class timeseries_logicalseries_api_BatchUpdateLogicalSeriesResponse(ConjureBeanType):
94636
+ class timeseries_metadata_api_BatchGetSeriesMetadataResponse(ConjureBeanType):
94035
94637
 
94036
94638
  @builtins.classmethod
94037
94639
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94038
94640
  return {
94039
- 'responses': ConjureFieldDefinition('responses', List[timeseries_logicalseries_api_LogicalSeries])
94641
+ 'responses': ConjureFieldDefinition('responses', Dict[api_rids_DataSourceRid, List[timeseries_metadata_api_SeriesMetadata]])
94040
94642
  }
94041
94643
 
94042
94644
  __slots__: List[str] = ['_responses']
94043
94645
 
94044
- def __init__(self, responses: List["timeseries_logicalseries_api_LogicalSeries"]) -> None:
94646
+ def __init__(self, responses: Dict[str, List["timeseries_metadata_api_SeriesMetadata"]]) -> None:
94045
94647
  self._responses = responses
94046
94648
 
94047
94649
  @builtins.property
94048
- def responses(self) -> List["timeseries_logicalseries_api_LogicalSeries"]:
94650
+ def responses(self) -> Dict[str, List["timeseries_metadata_api_SeriesMetadata"]]:
94049
94651
  return self._responses
94050
94652
 
94051
94653
 
94052
- timeseries_logicalseries_api_BatchUpdateLogicalSeriesResponse.__name__ = "BatchUpdateLogicalSeriesResponse"
94053
- timeseries_logicalseries_api_BatchUpdateLogicalSeriesResponse.__qualname__ = "BatchUpdateLogicalSeriesResponse"
94054
- timeseries_logicalseries_api_BatchUpdateLogicalSeriesResponse.__module__ = "nominal_api.timeseries_logicalseries_api"
94654
+ timeseries_metadata_api_BatchGetSeriesMetadataResponse.__name__ = "BatchGetSeriesMetadataResponse"
94655
+ timeseries_metadata_api_BatchGetSeriesMetadataResponse.__qualname__ = "BatchGetSeriesMetadataResponse"
94656
+ timeseries_metadata_api_BatchGetSeriesMetadataResponse.__module__ = "nominal_api.timeseries_metadata_api"
94055
94657
 
94056
94658
 
94057
- class timeseries_logicalseries_api_BigQueryLocator(ConjureBeanType):
94659
+ class timeseries_metadata_api_BigQueryLocatorTemplate(ConjureBeanType):
94058
94660
 
94059
94661
  @builtins.classmethod
94060
94662
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94061
94663
  return {
94062
94664
  'value_column': ConjureFieldDefinition('valueColumn', timeseries_logicalseries_api_ColumnName),
94063
94665
  'time_column': ConjureFieldDefinition('timeColumn', timeseries_logicalseries_api_ColumnName),
94064
- 'tag_values': ConjureFieldDefinition('tagValues', Dict[api_TagName, api_TagValue]),
94065
94666
  'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_BigQueryType)
94066
94667
  }
94067
94668
 
94068
- __slots__: List[str] = ['_value_column', '_time_column', '_tag_values', '_type']
94669
+ __slots__: List[str] = ['_value_column', '_time_column', '_type']
94069
94670
 
94070
- def __init__(self, tag_values: Dict[str, str], time_column: str, type: "timeseries_logicalseries_api_BigQueryType", value_column: str) -> None:
94671
+ def __init__(self, time_column: str, type: "timeseries_logicalseries_api_BigQueryType", value_column: str) -> None:
94071
94672
  self._value_column = value_column
94072
94673
  self._time_column = time_column
94073
- self._tag_values = tag_values
94074
94674
  self._type = type
94075
94675
 
94076
94676
  @builtins.property
94077
94677
  def value_column(self) -> str:
94078
- """The name of the column which has the values for this series
94079
- """
94080
94678
  return self._value_column
94081
94679
 
94082
94680
  @builtins.property
94083
94681
  def time_column(self) -> str:
94084
- """The name of the column which has the timestamps for this series
94085
- """
94086
94682
  return self._time_column
94087
94683
 
94088
- @builtins.property
94089
- def tag_values(self) -> Dict[str, str]:
94090
- """The mapping of columns to column values to filter on
94091
- """
94092
- return self._tag_values
94093
-
94094
94684
  @builtins.property
94095
94685
  def type(self) -> "timeseries_logicalseries_api_BigQueryType":
94096
94686
  return self._type
94097
94687
 
94098
94688
 
94099
- timeseries_logicalseries_api_BigQueryLocator.__name__ = "BigQueryLocator"
94100
- timeseries_logicalseries_api_BigQueryLocator.__qualname__ = "BigQueryLocator"
94101
- timeseries_logicalseries_api_BigQueryLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
94102
-
94103
-
94104
- class timeseries_logicalseries_api_BigQueryType(ConjureEnumType):
94105
-
94106
- DOUBLE = 'DOUBLE'
94107
- '''DOUBLE'''
94108
- STRING = 'STRING'
94109
- '''STRING'''
94110
- UNKNOWN = 'UNKNOWN'
94111
- '''UNKNOWN'''
94112
-
94113
- def __reduce_ex__(self, proto):
94114
- return self.__class__, (self.name,)
94115
-
94116
-
94117
- timeseries_logicalseries_api_BigQueryType.__name__ = "BigQueryType"
94118
- timeseries_logicalseries_api_BigQueryType.__qualname__ = "BigQueryType"
94119
- timeseries_logicalseries_api_BigQueryType.__module__ = "nominal_api.timeseries_logicalseries_api"
94120
-
94121
-
94122
- class timeseries_logicalseries_api_Context(ConjureBeanType):
94123
-
94124
- @builtins.classmethod
94125
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94126
- return {
94127
- 'properties': ConjureFieldDefinition('properties', Dict[str, timeseries_logicalseries_api_ContextProperty])
94128
- }
94129
-
94130
- __slots__: List[str] = ['_properties']
94131
-
94132
- def __init__(self, properties: Dict[str, "timeseries_logicalseries_api_ContextProperty"]) -> None:
94133
- self._properties = properties
94134
-
94135
- @builtins.property
94136
- def properties(self) -> Dict[str, "timeseries_logicalseries_api_ContextProperty"]:
94137
- return self._properties
94138
-
94139
-
94140
- timeseries_logicalseries_api_Context.__name__ = "Context"
94141
- timeseries_logicalseries_api_Context.__qualname__ = "Context"
94142
- timeseries_logicalseries_api_Context.__module__ = "nominal_api.timeseries_logicalseries_api"
94143
-
94144
-
94145
- class timeseries_logicalseries_api_ContextProperty(ConjureUnionType):
94146
- _value: Optional[str] = None
94147
-
94148
- @builtins.classmethod
94149
- def _options(cls) -> Dict[str, ConjureFieldDefinition]:
94150
- return {
94151
- 'value': ConjureFieldDefinition('value', str)
94152
- }
94153
-
94154
- def __init__(
94155
- self,
94156
- value: Optional[str] = None,
94157
- type_of_union: Optional[str] = None
94158
- ) -> None:
94159
- if type_of_union is None:
94160
- if (value is not None) != 1:
94161
- raise ValueError('a union must contain a single member')
94162
-
94163
- if value is not None:
94164
- self._value = value
94165
- self._type = 'value'
94166
-
94167
- elif type_of_union == 'value':
94168
- if value is None:
94169
- raise ValueError('a union value must not be None')
94170
- self._value = value
94171
- self._type = 'value'
94172
-
94173
- @builtins.property
94174
- def value(self) -> Optional[str]:
94175
- return self._value
94176
-
94177
- def accept(self, visitor) -> Any:
94178
- if not isinstance(visitor, timeseries_logicalseries_api_ContextPropertyVisitor):
94179
- raise ValueError('{} is not an instance of timeseries_logicalseries_api_ContextPropertyVisitor'.format(visitor.__class__.__name__))
94180
- if self._type == 'value' and self.value is not None:
94181
- return visitor._value(self.value)
94182
-
94183
-
94184
- timeseries_logicalseries_api_ContextProperty.__name__ = "ContextProperty"
94185
- timeseries_logicalseries_api_ContextProperty.__qualname__ = "ContextProperty"
94186
- timeseries_logicalseries_api_ContextProperty.__module__ = "nominal_api.timeseries_logicalseries_api"
94187
-
94188
-
94189
- class timeseries_logicalseries_api_ContextPropertyVisitor:
94190
-
94191
- @abstractmethod
94192
- def _value(self, value: str) -> Any:
94193
- pass
94194
-
94195
-
94196
- timeseries_logicalseries_api_ContextPropertyVisitor.__name__ = "ContextPropertyVisitor"
94197
- timeseries_logicalseries_api_ContextPropertyVisitor.__qualname__ = "ContextPropertyVisitor"
94198
- timeseries_logicalseries_api_ContextPropertyVisitor.__module__ = "nominal_api.timeseries_logicalseries_api"
94689
+ timeseries_metadata_api_BigQueryLocatorTemplate.__name__ = "BigQueryLocatorTemplate"
94690
+ timeseries_metadata_api_BigQueryLocatorTemplate.__qualname__ = "BigQueryLocatorTemplate"
94691
+ timeseries_metadata_api_BigQueryLocatorTemplate.__module__ = "nominal_api.timeseries_metadata_api"
94199
94692
 
94200
94693
 
94201
- class timeseries_logicalseries_api_CreateLogicalSeries(ConjureBeanType):
94694
+ class timeseries_metadata_api_CreateSeriesMetadataRequest(ConjureBeanType):
94202
94695
 
94203
94696
  @builtins.classmethod
94204
94697
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94205
94698
  return {
94206
94699
  'channel': ConjureFieldDefinition('channel', api_Channel),
94207
- 'locator': ConjureFieldDefinition('locator', timeseries_logicalseries_api_Locator),
94208
- 'id_locator': ConjureFieldDefinition('idLocator', OptionalTypeWrapper[str]),
94209
94700
  'data_source_rid': ConjureFieldDefinition('dataSourceRid', api_rids_DataSourceRid),
94210
- 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
94701
+ 'locator': ConjureFieldDefinition('locator', timeseries_metadata_api_LocatorTemplate),
94211
94702
  'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[api_Unit]),
94212
- 'series_data_type': ConjureFieldDefinition('seriesDataType', OptionalTypeWrapper[api_SeriesDataType]),
94213
- 'granularity': ConjureFieldDefinition('granularity', OptionalTypeWrapper[api_Granularity]),
94214
- 'series_archetype_rid': ConjureFieldDefinition('seriesArchetypeRid', OptionalTypeWrapper[api_SeriesArchetypeRid])
94703
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
94704
+ 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue])
94215
94705
  }
94216
94706
 
94217
- __slots__: List[str] = ['_channel', '_locator', '_id_locator', '_data_source_rid', '_description', '_unit', '_series_data_type', '_granularity', '_series_archetype_rid']
94707
+ __slots__: List[str] = ['_channel', '_data_source_rid', '_locator', '_unit', '_description', '_tags']
94218
94708
 
94219
- def __init__(self, channel: str, data_source_rid: str, locator: "timeseries_logicalseries_api_Locator", description: Optional[str] = None, granularity: Optional["api_Granularity"] = None, id_locator: Optional[str] = None, series_archetype_rid: Optional[str] = None, series_data_type: Optional["api_SeriesDataType"] = None, unit: Optional[str] = None) -> None:
94709
+ def __init__(self, channel: str, data_source_rid: str, locator: "timeseries_metadata_api_LocatorTemplate", tags: Dict[str, str], description: Optional[str] = None, unit: Optional[str] = None) -> None:
94220
94710
  self._channel = channel
94221
- self._locator = locator
94222
- self._id_locator = id_locator
94223
94711
  self._data_source_rid = data_source_rid
94224
- self._description = description
94712
+ self._locator = locator
94225
94713
  self._unit = unit
94226
- self._series_data_type = series_data_type
94227
- self._granularity = granularity
94228
- self._series_archetype_rid = series_archetype_rid
94714
+ self._description = description
94715
+ self._tags = tags
94229
94716
 
94230
94717
  @builtins.property
94231
94718
  def channel(self) -> str:
94232
- return self._channel
94233
-
94234
- @builtins.property
94235
- def locator(self) -> "timeseries_logicalseries_api_Locator":
94236
- return self._locator
94237
-
94238
- @builtins.property
94239
- def id_locator(self) -> Optional[str]:
94240
- """If present, will be used as the locator of the LogicalSeriesRid. If a logical series already exists
94241
- with this id, will throw a CONFLICT.
94719
+ """This name should be unique amongst SeriesMetadata within the data source. All series created from this
94720
+ metadata will share this name.
94242
94721
  """
94243
- return self._id_locator
94722
+ return self._channel
94244
94723
 
94245
94724
  @builtins.property
94246
94725
  def data_source_rid(self) -> str:
94247
94726
  return self._data_source_rid
94248
94727
 
94249
94728
  @builtins.property
94250
- def description(self) -> Optional[str]:
94251
- return self._description
94729
+ def locator(self) -> "timeseries_metadata_api_LocatorTemplate":
94730
+ return self._locator
94252
94731
 
94253
94732
  @builtins.property
94254
94733
  def unit(self) -> Optional[str]:
94255
94734
  return self._unit
94256
94735
 
94257
94736
  @builtins.property
94258
- def series_data_type(self) -> Optional["api_SeriesDataType"]:
94259
- return self._series_data_type
94260
-
94261
- @builtins.property
94262
- def granularity(self) -> Optional["api_Granularity"]:
94263
- return self._granularity
94737
+ def description(self) -> Optional[str]:
94738
+ return self._description
94264
94739
 
94265
94740
  @builtins.property
94266
- def series_archetype_rid(self) -> Optional[str]:
94267
- """Deprecated. Do not use.
94741
+ def tags(self) -> Dict[str, str]:
94742
+ """Tags specified here will take precedence over tags specified in the RunDatasource, in the case that both specify the same TagName.
94268
94743
  """
94269
- return self._series_archetype_rid
94744
+ return self._tags
94270
94745
 
94271
94746
 
94272
- timeseries_logicalseries_api_CreateLogicalSeries.__name__ = "CreateLogicalSeries"
94273
- timeseries_logicalseries_api_CreateLogicalSeries.__qualname__ = "CreateLogicalSeries"
94274
- timeseries_logicalseries_api_CreateLogicalSeries.__module__ = "nominal_api.timeseries_logicalseries_api"
94747
+ timeseries_metadata_api_CreateSeriesMetadataRequest.__name__ = "CreateSeriesMetadataRequest"
94748
+ timeseries_metadata_api_CreateSeriesMetadataRequest.__qualname__ = "CreateSeriesMetadataRequest"
94749
+ timeseries_metadata_api_CreateSeriesMetadataRequest.__module__ = "nominal_api.timeseries_metadata_api"
94275
94750
 
94276
94751
 
94277
- class timeseries_logicalseries_api_Influx1Locator(ConjureBeanType):
94752
+ class timeseries_metadata_api_Influx1LocatorTemplate(ConjureBeanType):
94278
94753
 
94279
94754
  @builtins.classmethod
94280
94755
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -94282,17 +94757,15 @@ class timeseries_logicalseries_api_Influx1Locator(ConjureBeanType):
94282
94757
  'database': ConjureFieldDefinition('database', timeseries_logicalseries_api_DatabaseName),
94283
94758
  'measurement': ConjureFieldDefinition('measurement', timeseries_logicalseries_api_MeasurementName),
94284
94759
  'field': ConjureFieldDefinition('field', timeseries_logicalseries_api_FieldName),
94285
- 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue]),
94286
94760
  'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_InfluxType)
94287
94761
  }
94288
94762
 
94289
- __slots__: List[str] = ['_database', '_measurement', '_field', '_tags', '_type']
94763
+ __slots__: List[str] = ['_database', '_measurement', '_field', '_type']
94290
94764
 
94291
- def __init__(self, database: str, field: str, measurement: str, tags: Dict[str, str], type: "timeseries_logicalseries_api_InfluxType") -> None:
94765
+ def __init__(self, database: str, field: str, measurement: str, type: "timeseries_logicalseries_api_InfluxType") -> None:
94292
94766
  self._database = database
94293
94767
  self._measurement = measurement
94294
94768
  self._field = field
94295
- self._tags = tags
94296
94769
  self._type = type
94297
94770
 
94298
94771
  @builtins.property
@@ -94307,41 +94780,35 @@ class timeseries_logicalseries_api_Influx1Locator(ConjureBeanType):
94307
94780
  def field(self) -> str:
94308
94781
  return self._field
94309
94782
 
94310
- @builtins.property
94311
- def tags(self) -> Dict[str, str]:
94312
- return self._tags
94313
-
94314
94783
  @builtins.property
94315
94784
  def type(self) -> "timeseries_logicalseries_api_InfluxType":
94316
94785
  return self._type
94317
94786
 
94318
94787
 
94319
- timeseries_logicalseries_api_Influx1Locator.__name__ = "Influx1Locator"
94320
- timeseries_logicalseries_api_Influx1Locator.__qualname__ = "Influx1Locator"
94321
- timeseries_logicalseries_api_Influx1Locator.__module__ = "nominal_api.timeseries_logicalseries_api"
94788
+ timeseries_metadata_api_Influx1LocatorTemplate.__name__ = "Influx1LocatorTemplate"
94789
+ timeseries_metadata_api_Influx1LocatorTemplate.__qualname__ = "Influx1LocatorTemplate"
94790
+ timeseries_metadata_api_Influx1LocatorTemplate.__module__ = "nominal_api.timeseries_metadata_api"
94322
94791
 
94323
94792
 
94324
- class timeseries_logicalseries_api_Influx2Locator(ConjureBeanType):
94793
+ class timeseries_metadata_api_Influx2LocatorTemplate(ConjureBeanType):
94325
94794
 
94326
94795
  @builtins.classmethod
94327
94796
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94328
94797
  return {
94329
94798
  'bucket': ConjureFieldDefinition('bucket', timeseries_logicalseries_api_BucketName),
94330
94799
  'measurement': ConjureFieldDefinition('measurement', timeseries_logicalseries_api_MeasurementName),
94331
- 'field': ConjureFieldDefinition('field', timeseries_logicalseries_api_FieldName),
94332
94800
  'value_column': ConjureFieldDefinition('valueColumn', OptionalTypeWrapper[str]),
94333
- 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue]),
94801
+ 'field': ConjureFieldDefinition('field', timeseries_logicalseries_api_FieldName),
94334
94802
  'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_InfluxType)
94335
94803
  }
94336
94804
 
94337
- __slots__: List[str] = ['_bucket', '_measurement', '_field', '_value_column', '_tags', '_type']
94805
+ __slots__: List[str] = ['_bucket', '_measurement', '_value_column', '_field', '_type']
94338
94806
 
94339
- def __init__(self, bucket: str, field: str, measurement: str, tags: Dict[str, str], type: "timeseries_logicalseries_api_InfluxType", value_column: Optional[str] = None) -> None:
94807
+ def __init__(self, bucket: str, field: str, measurement: str, type: "timeseries_logicalseries_api_InfluxType", value_column: Optional[str] = None) -> None:
94340
94808
  self._bucket = bucket
94341
94809
  self._measurement = measurement
94342
- self._field = field
94343
94810
  self._value_column = value_column
94344
- self._tags = tags
94811
+ self._field = field
94345
94812
  self._type = type
94346
94813
 
94347
94814
  @builtins.property
@@ -94352,10 +94819,6 @@ class timeseries_logicalseries_api_Influx2Locator(ConjureBeanType):
94352
94819
  def measurement(self) -> str:
94353
94820
  return self._measurement
94354
94821
 
94355
- @builtins.property
94356
- def field(self) -> str:
94357
- return self._field
94358
-
94359
94822
  @builtins.property
94360
94823
  def value_column(self) -> Optional[str]:
94361
94824
  """If omitted, defaults to `_value`. Can be used to extract tag values.
@@ -94363,494 +94826,319 @@ class timeseries_logicalseries_api_Influx2Locator(ConjureBeanType):
94363
94826
  return self._value_column
94364
94827
 
94365
94828
  @builtins.property
94366
- def tags(self) -> Dict[str, str]:
94367
- return self._tags
94829
+ def field(self) -> str:
94830
+ return self._field
94368
94831
 
94369
94832
  @builtins.property
94370
94833
  def type(self) -> "timeseries_logicalseries_api_InfluxType":
94371
94834
  return self._type
94372
94835
 
94373
94836
 
94374
- timeseries_logicalseries_api_Influx2Locator.__name__ = "Influx2Locator"
94375
- timeseries_logicalseries_api_Influx2Locator.__qualname__ = "Influx2Locator"
94376
- timeseries_logicalseries_api_Influx2Locator.__module__ = "nominal_api.timeseries_logicalseries_api"
94377
-
94378
-
94379
- class timeseries_logicalseries_api_InfluxType(ConjureEnumType):
94380
-
94381
- BOOLEAN = 'BOOLEAN'
94382
- '''BOOLEAN'''
94383
- NUMERIC = 'NUMERIC'
94384
- '''NUMERIC'''
94385
- STRING = 'STRING'
94386
- '''STRING'''
94387
- UNKNOWN = 'UNKNOWN'
94388
- '''UNKNOWN'''
94389
-
94390
- def __reduce_ex__(self, proto):
94391
- return self.__class__, (self.name,)
94392
-
94393
-
94394
- timeseries_logicalseries_api_InfluxType.__name__ = "InfluxType"
94395
- timeseries_logicalseries_api_InfluxType.__qualname__ = "InfluxType"
94396
- timeseries_logicalseries_api_InfluxType.__module__ = "nominal_api.timeseries_logicalseries_api"
94837
+ timeseries_metadata_api_Influx2LocatorTemplate.__name__ = "Influx2LocatorTemplate"
94838
+ timeseries_metadata_api_Influx2LocatorTemplate.__qualname__ = "Influx2LocatorTemplate"
94839
+ timeseries_metadata_api_Influx2LocatorTemplate.__module__ = "nominal_api.timeseries_metadata_api"
94397
94840
 
94398
94841
 
94399
- class timeseries_logicalseries_api_Locator(ConjureUnionType):
94400
- _timescale_db_locator: Optional["timeseries_logicalseries_api_TimescaleDbLocator"] = None
94401
- _influx_locator: Optional["timeseries_logicalseries_api_Influx2Locator"] = None
94402
- _influx1_locator: Optional["timeseries_logicalseries_api_Influx1Locator"] = None
94403
- _nominal_locator: Optional["timeseries_logicalseries_api_NominalLocator"] = None
94404
- _timestream_locator: Optional["timeseries_logicalseries_api_TimestreamLocator"] = None
94405
- _visual_crossing_locator: Optional["timeseries_logicalseries_api_VisualCrossingLocator"] = None
94406
- _big_query_locator: Optional["timeseries_logicalseries_api_BigQueryLocator"] = None
94407
- _api_locator: Optional["timeseries_logicalseries_api_ApiLocator"] = None
94842
+ class timeseries_metadata_api_LocatorTemplate(ConjureUnionType):
94843
+ _timescale_db: Optional["timeseries_metadata_api_TimescaleDbLocatorTemplate"] = None
94844
+ _influx: Optional["timeseries_metadata_api_Influx2LocatorTemplate"] = None
94845
+ _influx1: Optional["timeseries_metadata_api_Influx1LocatorTemplate"] = None
94846
+ _nominal: Optional["timeseries_metadata_api_NominalLocatorTemplate"] = None
94847
+ _timestream: Optional["timeseries_metadata_api_TimestreamLocatorTemplate"] = None
94848
+ _visual_crossing: Optional["timeseries_metadata_api_VisualCrossingLocatorTemplate"] = None
94849
+ _big_query: Optional["timeseries_metadata_api_BigQueryLocatorTemplate"] = None
94850
+ _api: Optional["timeseries_metadata_api_ApiLocatorTemplate"] = None
94408
94851
 
94409
94852
  @builtins.classmethod
94410
94853
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
94411
94854
  return {
94412
- 'timescale_db_locator': ConjureFieldDefinition('timescaleDbLocator', timeseries_logicalseries_api_TimescaleDbLocator),
94413
- 'influx_locator': ConjureFieldDefinition('influxLocator', timeseries_logicalseries_api_Influx2Locator),
94414
- 'influx1_locator': ConjureFieldDefinition('influx1Locator', timeseries_logicalseries_api_Influx1Locator),
94415
- 'nominal_locator': ConjureFieldDefinition('nominalLocator', timeseries_logicalseries_api_NominalLocator),
94416
- 'timestream_locator': ConjureFieldDefinition('timestreamLocator', timeseries_logicalseries_api_TimestreamLocator),
94417
- 'visual_crossing_locator': ConjureFieldDefinition('visualCrossingLocator', timeseries_logicalseries_api_VisualCrossingLocator),
94418
- 'big_query_locator': ConjureFieldDefinition('bigQueryLocator', timeseries_logicalseries_api_BigQueryLocator),
94419
- 'api_locator': ConjureFieldDefinition('apiLocator', timeseries_logicalseries_api_ApiLocator)
94855
+ 'timescale_db': ConjureFieldDefinition('timescaleDb', timeseries_metadata_api_TimescaleDbLocatorTemplate),
94856
+ 'influx': ConjureFieldDefinition('influx', timeseries_metadata_api_Influx2LocatorTemplate),
94857
+ 'influx1': ConjureFieldDefinition('influx1', timeseries_metadata_api_Influx1LocatorTemplate),
94858
+ 'nominal': ConjureFieldDefinition('nominal', timeseries_metadata_api_NominalLocatorTemplate),
94859
+ 'timestream': ConjureFieldDefinition('timestream', timeseries_metadata_api_TimestreamLocatorTemplate),
94860
+ 'visual_crossing': ConjureFieldDefinition('visualCrossing', timeseries_metadata_api_VisualCrossingLocatorTemplate),
94861
+ 'big_query': ConjureFieldDefinition('bigQuery', timeseries_metadata_api_BigQueryLocatorTemplate),
94862
+ 'api': ConjureFieldDefinition('api', timeseries_metadata_api_ApiLocatorTemplate)
94420
94863
  }
94421
94864
 
94422
94865
  def __init__(
94423
94866
  self,
94424
- timescale_db_locator: Optional["timeseries_logicalseries_api_TimescaleDbLocator"] = None,
94425
- influx_locator: Optional["timeseries_logicalseries_api_Influx2Locator"] = None,
94426
- influx1_locator: Optional["timeseries_logicalseries_api_Influx1Locator"] = None,
94427
- nominal_locator: Optional["timeseries_logicalseries_api_NominalLocator"] = None,
94428
- timestream_locator: Optional["timeseries_logicalseries_api_TimestreamLocator"] = None,
94429
- visual_crossing_locator: Optional["timeseries_logicalseries_api_VisualCrossingLocator"] = None,
94430
- big_query_locator: Optional["timeseries_logicalseries_api_BigQueryLocator"] = None,
94431
- api_locator: Optional["timeseries_logicalseries_api_ApiLocator"] = None,
94867
+ timescale_db: Optional["timeseries_metadata_api_TimescaleDbLocatorTemplate"] = None,
94868
+ influx: Optional["timeseries_metadata_api_Influx2LocatorTemplate"] = None,
94869
+ influx1: Optional["timeseries_metadata_api_Influx1LocatorTemplate"] = None,
94870
+ nominal: Optional["timeseries_metadata_api_NominalLocatorTemplate"] = None,
94871
+ timestream: Optional["timeseries_metadata_api_TimestreamLocatorTemplate"] = None,
94872
+ visual_crossing: Optional["timeseries_metadata_api_VisualCrossingLocatorTemplate"] = None,
94873
+ big_query: Optional["timeseries_metadata_api_BigQueryLocatorTemplate"] = None,
94874
+ api: Optional["timeseries_metadata_api_ApiLocatorTemplate"] = None,
94432
94875
  type_of_union: Optional[str] = None
94433
94876
  ) -> None:
94434
94877
  if type_of_union is None:
94435
- if (timescale_db_locator is not None) + (influx_locator is not None) + (influx1_locator is not None) + (nominal_locator is not None) + (timestream_locator is not None) + (visual_crossing_locator is not None) + (big_query_locator is not None) + (api_locator is not None) != 1:
94878
+ if (timescale_db is not None) + (influx is not None) + (influx1 is not None) + (nominal is not None) + (timestream is not None) + (visual_crossing is not None) + (big_query is not None) + (api is not None) != 1:
94436
94879
  raise ValueError('a union must contain a single member')
94437
94880
 
94438
- if timescale_db_locator is not None:
94439
- self._timescale_db_locator = timescale_db_locator
94440
- self._type = 'timescaleDbLocator'
94441
- if influx_locator is not None:
94442
- self._influx_locator = influx_locator
94443
- self._type = 'influxLocator'
94444
- if influx1_locator is not None:
94445
- self._influx1_locator = influx1_locator
94446
- self._type = 'influx1Locator'
94447
- if nominal_locator is not None:
94448
- self._nominal_locator = nominal_locator
94449
- self._type = 'nominalLocator'
94450
- if timestream_locator is not None:
94451
- self._timestream_locator = timestream_locator
94452
- self._type = 'timestreamLocator'
94453
- if visual_crossing_locator is not None:
94454
- self._visual_crossing_locator = visual_crossing_locator
94455
- self._type = 'visualCrossingLocator'
94456
- if big_query_locator is not None:
94457
- self._big_query_locator = big_query_locator
94458
- self._type = 'bigQueryLocator'
94459
- if api_locator is not None:
94460
- self._api_locator = api_locator
94461
- self._type = 'apiLocator'
94881
+ if timescale_db is not None:
94882
+ self._timescale_db = timescale_db
94883
+ self._type = 'timescaleDb'
94884
+ if influx is not None:
94885
+ self._influx = influx
94886
+ self._type = 'influx'
94887
+ if influx1 is not None:
94888
+ self._influx1 = influx1
94889
+ self._type = 'influx1'
94890
+ if nominal is not None:
94891
+ self._nominal = nominal
94892
+ self._type = 'nominal'
94893
+ if timestream is not None:
94894
+ self._timestream = timestream
94895
+ self._type = 'timestream'
94896
+ if visual_crossing is not None:
94897
+ self._visual_crossing = visual_crossing
94898
+ self._type = 'visualCrossing'
94899
+ if big_query is not None:
94900
+ self._big_query = big_query
94901
+ self._type = 'bigQuery'
94902
+ if api is not None:
94903
+ self._api = api
94904
+ self._type = 'api'
94462
94905
 
94463
- elif type_of_union == 'timescaleDbLocator':
94464
- if timescale_db_locator is None:
94906
+ elif type_of_union == 'timescaleDb':
94907
+ if timescale_db is None:
94465
94908
  raise ValueError('a union value must not be None')
94466
- self._timescale_db_locator = timescale_db_locator
94467
- self._type = 'timescaleDbLocator'
94468
- elif type_of_union == 'influxLocator':
94469
- if influx_locator is None:
94909
+ self._timescale_db = timescale_db
94910
+ self._type = 'timescaleDb'
94911
+ elif type_of_union == 'influx':
94912
+ if influx is None:
94470
94913
  raise ValueError('a union value must not be None')
94471
- self._influx_locator = influx_locator
94472
- self._type = 'influxLocator'
94473
- elif type_of_union == 'influx1Locator':
94474
- if influx1_locator is None:
94914
+ self._influx = influx
94915
+ self._type = 'influx'
94916
+ elif type_of_union == 'influx1':
94917
+ if influx1 is None:
94475
94918
  raise ValueError('a union value must not be None')
94476
- self._influx1_locator = influx1_locator
94477
- self._type = 'influx1Locator'
94478
- elif type_of_union == 'nominalLocator':
94479
- if nominal_locator is None:
94919
+ self._influx1 = influx1
94920
+ self._type = 'influx1'
94921
+ elif type_of_union == 'nominal':
94922
+ if nominal is None:
94480
94923
  raise ValueError('a union value must not be None')
94481
- self._nominal_locator = nominal_locator
94482
- self._type = 'nominalLocator'
94483
- elif type_of_union == 'timestreamLocator':
94484
- if timestream_locator is None:
94924
+ self._nominal = nominal
94925
+ self._type = 'nominal'
94926
+ elif type_of_union == 'timestream':
94927
+ if timestream is None:
94485
94928
  raise ValueError('a union value must not be None')
94486
- self._timestream_locator = timestream_locator
94487
- self._type = 'timestreamLocator'
94488
- elif type_of_union == 'visualCrossingLocator':
94489
- if visual_crossing_locator is None:
94929
+ self._timestream = timestream
94930
+ self._type = 'timestream'
94931
+ elif type_of_union == 'visualCrossing':
94932
+ if visual_crossing is None:
94490
94933
  raise ValueError('a union value must not be None')
94491
- self._visual_crossing_locator = visual_crossing_locator
94492
- self._type = 'visualCrossingLocator'
94493
- elif type_of_union == 'bigQueryLocator':
94494
- if big_query_locator is None:
94934
+ self._visual_crossing = visual_crossing
94935
+ self._type = 'visualCrossing'
94936
+ elif type_of_union == 'bigQuery':
94937
+ if big_query is None:
94495
94938
  raise ValueError('a union value must not be None')
94496
- self._big_query_locator = big_query_locator
94497
- self._type = 'bigQueryLocator'
94498
- elif type_of_union == 'apiLocator':
94499
- if api_locator is None:
94939
+ self._big_query = big_query
94940
+ self._type = 'bigQuery'
94941
+ elif type_of_union == 'api':
94942
+ if api is None:
94500
94943
  raise ValueError('a union value must not be None')
94501
- self._api_locator = api_locator
94502
- self._type = 'apiLocator'
94503
-
94504
- @builtins.property
94505
- def timescale_db_locator(self) -> Optional["timeseries_logicalseries_api_TimescaleDbLocator"]:
94506
- return self._timescale_db_locator
94507
-
94508
- @builtins.property
94509
- def influx_locator(self) -> Optional["timeseries_logicalseries_api_Influx2Locator"]:
94510
- return self._influx_locator
94944
+ self._api = api
94945
+ self._type = 'api'
94511
94946
 
94512
94947
  @builtins.property
94513
- def influx1_locator(self) -> Optional["timeseries_logicalseries_api_Influx1Locator"]:
94514
- return self._influx1_locator
94948
+ def timescale_db(self) -> Optional["timeseries_metadata_api_TimescaleDbLocatorTemplate"]:
94949
+ return self._timescale_db
94515
94950
 
94516
94951
  @builtins.property
94517
- def nominal_locator(self) -> Optional["timeseries_logicalseries_api_NominalLocator"]:
94518
- return self._nominal_locator
94952
+ def influx(self) -> Optional["timeseries_metadata_api_Influx2LocatorTemplate"]:
94953
+ return self._influx
94519
94954
 
94520
94955
  @builtins.property
94521
- def timestream_locator(self) -> Optional["timeseries_logicalseries_api_TimestreamLocator"]:
94522
- return self._timestream_locator
94956
+ def influx1(self) -> Optional["timeseries_metadata_api_Influx1LocatorTemplate"]:
94957
+ return self._influx1
94523
94958
 
94524
94959
  @builtins.property
94525
- def visual_crossing_locator(self) -> Optional["timeseries_logicalseries_api_VisualCrossingLocator"]:
94526
- return self._visual_crossing_locator
94960
+ def nominal(self) -> Optional["timeseries_metadata_api_NominalLocatorTemplate"]:
94961
+ return self._nominal
94527
94962
 
94528
94963
  @builtins.property
94529
- def big_query_locator(self) -> Optional["timeseries_logicalseries_api_BigQueryLocator"]:
94530
- return self._big_query_locator
94964
+ def timestream(self) -> Optional["timeseries_metadata_api_TimestreamLocatorTemplate"]:
94965
+ return self._timestream
94531
94966
 
94532
94967
  @builtins.property
94533
- def api_locator(self) -> Optional["timeseries_logicalseries_api_ApiLocator"]:
94534
- return self._api_locator
94535
-
94536
- def accept(self, visitor) -> Any:
94537
- if not isinstance(visitor, timeseries_logicalseries_api_LocatorVisitor):
94538
- raise ValueError('{} is not an instance of timeseries_logicalseries_api_LocatorVisitor'.format(visitor.__class__.__name__))
94539
- if self._type == 'timescaleDbLocator' and self.timescale_db_locator is not None:
94540
- return visitor._timescale_db_locator(self.timescale_db_locator)
94541
- if self._type == 'influxLocator' and self.influx_locator is not None:
94542
- return visitor._influx_locator(self.influx_locator)
94543
- if self._type == 'influx1Locator' and self.influx1_locator is not None:
94544
- return visitor._influx1_locator(self.influx1_locator)
94545
- if self._type == 'nominalLocator' and self.nominal_locator is not None:
94546
- return visitor._nominal_locator(self.nominal_locator)
94547
- if self._type == 'timestreamLocator' and self.timestream_locator is not None:
94548
- return visitor._timestream_locator(self.timestream_locator)
94549
- if self._type == 'visualCrossingLocator' and self.visual_crossing_locator is not None:
94550
- return visitor._visual_crossing_locator(self.visual_crossing_locator)
94551
- if self._type == 'bigQueryLocator' and self.big_query_locator is not None:
94552
- return visitor._big_query_locator(self.big_query_locator)
94553
- if self._type == 'apiLocator' and self.api_locator is not None:
94554
- return visitor._api_locator(self.api_locator)
94968
+ def visual_crossing(self) -> Optional["timeseries_metadata_api_VisualCrossingLocatorTemplate"]:
94969
+ return self._visual_crossing
94555
94970
 
94971
+ @builtins.property
94972
+ def big_query(self) -> Optional["timeseries_metadata_api_BigQueryLocatorTemplate"]:
94973
+ return self._big_query
94556
94974
 
94557
- timeseries_logicalseries_api_Locator.__name__ = "Locator"
94558
- timeseries_logicalseries_api_Locator.__qualname__ = "Locator"
94559
- timeseries_logicalseries_api_Locator.__module__ = "nominal_api.timeseries_logicalseries_api"
94975
+ @builtins.property
94976
+ def api(self) -> Optional["timeseries_metadata_api_ApiLocatorTemplate"]:
94977
+ return self._api
94978
+
94979
+ def accept(self, visitor) -> Any:
94980
+ if not isinstance(visitor, timeseries_metadata_api_LocatorTemplateVisitor):
94981
+ raise ValueError('{} is not an instance of timeseries_metadata_api_LocatorTemplateVisitor'.format(visitor.__class__.__name__))
94982
+ if self._type == 'timescaleDb' and self.timescale_db is not None:
94983
+ return visitor._timescale_db(self.timescale_db)
94984
+ if self._type == 'influx' and self.influx is not None:
94985
+ return visitor._influx(self.influx)
94986
+ if self._type == 'influx1' and self.influx1 is not None:
94987
+ return visitor._influx1(self.influx1)
94988
+ if self._type == 'nominal' and self.nominal is not None:
94989
+ return visitor._nominal(self.nominal)
94990
+ if self._type == 'timestream' and self.timestream is not None:
94991
+ return visitor._timestream(self.timestream)
94992
+ if self._type == 'visualCrossing' and self.visual_crossing is not None:
94993
+ return visitor._visual_crossing(self.visual_crossing)
94994
+ if self._type == 'bigQuery' and self.big_query is not None:
94995
+ return visitor._big_query(self.big_query)
94996
+ if self._type == 'api' and self.api is not None:
94997
+ return visitor._api(self.api)
94560
94998
 
94561
94999
 
94562
- class timeseries_logicalseries_api_LocatorVisitor:
95000
+ timeseries_metadata_api_LocatorTemplate.__name__ = "LocatorTemplate"
95001
+ timeseries_metadata_api_LocatorTemplate.__qualname__ = "LocatorTemplate"
95002
+ timeseries_metadata_api_LocatorTemplate.__module__ = "nominal_api.timeseries_metadata_api"
95003
+
95004
+
95005
+ class timeseries_metadata_api_LocatorTemplateVisitor:
94563
95006
 
94564
95007
  @abstractmethod
94565
- def _timescale_db_locator(self, timescale_db_locator: "timeseries_logicalseries_api_TimescaleDbLocator") -> Any:
95008
+ def _timescale_db(self, timescale_db: "timeseries_metadata_api_TimescaleDbLocatorTemplate") -> Any:
94566
95009
  pass
94567
95010
 
94568
95011
  @abstractmethod
94569
- def _influx_locator(self, influx_locator: "timeseries_logicalseries_api_Influx2Locator") -> Any:
95012
+ def _influx(self, influx: "timeseries_metadata_api_Influx2LocatorTemplate") -> Any:
94570
95013
  pass
94571
95014
 
94572
95015
  @abstractmethod
94573
- def _influx1_locator(self, influx1_locator: "timeseries_logicalseries_api_Influx1Locator") -> Any:
95016
+ def _influx1(self, influx1: "timeseries_metadata_api_Influx1LocatorTemplate") -> Any:
94574
95017
  pass
94575
95018
 
94576
95019
  @abstractmethod
94577
- def _nominal_locator(self, nominal_locator: "timeseries_logicalseries_api_NominalLocator") -> Any:
95020
+ def _nominal(self, nominal: "timeseries_metadata_api_NominalLocatorTemplate") -> Any:
94578
95021
  pass
94579
95022
 
94580
95023
  @abstractmethod
94581
- def _timestream_locator(self, timestream_locator: "timeseries_logicalseries_api_TimestreamLocator") -> Any:
95024
+ def _timestream(self, timestream: "timeseries_metadata_api_TimestreamLocatorTemplate") -> Any:
94582
95025
  pass
94583
95026
 
94584
95027
  @abstractmethod
94585
- def _visual_crossing_locator(self, visual_crossing_locator: "timeseries_logicalseries_api_VisualCrossingLocator") -> Any:
95028
+ def _visual_crossing(self, visual_crossing: "timeseries_metadata_api_VisualCrossingLocatorTemplate") -> Any:
94586
95029
  pass
94587
95030
 
94588
95031
  @abstractmethod
94589
- def _big_query_locator(self, big_query_locator: "timeseries_logicalseries_api_BigQueryLocator") -> Any:
95032
+ def _big_query(self, big_query: "timeseries_metadata_api_BigQueryLocatorTemplate") -> Any:
94590
95033
  pass
94591
95034
 
94592
95035
  @abstractmethod
94593
- def _api_locator(self, api_locator: "timeseries_logicalseries_api_ApiLocator") -> Any:
95036
+ def _api(self, api: "timeseries_metadata_api_ApiLocatorTemplate") -> Any:
94594
95037
  pass
94595
95038
 
94596
95039
 
94597
- timeseries_logicalseries_api_LocatorVisitor.__name__ = "LocatorVisitor"
94598
- timeseries_logicalseries_api_LocatorVisitor.__qualname__ = "LocatorVisitor"
94599
- timeseries_logicalseries_api_LocatorVisitor.__module__ = "nominal_api.timeseries_logicalseries_api"
95040
+ timeseries_metadata_api_LocatorTemplateVisitor.__name__ = "LocatorTemplateVisitor"
95041
+ timeseries_metadata_api_LocatorTemplateVisitor.__qualname__ = "LocatorTemplateVisitor"
95042
+ timeseries_metadata_api_LocatorTemplateVisitor.__module__ = "nominal_api.timeseries_metadata_api"
94600
95043
 
94601
95044
 
94602
- class timeseries_logicalseries_api_LogicalSeries(ConjureBeanType):
95045
+ class timeseries_metadata_api_NominalLocatorTemplate(ConjureBeanType):
94603
95046
 
94604
95047
  @builtins.classmethod
94605
95048
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94606
95049
  return {
94607
- 'rid': ConjureFieldDefinition('rid', api_LogicalSeriesRid),
94608
- 'data_source_rid': ConjureFieldDefinition('dataSourceRid', api_rids_DataSourceRid),
94609
- 'locator': ConjureFieldDefinition('locator', timeseries_logicalseries_api_Locator),
94610
- 'time_locator': ConjureFieldDefinition('timeLocator', OptionalTypeWrapper[timeseries_logicalseries_api_Locator]),
94611
95050
  'channel': ConjureFieldDefinition('channel', api_Channel),
94612
- 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
94613
- 'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[api_Unit]),
94614
- 'series_data_type': ConjureFieldDefinition('seriesDataType', OptionalTypeWrapper[api_SeriesDataType]),
94615
- 'granularity': ConjureFieldDefinition('granularity', OptionalTypeWrapper[api_Granularity])
95051
+ 'type': ConjureFieldDefinition('type', storage_series_api_NominalDataType)
94616
95052
  }
94617
95053
 
94618
- __slots__: List[str] = ['_rid', '_data_source_rid', '_locator', '_time_locator', '_channel', '_description', '_unit', '_series_data_type', '_granularity']
95054
+ __slots__: List[str] = ['_channel', '_type']
94619
95055
 
94620
- def __init__(self, channel: str, data_source_rid: str, locator: "timeseries_logicalseries_api_Locator", rid: str, description: Optional[str] = None, granularity: Optional["api_Granularity"] = None, series_data_type: Optional["api_SeriesDataType"] = None, time_locator: Optional["timeseries_logicalseries_api_Locator"] = None, unit: Optional[str] = None) -> None:
94621
- self._rid = rid
94622
- self._data_source_rid = data_source_rid
94623
- self._locator = locator
94624
- self._time_locator = time_locator
95056
+ def __init__(self, channel: str, type: "storage_series_api_NominalDataType") -> None:
94625
95057
  self._channel = channel
94626
- self._description = description
94627
- self._unit = unit
94628
- self._series_data_type = series_data_type
94629
- self._granularity = granularity
94630
-
94631
- @builtins.property
94632
- def rid(self) -> str:
94633
- return self._rid
94634
-
94635
- @builtins.property
94636
- def data_source_rid(self) -> str:
94637
- return self._data_source_rid
94638
-
94639
- @builtins.property
94640
- def locator(self) -> "timeseries_logicalseries_api_Locator":
94641
- return self._locator
94642
-
94643
- @builtins.property
94644
- def time_locator(self) -> Optional["timeseries_logicalseries_api_Locator"]:
94645
- """Only required to be present for legacy CSVs.
94646
- """
94647
- return self._time_locator
95058
+ self._type = type
94648
95059
 
94649
95060
  @builtins.property
94650
95061
  def channel(self) -> str:
94651
95062
  return self._channel
94652
95063
 
94653
95064
  @builtins.property
94654
- def description(self) -> Optional[str]:
94655
- return self._description
94656
-
94657
- @builtins.property
94658
- def unit(self) -> Optional[str]:
94659
- return self._unit
94660
-
94661
- @builtins.property
94662
- def series_data_type(self) -> Optional["api_SeriesDataType"]:
94663
- return self._series_data_type
94664
-
94665
- @builtins.property
94666
- def granularity(self) -> Optional["api_Granularity"]:
94667
- """Time granularity of the series. If omitted, defaults to nanoseconds.
94668
- """
94669
- return self._granularity
95065
+ def type(self) -> "storage_series_api_NominalDataType":
95066
+ return self._type
94670
95067
 
94671
95068
 
94672
- timeseries_logicalseries_api_LogicalSeries.__name__ = "LogicalSeries"
94673
- timeseries_logicalseries_api_LogicalSeries.__qualname__ = "LogicalSeries"
94674
- timeseries_logicalseries_api_LogicalSeries.__module__ = "nominal_api.timeseries_logicalseries_api"
95069
+ timeseries_metadata_api_NominalLocatorTemplate.__name__ = "NominalLocatorTemplate"
95070
+ timeseries_metadata_api_NominalLocatorTemplate.__qualname__ = "NominalLocatorTemplate"
95071
+ timeseries_metadata_api_NominalLocatorTemplate.__module__ = "nominal_api.timeseries_metadata_api"
94675
95072
 
94676
95073
 
94677
- class timeseries_logicalseries_api_NominalLocator(ConjureBeanType):
95074
+ class timeseries_metadata_api_SeriesMetadata(ConjureBeanType):
94678
95075
 
94679
95076
  @builtins.classmethod
94680
95077
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94681
95078
  return {
95079
+ 'rid': ConjureFieldDefinition('rid', api_SeriesMetadataRid),
94682
95080
  'channel': ConjureFieldDefinition('channel', api_Channel),
95081
+ 'data_source_rid': ConjureFieldDefinition('dataSourceRid', api_rids_DataSourceRid),
95082
+ 'locator': ConjureFieldDefinition('locator', timeseries_metadata_api_LocatorTemplate),
95083
+ 'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[api_Unit]),
95084
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
94683
95085
  'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue]),
94684
- 'type': ConjureFieldDefinition('type', storage_series_api_NominalDataType)
95086
+ 'series_data_type': ConjureFieldDefinition('seriesDataType', OptionalTypeWrapper[api_SeriesDataType])
94685
95087
  }
94686
95088
 
94687
- __slots__: List[str] = ['_channel', '_tags', '_type']
95089
+ __slots__: List[str] = ['_rid', '_channel', '_data_source_rid', '_locator', '_unit', '_description', '_tags', '_series_data_type']
94688
95090
 
94689
- def __init__(self, channel: str, tags: Dict[str, str], type: "storage_series_api_NominalDataType") -> None:
95091
+ def __init__(self, channel: str, data_source_rid: str, locator: "timeseries_metadata_api_LocatorTemplate", rid: str, tags: Dict[str, str], description: Optional[str] = None, series_data_type: Optional["api_SeriesDataType"] = None, unit: Optional[str] = None) -> None:
95092
+ self._rid = rid
94690
95093
  self._channel = channel
95094
+ self._data_source_rid = data_source_rid
95095
+ self._locator = locator
95096
+ self._unit = unit
95097
+ self._description = description
94691
95098
  self._tags = tags
94692
- self._type = type
94693
-
94694
- @builtins.property
94695
- def channel(self) -> str:
94696
- return self._channel
95099
+ self._series_data_type = series_data_type
94697
95100
 
94698
95101
  @builtins.property
94699
- def tags(self) -> Dict[str, str]:
94700
- return self._tags
95102
+ def rid(self) -> str:
95103
+ return self._rid
94701
95104
 
94702
95105
  @builtins.property
94703
- def type(self) -> "storage_series_api_NominalDataType":
94704
- return self._type
94705
-
94706
-
94707
- timeseries_logicalseries_api_NominalLocator.__name__ = "NominalLocator"
94708
- timeseries_logicalseries_api_NominalLocator.__qualname__ = "NominalLocator"
94709
- timeseries_logicalseries_api_NominalLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
94710
-
94711
-
94712
- class timeseries_logicalseries_api_ResolveSeriesError(ConjureBeanType):
94713
-
94714
- @builtins.classmethod
94715
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94716
- return {
94717
- 'message': ConjureFieldDefinition('message', str),
94718
- 'args': ConjureFieldDefinition('args', Dict[str, str])
94719
- }
94720
-
94721
- __slots__: List[str] = ['_message', '_args']
94722
-
94723
- def __init__(self, args: Dict[str, str], message: str) -> None:
94724
- self._message = message
94725
- self._args = args
95106
+ def channel(self) -> str:
95107
+ return self._channel
94726
95108
 
94727
95109
  @builtins.property
94728
- def message(self) -> str:
94729
- return self._message
95110
+ def data_source_rid(self) -> str:
95111
+ return self._data_source_rid
94730
95112
 
94731
95113
  @builtins.property
94732
- def args(self) -> Dict[str, str]:
94733
- return self._args
94734
-
94735
-
94736
- timeseries_logicalseries_api_ResolveSeriesError.__name__ = "ResolveSeriesError"
94737
- timeseries_logicalseries_api_ResolveSeriesError.__qualname__ = "ResolveSeriesError"
94738
- timeseries_logicalseries_api_ResolveSeriesError.__module__ = "nominal_api.timeseries_logicalseries_api"
94739
-
94740
-
94741
- class timeseries_logicalseries_api_ResolveSeriesRequest(ConjureBeanType):
94742
-
94743
- @builtins.classmethod
94744
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94745
- return {
94746
- 'name': ConjureFieldDefinition('name', api_Channel),
94747
- 'datasource': ConjureFieldDefinition('datasource', api_rids_DataSourceRid),
94748
- 'tags': ConjureFieldDefinition('tags', Dict[api_TagName, api_TagValue])
94749
- }
94750
-
94751
- __slots__: List[str] = ['_name', '_datasource', '_tags']
94752
-
94753
- def __init__(self, datasource: str, name: str, tags: Dict[str, str]) -> None:
94754
- self._name = name
94755
- self._datasource = datasource
94756
- self._tags = tags
95114
+ def locator(self) -> "timeseries_metadata_api_LocatorTemplate":
95115
+ return self._locator
94757
95116
 
94758
95117
  @builtins.property
94759
- def name(self) -> str:
94760
- return self._name
95118
+ def unit(self) -> Optional[str]:
95119
+ return self._unit
94761
95120
 
94762
95121
  @builtins.property
94763
- def datasource(self) -> str:
94764
- return self._datasource
95122
+ def description(self) -> Optional[str]:
95123
+ return self._description
94765
95124
 
94766
95125
  @builtins.property
94767
95126
  def tags(self) -> Dict[str, str]:
95127
+ """Tags specified here will take precedence over tags specified in the RunDatasource, in the case that both specify the same TagName.
95128
+ """
94768
95129
  return self._tags
94769
95130
 
94770
-
94771
- timeseries_logicalseries_api_ResolveSeriesRequest.__name__ = "ResolveSeriesRequest"
94772
- timeseries_logicalseries_api_ResolveSeriesRequest.__qualname__ = "ResolveSeriesRequest"
94773
- timeseries_logicalseries_api_ResolveSeriesRequest.__module__ = "nominal_api.timeseries_logicalseries_api"
94774
-
94775
-
94776
- class timeseries_logicalseries_api_ResolveSeriesResponse(ConjureUnionType):
94777
- _rid: Optional[str] = None
94778
- _error: Optional["timeseries_logicalseries_api_ResolveSeriesError"] = None
94779
-
94780
- @builtins.classmethod
94781
- def _options(cls) -> Dict[str, ConjureFieldDefinition]:
94782
- return {
94783
- 'rid': ConjureFieldDefinition('rid', api_LogicalSeriesRid),
94784
- 'error': ConjureFieldDefinition('error', timeseries_logicalseries_api_ResolveSeriesError)
94785
- }
94786
-
94787
- def __init__(
94788
- self,
94789
- rid: Optional[str] = None,
94790
- error: Optional["timeseries_logicalseries_api_ResolveSeriesError"] = None,
94791
- type_of_union: Optional[str] = None
94792
- ) -> None:
94793
- if type_of_union is None:
94794
- if (rid is not None) + (error is not None) != 1:
94795
- raise ValueError('a union must contain a single member')
94796
-
94797
- if rid is not None:
94798
- self._rid = rid
94799
- self._type = 'rid'
94800
- if error is not None:
94801
- self._error = error
94802
- self._type = 'error'
94803
-
94804
- elif type_of_union == 'rid':
94805
- if rid is None:
94806
- raise ValueError('a union value must not be None')
94807
- self._rid = rid
94808
- self._type = 'rid'
94809
- elif type_of_union == 'error':
94810
- if error is None:
94811
- raise ValueError('a union value must not be None')
94812
- self._error = error
94813
- self._type = 'error'
94814
-
94815
- @builtins.property
94816
- def rid(self) -> Optional[str]:
94817
- return self._rid
94818
-
94819
95131
  @builtins.property
94820
- def error(self) -> Optional["timeseries_logicalseries_api_ResolveSeriesError"]:
94821
- return self._error
94822
-
94823
- def accept(self, visitor) -> Any:
94824
- if not isinstance(visitor, timeseries_logicalseries_api_ResolveSeriesResponseVisitor):
94825
- raise ValueError('{} is not an instance of timeseries_logicalseries_api_ResolveSeriesResponseVisitor'.format(visitor.__class__.__name__))
94826
- if self._type == 'rid' and self.rid is not None:
94827
- return visitor._rid(self.rid)
94828
- if self._type == 'error' and self.error is not None:
94829
- return visitor._error(self.error)
94830
-
94831
-
94832
- timeseries_logicalseries_api_ResolveSeriesResponse.__name__ = "ResolveSeriesResponse"
94833
- timeseries_logicalseries_api_ResolveSeriesResponse.__qualname__ = "ResolveSeriesResponse"
94834
- timeseries_logicalseries_api_ResolveSeriesResponse.__module__ = "nominal_api.timeseries_logicalseries_api"
94835
-
94836
-
94837
- class timeseries_logicalseries_api_ResolveSeriesResponseVisitor:
94838
-
94839
- @abstractmethod
94840
- def _rid(self, rid: str) -> Any:
94841
- pass
94842
-
94843
- @abstractmethod
94844
- def _error(self, error: "timeseries_logicalseries_api_ResolveSeriesError") -> Any:
94845
- pass
95132
+ def series_data_type(self) -> Optional["api_SeriesDataType"]:
95133
+ return self._series_data_type
94846
95134
 
94847
95135
 
94848
- timeseries_logicalseries_api_ResolveSeriesResponseVisitor.__name__ = "ResolveSeriesResponseVisitor"
94849
- timeseries_logicalseries_api_ResolveSeriesResponseVisitor.__qualname__ = "ResolveSeriesResponseVisitor"
94850
- timeseries_logicalseries_api_ResolveSeriesResponseVisitor.__module__ = "nominal_api.timeseries_logicalseries_api"
95136
+ timeseries_metadata_api_SeriesMetadata.__name__ = "SeriesMetadata"
95137
+ timeseries_metadata_api_SeriesMetadata.__qualname__ = "SeriesMetadata"
95138
+ timeseries_metadata_api_SeriesMetadata.__module__ = "nominal_api.timeseries_metadata_api"
94851
95139
 
94852
95140
 
94853
- class timeseries_logicalseries_api_TimescaleDbLocator(ConjureBeanType):
95141
+ class timeseries_metadata_api_TimescaleDbLocatorTemplate(ConjureBeanType):
94854
95142
 
94855
95143
  @builtins.classmethod
94856
95144
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -94859,18 +95147,16 @@ class timeseries_logicalseries_api_TimescaleDbLocator(ConjureBeanType):
94859
95147
  'schema': ConjureFieldDefinition('schema', timeseries_logicalseries_api_SchemaName),
94860
95148
  'column': ConjureFieldDefinition('column', timeseries_logicalseries_api_ColumnName),
94861
95149
  'time_column': ConjureFieldDefinition('timeColumn', timeseries_logicalseries_api_ColumnName),
94862
- 'dimensions': ConjureFieldDefinition('dimensions', Dict[api_TagName, api_TagValue]),
94863
95150
  'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_TimescaleType)
94864
95151
  }
94865
95152
 
94866
- __slots__: List[str] = ['_table', '_schema', '_column', '_time_column', '_dimensions', '_type']
95153
+ __slots__: List[str] = ['_table', '_schema', '_column', '_time_column', '_type']
94867
95154
 
94868
- def __init__(self, column: str, dimensions: Dict[str, str], schema: str, table: str, time_column: str, type: "timeseries_logicalseries_api_TimescaleType") -> None:
95155
+ def __init__(self, column: str, schema: str, table: str, time_column: str, type: "timeseries_logicalseries_api_TimescaleType") -> None:
94869
95156
  self._table = table
94870
95157
  self._schema = schema
94871
95158
  self._column = column
94872
95159
  self._time_column = time_column
94873
- self._dimensions = dimensions
94874
95160
  self._type = type
94875
95161
 
94876
95162
  @builtins.property
@@ -94889,57 +95175,31 @@ class timeseries_logicalseries_api_TimescaleDbLocator(ConjureBeanType):
94889
95175
  def time_column(self) -> str:
94890
95176
  return self._time_column
94891
95177
 
94892
- @builtins.property
94893
- def dimensions(self) -> Dict[str, str]:
94894
- return self._dimensions
94895
-
94896
95178
  @builtins.property
94897
95179
  def type(self) -> "timeseries_logicalseries_api_TimescaleType":
94898
95180
  return self._type
94899
95181
 
94900
95182
 
94901
- timeseries_logicalseries_api_TimescaleDbLocator.__name__ = "TimescaleDbLocator"
94902
- timeseries_logicalseries_api_TimescaleDbLocator.__qualname__ = "TimescaleDbLocator"
94903
- timeseries_logicalseries_api_TimescaleDbLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
94904
-
94905
-
94906
- class timeseries_logicalseries_api_TimescaleType(ConjureEnumType):
94907
-
94908
- BOOLEAN = 'BOOLEAN'
94909
- '''BOOLEAN'''
94910
- DOUBLE = 'DOUBLE'
94911
- '''DOUBLE'''
94912
- STRING = 'STRING'
94913
- '''STRING'''
94914
- UNKNOWN = 'UNKNOWN'
94915
- '''UNKNOWN'''
94916
-
94917
- def __reduce_ex__(self, proto):
94918
- return self.__class__, (self.name,)
94919
-
94920
-
94921
- timeseries_logicalseries_api_TimescaleType.__name__ = "TimescaleType"
94922
- timeseries_logicalseries_api_TimescaleType.__qualname__ = "TimescaleType"
94923
- timeseries_logicalseries_api_TimescaleType.__module__ = "nominal_api.timeseries_logicalseries_api"
95183
+ timeseries_metadata_api_TimescaleDbLocatorTemplate.__name__ = "TimescaleDbLocatorTemplate"
95184
+ timeseries_metadata_api_TimescaleDbLocatorTemplate.__qualname__ = "TimescaleDbLocatorTemplate"
95185
+ timeseries_metadata_api_TimescaleDbLocatorTemplate.__module__ = "nominal_api.timeseries_metadata_api"
94924
95186
 
94925
95187
 
94926
- class timeseries_logicalseries_api_TimestreamLocator(ConjureBeanType):
95188
+ class timeseries_metadata_api_TimestreamLocatorTemplate(ConjureBeanType):
94927
95189
 
94928
95190
  @builtins.classmethod
94929
95191
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
94930
95192
  return {
94931
95193
  'table': ConjureFieldDefinition('table', timeseries_logicalseries_api_TableName),
94932
- 'dimensions': ConjureFieldDefinition('dimensions', Dict[api_TagName, api_TagValue]),
94933
95194
  'measure': ConjureFieldDefinition('measure', timeseries_logicalseries_api_MeasureName),
94934
95195
  'attribute': ConjureFieldDefinition('attribute', OptionalTypeWrapper[timeseries_logicalseries_api_AttributeName]),
94935
95196
  'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_TimestreamType)
94936
95197
  }
94937
95198
 
94938
- __slots__: List[str] = ['_table', '_dimensions', '_measure', '_attribute', '_type']
95199
+ __slots__: List[str] = ['_table', '_measure', '_attribute', '_type']
94939
95200
 
94940
- def __init__(self, dimensions: Dict[str, str], measure: str, table: str, type: "timeseries_logicalseries_api_TimestreamType", attribute: Optional[str] = None) -> None:
95201
+ def __init__(self, measure: str, table: str, type: "timeseries_logicalseries_api_TimestreamType", attribute: Optional[str] = None) -> None:
94941
95202
  self._table = table
94942
- self._dimensions = dimensions
94943
95203
  self._measure = measure
94944
95204
  self._attribute = attribute
94945
95205
  self._type = type
@@ -94948,18 +95208,12 @@ class timeseries_logicalseries_api_TimestreamLocator(ConjureBeanType):
94948
95208
  def table(self) -> str:
94949
95209
  return self._table
94950
95210
 
94951
- @builtins.property
94952
- def dimensions(self) -> Dict[str, str]:
94953
- return self._dimensions
94954
-
94955
95211
  @builtins.property
94956
95212
  def measure(self) -> str:
94957
95213
  return self._measure
94958
95214
 
94959
95215
  @builtins.property
94960
95216
  def attribute(self) -> Optional[str]:
94961
- """If present, will be the attribute within the measurement for multi-measures.
94962
- """
94963
95217
  return self._attribute
94964
95218
 
94965
95219
  @builtins.property
@@ -94967,134 +95221,29 @@ class timeseries_logicalseries_api_TimestreamLocator(ConjureBeanType):
94967
95221
  return self._type
94968
95222
 
94969
95223
 
94970
- timeseries_logicalseries_api_TimestreamLocator.__name__ = "TimestreamLocator"
94971
- timeseries_logicalseries_api_TimestreamLocator.__qualname__ = "TimestreamLocator"
94972
- timeseries_logicalseries_api_TimestreamLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
94973
-
94974
-
94975
- class timeseries_logicalseries_api_TimestreamType(ConjureEnumType):
94976
-
94977
- DOUBLE = 'DOUBLE'
94978
- '''DOUBLE'''
94979
- STRING = 'STRING'
94980
- '''STRING'''
94981
- UNKNOWN = 'UNKNOWN'
94982
- '''UNKNOWN'''
94983
-
94984
- def __reduce_ex__(self, proto):
94985
- return self.__class__, (self.name,)
94986
-
94987
-
94988
- timeseries_logicalseries_api_TimestreamType.__name__ = "TimestreamType"
94989
- timeseries_logicalseries_api_TimestreamType.__qualname__ = "TimestreamType"
94990
- timeseries_logicalseries_api_TimestreamType.__module__ = "nominal_api.timeseries_logicalseries_api"
95224
+ timeseries_metadata_api_TimestreamLocatorTemplate.__name__ = "TimestreamLocatorTemplate"
95225
+ timeseries_metadata_api_TimestreamLocatorTemplate.__qualname__ = "TimestreamLocatorTemplate"
95226
+ timeseries_metadata_api_TimestreamLocatorTemplate.__module__ = "nominal_api.timeseries_metadata_api"
94991
95227
 
94992
95228
 
94993
- class timeseries_logicalseries_api_UnitUpdate(ConjureUnionType):
94994
- """UnitUpdate is used to either set a unit, or to clear an existing unit.
95229
+ class timeseries_metadata_api_UpdateSeriesMetadataRequest(ConjureBeanType):
95230
+ """If fields are present, will override existing values.
94995
95231
  """
94996
- _unit: Optional[str] = None
94997
- _clear_unit: Optional["api_Empty"] = None
94998
-
94999
- @builtins.classmethod
95000
- def _options(cls) -> Dict[str, ConjureFieldDefinition]:
95001
- return {
95002
- 'unit': ConjureFieldDefinition('unit', api_Unit),
95003
- 'clear_unit': ConjureFieldDefinition('clearUnit', api_Empty)
95004
- }
95005
-
95006
- def __init__(
95007
- self,
95008
- unit: Optional[str] = None,
95009
- clear_unit: Optional["api_Empty"] = None,
95010
- type_of_union: Optional[str] = None
95011
- ) -> None:
95012
- if type_of_union is None:
95013
- if (unit is not None) + (clear_unit is not None) != 1:
95014
- raise ValueError('a union must contain a single member')
95015
-
95016
- if unit is not None:
95017
- self._unit = unit
95018
- self._type = 'unit'
95019
- if clear_unit is not None:
95020
- self._clear_unit = clear_unit
95021
- self._type = 'clearUnit'
95022
-
95023
- elif type_of_union == 'unit':
95024
- if unit is None:
95025
- raise ValueError('a union value must not be None')
95026
- self._unit = unit
95027
- self._type = 'unit'
95028
- elif type_of_union == 'clearUnit':
95029
- if clear_unit is None:
95030
- raise ValueError('a union value must not be None')
95031
- self._clear_unit = clear_unit
95032
- self._type = 'clearUnit'
95033
-
95034
- @builtins.property
95035
- def unit(self) -> Optional[str]:
95036
- return self._unit
95037
-
95038
- @builtins.property
95039
- def clear_unit(self) -> Optional["api_Empty"]:
95040
- return self._clear_unit
95041
-
95042
- def accept(self, visitor) -> Any:
95043
- if not isinstance(visitor, timeseries_logicalseries_api_UnitUpdateVisitor):
95044
- raise ValueError('{} is not an instance of timeseries_logicalseries_api_UnitUpdateVisitor'.format(visitor.__class__.__name__))
95045
- if self._type == 'unit' and self.unit is not None:
95046
- return visitor._unit(self.unit)
95047
- if self._type == 'clearUnit' and self.clear_unit is not None:
95048
- return visitor._clear_unit(self.clear_unit)
95049
-
95050
-
95051
- timeseries_logicalseries_api_UnitUpdate.__name__ = "UnitUpdate"
95052
- timeseries_logicalseries_api_UnitUpdate.__qualname__ = "UnitUpdate"
95053
- timeseries_logicalseries_api_UnitUpdate.__module__ = "nominal_api.timeseries_logicalseries_api"
95054
-
95055
-
95056
- class timeseries_logicalseries_api_UnitUpdateVisitor:
95057
-
95058
- @abstractmethod
95059
- def _unit(self, unit: str) -> Any:
95060
- pass
95061
-
95062
- @abstractmethod
95063
- def _clear_unit(self, clear_unit: "api_Empty") -> Any:
95064
- pass
95065
-
95066
-
95067
- timeseries_logicalseries_api_UnitUpdateVisitor.__name__ = "UnitUpdateVisitor"
95068
- timeseries_logicalseries_api_UnitUpdateVisitor.__qualname__ = "UnitUpdateVisitor"
95069
- timeseries_logicalseries_api_UnitUpdateVisitor.__module__ = "nominal_api.timeseries_logicalseries_api"
95070
-
95071
-
95072
- class timeseries_logicalseries_api_UpdateLogicalSeries(ConjureBeanType):
95073
95232
 
95074
95233
  @builtins.classmethod
95075
95234
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
95076
95235
  return {
95077
- 'logical_series_rid': ConjureFieldDefinition('logicalSeriesRid', api_LogicalSeriesRid),
95078
- 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
95079
95236
  'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[api_Unit]),
95080
- 'unit_update': ConjureFieldDefinition('unitUpdate', OptionalTypeWrapper[timeseries_logicalseries_api_UnitUpdate])
95237
+ 'unit_update': ConjureFieldDefinition('unitUpdate', OptionalTypeWrapper[timeseries_logicalseries_api_UnitUpdate]),
95238
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str])
95081
95239
  }
95082
95240
 
95083
- __slots__: List[str] = ['_logical_series_rid', '_description', '_unit', '_unit_update']
95241
+ __slots__: List[str] = ['_unit', '_unit_update', '_description']
95084
95242
 
95085
- def __init__(self, logical_series_rid: str, description: Optional[str] = None, unit: Optional[str] = None, unit_update: Optional["timeseries_logicalseries_api_UnitUpdate"] = None) -> None:
95086
- self._logical_series_rid = logical_series_rid
95087
- self._description = description
95243
+ def __init__(self, description: Optional[str] = None, unit: Optional[str] = None, unit_update: Optional["timeseries_logicalseries_api_UnitUpdate"] = None) -> None:
95088
95244
  self._unit = unit
95089
95245
  self._unit_update = unit_update
95090
-
95091
- @builtins.property
95092
- def logical_series_rid(self) -> str:
95093
- return self._logical_series_rid
95094
-
95095
- @builtins.property
95096
- def description(self) -> Optional[str]:
95097
- return self._description
95246
+ self._description = description
95098
95247
 
95099
95248
  @builtins.property
95100
95249
  def unit(self) -> Optional[str]:
@@ -95104,92 +95253,51 @@ class timeseries_logicalseries_api_UpdateLogicalSeries(ConjureBeanType):
95104
95253
  def unit_update(self) -> Optional["timeseries_logicalseries_api_UnitUpdate"]:
95105
95254
  return self._unit_update
95106
95255
 
95107
-
95108
- timeseries_logicalseries_api_UpdateLogicalSeries.__name__ = "UpdateLogicalSeries"
95109
- timeseries_logicalseries_api_UpdateLogicalSeries.__qualname__ = "UpdateLogicalSeries"
95110
- timeseries_logicalseries_api_UpdateLogicalSeries.__module__ = "nominal_api.timeseries_logicalseries_api"
95111
-
95112
-
95113
- class timeseries_logicalseries_api_VisualCrossingEndpointUri(ConjureEnumType):
95114
-
95115
- HISTORY = 'HISTORY'
95116
- '''HISTORY'''
95117
- TIMELINE = 'TIMELINE'
95118
- '''TIMELINE'''
95119
- UNKNOWN = 'UNKNOWN'
95120
- '''UNKNOWN'''
95121
-
95122
- def __reduce_ex__(self, proto):
95123
- return self.__class__, (self.name,)
95256
+ @builtins.property
95257
+ def description(self) -> Optional[str]:
95258
+ return self._description
95124
95259
 
95125
95260
 
95126
- timeseries_logicalseries_api_VisualCrossingEndpointUri.__name__ = "VisualCrossingEndpointUri"
95127
- timeseries_logicalseries_api_VisualCrossingEndpointUri.__qualname__ = "VisualCrossingEndpointUri"
95128
- timeseries_logicalseries_api_VisualCrossingEndpointUri.__module__ = "nominal_api.timeseries_logicalseries_api"
95261
+ timeseries_metadata_api_UpdateSeriesMetadataRequest.__name__ = "UpdateSeriesMetadataRequest"
95262
+ timeseries_metadata_api_UpdateSeriesMetadataRequest.__qualname__ = "UpdateSeriesMetadataRequest"
95263
+ timeseries_metadata_api_UpdateSeriesMetadataRequest.__module__ = "nominal_api.timeseries_metadata_api"
95129
95264
 
95130
95265
 
95131
- class timeseries_logicalseries_api_VisualCrossingLocator(ConjureBeanType):
95266
+ class timeseries_metadata_api_VisualCrossingLocatorTemplate(ConjureBeanType):
95132
95267
 
95133
95268
  @builtins.classmethod
95134
95269
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
95135
95270
  return {
95136
- 'location': ConjureFieldDefinition('location', timeseries_logicalseries_api_LocationName),
95137
- 'endpoint': ConjureFieldDefinition('endpoint', OptionalTypeWrapper[timeseries_logicalseries_api_VisualCrossingEndpointUri]),
95138
95271
  'field': ConjureFieldDefinition('field', timeseries_logicalseries_api_FieldName),
95272
+ 'endpoint': ConjureFieldDefinition('endpoint', OptionalTypeWrapper[timeseries_logicalseries_api_VisualCrossingEndpointUri]),
95139
95273
  'type': ConjureFieldDefinition('type', timeseries_logicalseries_api_VisualCrossingType)
95140
95274
  }
95141
95275
 
95142
- __slots__: List[str] = ['_location', '_endpoint', '_field', '_type']
95276
+ __slots__: List[str] = ['_field', '_endpoint', '_type']
95143
95277
 
95144
- def __init__(self, field: str, location: str, type: "timeseries_logicalseries_api_VisualCrossingType", endpoint: Optional["timeseries_logicalseries_api_VisualCrossingEndpointUri"] = None) -> None:
95145
- self._location = location
95146
- self._endpoint = endpoint
95278
+ def __init__(self, field: str, type: "timeseries_logicalseries_api_VisualCrossingType", endpoint: Optional["timeseries_logicalseries_api_VisualCrossingEndpointUri"] = None) -> None:
95147
95279
  self._field = field
95280
+ self._endpoint = endpoint
95148
95281
  self._type = type
95149
95282
 
95150
95283
  @builtins.property
95151
- def location(self) -> str:
95152
- """Location to fetch data from. Can be any arbitrary string (i.e. name, abbreviation,
95153
- zip code, lat/long, etc.) as remote endpoint performs location resolution.
95154
- """
95155
- return self._location
95284
+ def field(self) -> str:
95285
+ return self._field
95156
95286
 
95157
95287
  @builtins.property
95158
95288
  def endpoint(self) -> Optional["timeseries_logicalseries_api_VisualCrossingEndpointUri"]:
95159
- """Defaults to HISTORY. Endpoint to fetch data from for this series.
95289
+ """Defaults to HISTORY.
95160
95290
  """
95161
95291
  return self._endpoint
95162
95292
 
95163
- @builtins.property
95164
- def field(self) -> str:
95165
- return self._field
95166
-
95167
95293
  @builtins.property
95168
95294
  def type(self) -> "timeseries_logicalseries_api_VisualCrossingType":
95169
95295
  return self._type
95170
95296
 
95171
95297
 
95172
- timeseries_logicalseries_api_VisualCrossingLocator.__name__ = "VisualCrossingLocator"
95173
- timeseries_logicalseries_api_VisualCrossingLocator.__qualname__ = "VisualCrossingLocator"
95174
- timeseries_logicalseries_api_VisualCrossingLocator.__module__ = "nominal_api.timeseries_logicalseries_api"
95175
-
95176
-
95177
- class timeseries_logicalseries_api_VisualCrossingType(ConjureEnumType):
95178
-
95179
- DOUBLE = 'DOUBLE'
95180
- '''DOUBLE'''
95181
- STRING = 'STRING'
95182
- '''STRING'''
95183
- UNKNOWN = 'UNKNOWN'
95184
- '''UNKNOWN'''
95185
-
95186
- def __reduce_ex__(self, proto):
95187
- return self.__class__, (self.name,)
95188
-
95189
-
95190
- timeseries_logicalseries_api_VisualCrossingType.__name__ = "VisualCrossingType"
95191
- timeseries_logicalseries_api_VisualCrossingType.__qualname__ = "VisualCrossingType"
95192
- timeseries_logicalseries_api_VisualCrossingType.__module__ = "nominal_api.timeseries_logicalseries_api"
95298
+ timeseries_metadata_api_VisualCrossingLocatorTemplate.__name__ = "VisualCrossingLocatorTemplate"
95299
+ timeseries_metadata_api_VisualCrossingLocatorTemplate.__qualname__ = "VisualCrossingLocatorTemplate"
95300
+ timeseries_metadata_api_VisualCrossingLocatorTemplate.__module__ = "nominal_api.timeseries_metadata_api"
95193
95301
 
95194
95302
 
95195
95303
  class timeseries_seriescache_SeriesCacheService(Service):
@@ -95984,10 +96092,10 @@ api_ColumnName = str
95984
96092
 
95985
96093
  api_Label = str
95986
96094
 
95987
- timeseries_archetype_api_SeriesArchetypeName = str
95988
-
95989
96095
  scout_datasource_connection_api_influx_OrgId = str
95990
96096
 
96097
+ timeseries_metadata_api_SeriesMetadataName = str
96098
+
95991
96099
  api_PropertyValue = str
95992
96100
 
95993
96101
  module_ParameterName = str
@@ -96172,6 +96280,8 @@ scout_rids_api_TemplateRid = str
96172
96280
 
96173
96281
  timeseries_logicalseries_api_BucketName = str
96174
96282
 
96283
+ api_SeriesMetadataRid = str
96284
+
96175
96285
  datasource_logset_api_LogSetRid = str
96176
96286
 
96177
96287
  ingest_api_DataSourceRefName = str
@@ -96230,8 +96340,6 @@ timeseries_logicalseries_api_DatasetName = str
96230
96340
 
96231
96341
  api_rids_NominalDataSourceOrDatasetRid = str
96232
96342
 
96233
- api_SeriesArchetypeRid = str
96234
-
96235
96343
  scout_versioning_api_TagRid = str
96236
96344
 
96237
96345
  scout_chartdefinition_api_AxisId = str
@@ -96260,6 +96368,8 @@ scout_chartdefinition_api_DataSourceRefName = str
96260
96368
 
96261
96369
  api_LogicalSeriesRid = str
96262
96370
 
96371
+ api_SeriesArchetypeRid = api_SeriesMetadataRid
96372
+
96263
96373
  authentication_api_OrgRid = str
96264
96374
 
96265
96375
  scout_rids_api_ChecklistRid = str