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