Skip to content

Latest commit

 

History

History

0.0.82-0.0.83

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Comparing tmp/unacatlib-0.0.82-py2.py3-none-any.whl.zip & tmp/unacatlib-0.0.83-py2.py3-none-any.whl.zip

zipinfo {}

@@ -1,61 +1,61 @@
-Zip file size: 83244 bytes, number of entries: 59
--rw-r--r--  2.0 unx       42 b- defN 24-May-15 18:02 unacatlib/__init__.py
--rw-r--r--  2.0 unx     2289 b- defN 24-May-15 18:02 unacatlib/address_component.py
--rw-r--r--  2.0 unx     1971 b- defN 24-May-15 18:02 unacatlib/address_component_builder.py
--rw-r--r--  2.0 unx     2980 b- defN 24-May-15 18:02 unacatlib/catalog.py
--rw-r--r--  2.0 unx    13436 b- defN 24-May-15 18:02 unacatlib/client.py
--rw-r--r--  2.0 unx     1780 b- defN 24-May-15 18:02 unacatlib/dimension.py
--rw-r--r--  2.0 unx     1570 b- defN 24-May-15 18:02 unacatlib/dimension_builder.py
--rw-r--r--  2.0 unx     2670 b- defN 24-May-15 18:02 unacatlib/filter.py
--rw-r--r--  2.0 unx     1003 b- defN 24-May-15 18:02 unacatlib/index_job.py
--rw-r--r--  2.0 unx     3237 b- defN 24-May-15 18:02 unacatlib/layer.py
--rw-r--r--  2.0 unx     3912 b- defN 24-May-15 18:02 unacatlib/layer_builder.py
--rw-r--r--  2.0 unx     1425 b- defN 24-May-15 18:02 unacatlib/layer_series.py
--rw-r--r--  2.0 unx     5391 b- defN 24-May-15 18:02 unacatlib/metric.py
--rw-r--r--  2.0 unx     4206 b- defN 24-May-15 18:02 unacatlib/metric_builder.py
--rw-r--r--  2.0 unx       42 b- defN 24-May-15 18:02 unacatlib/byo/__init__.py
--rw-r--r--  2.0 unx     2463 b- defN 24-May-15 18:02 unacatlib/byo/byo_orchestator.py
--rw-r--r--  2.0 unx       67 b- defN 24-May-15 18:02 unacatlib/byo_external/__init__.py
--rw-r--r--  2.0 unx     4401 b- defN 24-May-15 18:02 unacatlib/byo_external/client.py
--rw-r--r--  2.0 unx     1117 b- defN 24-May-15 18:02 unacatlib/byo_external/report_job.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/access/__init__.py
--rw-r--r--  2.0 unx      869 b- defN 24-May-15 18:02 unacatlib/unacast/access/v1/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/byo/__init__.py
--rw-r--r--  2.0 unx    99298 b- defN 24-May-15 18:02 unacatlib/unacast/byo/v1/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/catalog/__init__.py
--rw-r--r--  2.0 unx    45315 b- defN 24-May-15 18:02 unacatlib/unacast/catalog/v1/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/dataset/__init__.py
--rw-r--r--  2.0 unx     2128 b- defN 24-May-15 18:02 unacatlib/unacast/dataset/v1/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/iam/__init__.py
--rw-r--r--  2.0 unx    16880 b- defN 24-May-15 18:02 unacatlib/unacast/iam/v1/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/index/__init__.py
--rw-r--r--  2.0 unx     1648 b- defN 24-May-15 18:02 unacatlib/unacast/index/v1/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/maps/__init__.py
--rw-r--r--  2.0 unx    13926 b- defN 24-May-15 18:02 unacatlib/unacast/maps/v1/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/metric/__init__.py
--rw-r--r--  2.0 unx    25060 b- defN 24-May-15 18:02 unacatlib/unacast/metric/v1/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/metricmodel/__init__.py
--rw-r--r--  2.0 unx     2850 b- defN 24-May-15 18:02 unacatlib/unacast/metricmodel/v1/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/operator/__init__.py
--rw-r--r--  2.0 unx    97965 b- defN 24-May-15 18:02 unacatlib/unacast/operator/v1/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/subscription/__init__.py
--rw-r--r--  2.0 unx    29612 b- defN 24-May-15 18:02 unacatlib/unacast/subscription/v1/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/system/__init__.py
--rw-r--r--  2.0 unx     6008 b- defN 24-May-15 18:02 unacatlib/unacast/system/v1/__init__.py
--rw-r--r--  2.0 unx     1981 b- defN 24-May-15 18:02 unacatlib/unacast/unatype/__init__.py
--rw-r--r--  2.0 unx        0 b- defN 24-May-15 18:02 unacatlib/unacast/v2/__init__.py
--rw-r--r--  2.0 unx    12684 b- defN 24-May-15 18:02 unacatlib/unacast/v2/access/__init__.py
--rw-r--r--  2.0 unx     7911 b- defN 24-May-15 18:02 unacatlib/unacast/v2/byo_external/__init__.py
--rw-r--r--  2.0 unx    45610 b- defN 24-May-15 18:02 unacatlib/unacast/v2/catalog/__init__.py
--rw-r--r--  2.0 unx     5703 b- defN 24-May-15 18:02 unacatlib/unacast/v2/geography/__init__.py
--rw-r--r--  2.0 unx     3328 b- defN 24-May-15 18:02 unacatlib/unacast/v2/maps/__init__.py
--rw-r--r--  2.0 unx    21810 b- defN 24-May-15 18:02 unacatlib/unacast/v2/metric/__init__.py
--rw-r--r--  2.0 unx     5963 b- defN 24-May-15 18:02 unacatlib/unacast/v2/operator/__init__.py
--rw-r--r--  2.0 unx     2477 b- defN 24-May-15 18:02 unacatlib/unacast/v2/subscription/__init__.py
--rw-r--r--  2.0 unx    36405 b- defN 24-May-15 18:02 unacatlib/validate/__init__.py
--rw-r--r--  2.0 unx      444 b- defN 24-May-15 18:02 unacatlib-0.0.82.dist-info/METADATA
--rw-r--r--  2.0 unx      110 b- defN 24-May-15 18:02 unacatlib-0.0.82.dist-info/WHEEL
--rw-r--r--  2.0 unx       10 b- defN 24-May-15 18:02 unacatlib-0.0.82.dist-info/top_level.txt
--rw-rw-r--  2.0 unx     5271 b- defN 24-May-15 18:02 unacatlib-0.0.82.dist-info/RECORD
-59 files, 545268 bytes uncompressed, 74732 bytes compressed:  86.3%
+Zip file size: 83109 bytes, number of entries: 59
+-rw-r--r--  2.0 unx       42 b- defN 24-May-29 11:35 unacatlib/__init__.py
+-rw-r--r--  2.0 unx     2289 b- defN 24-May-29 11:35 unacatlib/address_component.py
+-rw-r--r--  2.0 unx     1971 b- defN 24-May-29 11:35 unacatlib/address_component_builder.py
+-rw-r--r--  2.0 unx     2980 b- defN 24-May-29 11:35 unacatlib/catalog.py
+-rw-r--r--  2.0 unx    13436 b- defN 24-May-29 11:35 unacatlib/client.py
+-rw-r--r--  2.0 unx     1780 b- defN 24-May-29 11:35 unacatlib/dimension.py
+-rw-r--r--  2.0 unx     1570 b- defN 24-May-29 11:35 unacatlib/dimension_builder.py
+-rw-r--r--  2.0 unx     2670 b- defN 24-May-29 11:35 unacatlib/filter.py
+-rw-r--r--  2.0 unx     1003 b- defN 24-May-29 11:35 unacatlib/index_job.py
+-rw-r--r--  2.0 unx     3237 b- defN 24-May-29 11:35 unacatlib/layer.py
+-rw-r--r--  2.0 unx     3912 b- defN 24-May-29 11:35 unacatlib/layer_builder.py
+-rw-r--r--  2.0 unx     1425 b- defN 24-May-29 11:35 unacatlib/layer_series.py
+-rw-r--r--  2.0 unx     5391 b- defN 24-May-29 11:35 unacatlib/metric.py
+-rw-r--r--  2.0 unx     4206 b- defN 24-May-29 11:35 unacatlib/metric_builder.py
+-rw-r--r--  2.0 unx       42 b- defN 24-May-29 11:35 unacatlib/byo/__init__.py
+-rw-r--r--  2.0 unx     2463 b- defN 24-May-29 11:35 unacatlib/byo/byo_orchestator.py
+-rw-r--r--  2.0 unx       67 b- defN 24-May-29 11:35 unacatlib/byo_external/__init__.py
+-rw-r--r--  2.0 unx     4401 b- defN 24-May-29 11:35 unacatlib/byo_external/client.py
+-rw-r--r--  2.0 unx     1117 b- defN 24-May-29 11:35 unacatlib/byo_external/report_job.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/access/__init__.py
+-rw-r--r--  2.0 unx      869 b- defN 24-May-29 11:35 unacatlib/unacast/access/v1/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/byo/__init__.py
+-rw-r--r--  2.0 unx    99298 b- defN 24-May-29 11:35 unacatlib/unacast/byo/v1/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/catalog/__init__.py
+-rw-r--r--  2.0 unx    43368 b- defN 24-May-29 11:35 unacatlib/unacast/catalog/v1/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/dataset/__init__.py
+-rw-r--r--  2.0 unx     2128 b- defN 24-May-29 11:35 unacatlib/unacast/dataset/v1/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/iam/__init__.py
+-rw-r--r--  2.0 unx    16880 b- defN 24-May-29 11:35 unacatlib/unacast/iam/v1/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/index/__init__.py
+-rw-r--r--  2.0 unx     1648 b- defN 24-May-29 11:35 unacatlib/unacast/index/v1/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/maps/__init__.py
+-rw-r--r--  2.0 unx    13926 b- defN 24-May-29 11:35 unacatlib/unacast/maps/v1/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/metric/__init__.py
+-rw-r--r--  2.0 unx    25060 b- defN 24-May-29 11:35 unacatlib/unacast/metric/v1/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/metricmodel/__init__.py
+-rw-r--r--  2.0 unx     2850 b- defN 24-May-29 11:35 unacatlib/unacast/metricmodel/v1/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/operator/__init__.py
+-rw-r--r--  2.0 unx    97965 b- defN 24-May-29 11:35 unacatlib/unacast/operator/v1/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/subscription/__init__.py
+-rw-r--r--  2.0 unx    29612 b- defN 24-May-29 11:35 unacatlib/unacast/subscription/v1/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/system/__init__.py
+-rw-r--r--  2.0 unx     6008 b- defN 24-May-29 11:35 unacatlib/unacast/system/v1/__init__.py
+-rw-r--r--  2.0 unx     1981 b- defN 24-May-29 11:35 unacatlib/unacast/unatype/__init__.py
+-rw-r--r--  2.0 unx        0 b- defN 24-May-29 11:35 unacatlib/unacast/v2/__init__.py
+-rw-r--r--  2.0 unx    12684 b- defN 24-May-29 11:35 unacatlib/unacast/v2/access/__init__.py
+-rw-r--r--  2.0 unx     7911 b- defN 24-May-29 11:35 unacatlib/unacast/v2/byo_external/__init__.py
+-rw-r--r--  2.0 unx    45610 b- defN 24-May-29 11:35 unacatlib/unacast/v2/catalog/__init__.py
+-rw-r--r--  2.0 unx     5703 b- defN 24-May-29 11:35 unacatlib/unacast/v2/geography/__init__.py
+-rw-r--r--  2.0 unx     3328 b- defN 24-May-29 11:35 unacatlib/unacast/v2/maps/__init__.py
+-rw-r--r--  2.0 unx    21810 b- defN 24-May-29 11:35 unacatlib/unacast/v2/metric/__init__.py
+-rw-r--r--  2.0 unx     5963 b- defN 24-May-29 11:35 unacatlib/unacast/v2/operator/__init__.py
+-rw-r--r--  2.0 unx     2477 b- defN 24-May-29 11:35 unacatlib/unacast/v2/subscription/__init__.py
+-rw-r--r--  2.0 unx    36405 b- defN 24-May-29 11:35 unacatlib/validate/__init__.py
+-rw-r--r--  2.0 unx      444 b- defN 24-May-29 11:35 unacatlib-0.0.83.dist-info/METADATA
+-rw-r--r--  2.0 unx      110 b- defN 24-May-29 11:35 unacatlib-0.0.83.dist-info/WHEEL
+-rw-r--r--  2.0 unx       10 b- defN 24-May-29 11:35 unacatlib-0.0.83.dist-info/top_level.txt
+-rw-rw-r--  2.0 unx     5271 b- defN 24-May-29 11:35 unacatlib-0.0.83.dist-info/RECORD
+59 files, 543321 bytes uncompressed, 74597 bytes compressed:  86.3%

zipnote {}

@@ -159,20 +159,20 @@
 
 Filename: unacatlib/unacast/v2/subscription/__init__.py
 Comment: 
 
 Filename: unacatlib/validate/__init__.py
 Comment: 
 
-Filename: unacatlib-0.0.82.dist-info/METADATA
+Filename: unacatlib-0.0.83.dist-info/METADATA
 Comment: 
 
-Filename: unacatlib-0.0.82.dist-info/WHEEL
+Filename: unacatlib-0.0.83.dist-info/WHEEL
 Comment: 
 
-Filename: unacatlib-0.0.82.dist-info/top_level.txt
+Filename: unacatlib-0.0.83.dist-info/top_level.txt
 Comment: 
 
-Filename: unacatlib-0.0.82.dist-info/RECORD
+Filename: unacatlib-0.0.83.dist-info/RECORD
 Comment: 
 
 Zip file comment:

unacatlib/unacast/byo/v1/init.py

  • Ordering differences only
@@ -47,14 +47,189 @@
     Delayed = 6
     Succeeded = 3
     Failed = 4
     Archived = 5
 
 
 @dataclass(eq=False, repr=False)
+class GetProduceMetricJobRequest(betterproto.Message):
+    job_id: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class ProduceMetricJob(betterproto.Message):
+    """
+    Message distributed to the service that will produce the metric. Can also
+    be re-fetched by calling `GetProduceMetricJob`
+    """
+
+    job_id: str = betterproto.string_field(1)
+    geometry_ref: str = betterproto.string_field(2)
+    start_date: str = betterproto.string_field(4)
+    end_date: str = betterproto.string_field(5)
+    metric_model: str = betterproto.string_field(7)
+    metric_process_id: str = betterproto.string_field(8)
+    metric_cadence: str = betterproto.string_field(10)
+    period_length: int = betterproto.int32_field(14)
+    delivery_destination: "ProduceMetricJobCatalogDestination" = (
+        betterproto.message_field(9)
+    )
+    delivery_inbox: str = betterproto.string_field(11)
+    priority: str = betterproto.string_field(12)
+    status: "ProduceMetricJobStatus" = betterproto.message_field(13)
+
+
+@dataclass(eq=False, repr=False)
+class ProduceMetricJobCatalogDestination(betterproto.Message):
+    catalog_id: str = betterproto.string_field(1)
+    metric_id: str = betterproto.string_field(2)
+    is_changeset: bool = betterproto.bool_field(3)
+
+
+@dataclass(eq=False, repr=False)
+class ProduceMetricJobStatus(betterproto.Message):
+    current_status: "__unatype__.MetricDataProductionStatus" = betterproto.enum_field(1)
+    status_service: str = betterproto.string_field(2)
+    status_reason: str = betterproto.string_field(3)
+    timestamp: str = betterproto.string_field(4)
+
+
+@dataclass(eq=False, repr=False)
+class ListProduceMetricJobsRequest(betterproto.Message):
+    job_status_filter: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class ListProduceMetricJobsResponse(betterproto.Message):
+    jobs: List["ProduceMetricJob"] = betterproto.message_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class AlertLongRunningProduceMetricJobsRequest(betterproto.Message):
+    long_running_job_threshold_hours: int = betterproto.int32_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class AlertLongRunningProduceMetricJobsResponse(betterproto.Message):
+    jobs: List["ProduceMetricJob"] = betterproto.message_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class ProcessProduceMetricJobResultsRequest(betterproto.Message):
+    job_id: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class MetricProductionStatusUpdate(betterproto.Message):
+    job_id: str = betterproto.string_field(1)
+    timestamp: str = betterproto.string_field(2)
+    service_ref: str = betterproto.string_field(3)
+    rejected: "MetricProductionStatusUpdateRejected" = betterproto.message_field(
+        4, group="status"
+    )
+    started: "MetricProductionStatusUpdateStarted" = betterproto.message_field(
+        5, group="status"
+    )
+    delayed: "MetricProductionStatusUpdateDelayed" = betterproto.message_field(
+        9, group="status"
+    )
+    produced: "MetricProductionStatusUpdateProduced" = betterproto.message_field(
+        8, group="status"
+    )
+    finished: "MetricProductionStatusUpdateFinished" = betterproto.message_field(
+        6, group="status"
+    )
+    failed: "MetricProductionStatusUpdateFailed" = betterproto.message_field(
+        7, group="status"
+    )
+
+
+@dataclass(eq=False, repr=False)
+class MetricProductionStatusUpdateRejected(betterproto.Message):
+    """
+    The metric job is being rejected by the producer. Similar to retruning a
+    400 Invalid Argument on a REST-API
+    """
+
+    reason: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class MetricProductionStatusUpdateStarted(betterproto.Message):
+    """
+    The metric job has been picked up and accepted by the received system, and
+    processing will begin
+    """
+
+    pass
+
+
+@dataclass(eq=False, repr=False)
+class MetricProductionStatusUpdateDelayed(betterproto.Message):
+    """
+    The service are in some fail-state on producing the metric, but will retry
+    after manual intervention
+    """
+
+    error_reason: str = betterproto.string_field(1)
+    error_message: str = betterproto.string_field(2)
+
+
+@dataclass(eq=False, repr=False)
+class MetricProductionStatusUpdateProduced(betterproto.Message):
+    """
+    The metric has been produced and are delivered to the provided InboxTable
+    """
+
+    metric_process_revision: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class MetricProductionStatusUpdateFinished(betterproto.Message):
+    """
+    The metric has been produced and are successfully indexed to the Catalog
+    Destination
+    """
+
+    metric_process_revision: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class MetricProductionStatusUpdateFailed(betterproto.Message):
+    """The metric job have failed and the service have given up"""
+
+    error_reason: str = betterproto.string_field(1)
+    error_message: str = betterproto.string_field(2)
+
+
+@dataclass(eq=False, repr=False)
+class GetMetricProductionStatusRequest(betterproto.Message):
+    metric_id: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class GetMetricProductionStatusResponse(betterproto.Message):
+    metric_id: str = betterproto.string_field(1)
+    status: "ProduceMetricJobStatus" = betterproto.message_field(2)
+    jobs: List["ProduceMetricJob"] = betterproto.message_field(3)
+
+
+@dataclass(eq=False, repr=False)
+class RestartProduceMetricJobRequest(betterproto.Message):
+    job_id: str = betterproto.string_field(1)
+    reason: str = betterproto.string_field(2)
+
+
+@dataclass(eq=False, repr=False)
+class RecreateReadModelsOfProductionJobsRequest(betterproto.Message):
+    only_consider_jobs_created_after: str = betterproto.string_field(1)
+    only_consider_job_ids: List[str] = betterproto.string_field(2)
+
+
+@dataclass(eq=False, repr=False)
 class LatLonToPolygonRequest(betterproto.Message):
     billing_context: str = betterproto.string_field(2)
     point_radii: List["PointRadius"] = betterproto.message_field(6)
 
 
 @dataclass(eq=False, repr=False)
 class LatLonToPolygonResponse(betterproto.Message):
@@ -605,187 +780,150 @@
     storage: "__v2_access__.RegisterStorageAccessExternalResourceRequest" = (
         betterproto.message_field(1)
     )
     filename: str = betterproto.string_field(2)
     collection_id: str = betterproto.string_field(3)
 
 
-@dataclass(eq=False, repr=False)
-class GetProduceMetricJobRequest(betterproto.Message):
-    job_id: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class ProduceMetricJob(betterproto.Message):
-    """
-    Message distributed to the service that will produce the metric. Can also
-    be re-fetched by calling `GetProduceMetricJob`
-    """
-
-    job_id: str = betterproto.string_field(1)
-    geometry_ref: str = betterproto.string_field(2)
-    start_date: str = betterproto.string_field(4)
-    end_date: str = betterproto.string_field(5)
-    metric_model: str = betterproto.string_field(7)
-    metric_process_id: str = betterproto.string_field(8)
-    metric_cadence: str = betterproto.string_field(10)
-    period_length: int = betterproto.int32_field(14)
-    delivery_destination: "ProduceMetricJobCatalogDestination" = (
-        betterproto.message_field(9)
-    )
-    delivery_inbox: str = betterproto.string_field(11)
-    priority: str = betterproto.string_field(12)
-    status: "ProduceMetricJobStatus" = betterproto.message_field(13)
-
-
-@dataclass(eq=False, repr=False)
-class ProduceMetricJobCatalogDestination(betterproto.Message):
-    catalog_id: str = betterproto.string_field(1)
-    metric_id: str = betterproto.string_field(2)
-    is_changeset: bool = betterproto.bool_field(3)
-
-
-@dataclass(eq=False, repr=False)
-class ProduceMetricJobStatus(betterproto.Message):
-    current_status: "__unatype__.MetricDataProductionStatus" = betterproto.enum_field(1)
-    status_service: str = betterproto.string_field(2)
-    status_reason: str = betterproto.string_field(3)
-    timestamp: str = betterproto.string_field(4)
-
-
-@dataclass(eq=False, repr=False)
-class ListProduceMetricJobsRequest(betterproto.Message):
-    job_status_filter: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class ListProduceMetricJobsResponse(betterproto.Message):
-    jobs: List["ProduceMetricJob"] = betterproto.message_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class AlertLongRunningProduceMetricJobsRequest(betterproto.Message):
-    long_running_job_threshold_hours: int = betterproto.int32_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class AlertLongRunningProduceMetricJobsResponse(betterproto.Message):
-    jobs: List["ProduceMetricJob"] = betterproto.message_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class ProcessProduceMetricJobResultsRequest(betterproto.Message):
-    job_id: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class MetricProductionStatusUpdate(betterproto.Message):
-    job_id: str = betterproto.string_field(1)
-    timestamp: str = betterproto.string_field(2)
-    service_ref: str = betterproto.string_field(3)
-    rejected: "MetricProductionStatusUpdateRejected" = betterproto.message_field(
-        4, group="status"
-    )
-    started: "MetricProductionStatusUpdateStarted" = betterproto.message_field(
-        5, group="status"
-    )
-    delayed: "MetricProductionStatusUpdateDelayed" = betterproto.message_field(
-        9, group="status"
-    )
-    produced: "MetricProductionStatusUpdateProduced" = betterproto.message_field(
-        8, group="status"
-    )
-    finished: "MetricProductionStatusUpdateFinished" = betterproto.message_field(
-        6, group="status"
-    )
-    failed: "MetricProductionStatusUpdateFailed" = betterproto.message_field(
-        7, group="status"
-    )
-
-
-@dataclass(eq=False, repr=False)
-class MetricProductionStatusUpdateRejected(betterproto.Message):
-    """
-    The metric job is being rejected by the producer. Similar to retruning a
-    400 Invalid Argument on a REST-API
-    """
-
-    reason: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class MetricProductionStatusUpdateStarted(betterproto.Message):
-    """
-    The metric job has been picked up and accepted by the received system, and
-    processing will begin
-    """
-
-    pass
-
-
-@dataclass(eq=False, repr=False)
-class MetricProductionStatusUpdateDelayed(betterproto.Message):
-    """
-    The service are in some fail-state on producing the metric, but will retry
-    after manual intervention
-    """
-
-    error_reason: str = betterproto.string_field(1)
-    error_message: str = betterproto.string_field(2)
-
-
-@dataclass(eq=False, repr=False)
-class MetricProductionStatusUpdateProduced(betterproto.Message):
-    """
-    The metric has been produced and are delivered to the provided InboxTable
-    """
-
-    metric_process_revision: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class MetricProductionStatusUpdateFinished(betterproto.Message):
-    """
-    The metric has been produced and are successfully indexed to the Catalog
-    Destination
-    """
-
-    metric_process_revision: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class MetricProductionStatusUpdateFailed(betterproto.Message):
-    """The metric job have failed and the service have given up"""
-
-    error_reason: str = betterproto.string_field(1)
-    error_message: str = betterproto.string_field(2)
-
+class MetricProductionOrchestrationServiceStub(betterproto.ServiceStub):
+    async def get_produce_metric_job(
+        self,
+        get_produce_metric_job_request: "GetProduceMetricJobRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "ProduceMetricJob":
+        return await self._unary_unary(
+            "/unacast.byo.v1.MetricProductionOrchestrationService/GetProduceMetricJob",
+            get_produce_metric_job_request,
+            ProduceMetricJob,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
-@dataclass(eq=False, repr=False)
-class GetMetricProductionStatusRequest(betterproto.Message):
-    metric_id: str = betterproto.string_field(1)
+    async def update_metric_production_status(
+        self,
+        metric_production_status_update: "MetricProductionStatusUpdate",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        return await self._unary_unary(
+            "/unacast.byo.v1.MetricProductionOrchestrationService/UpdateMetricProductionStatus",
+            metric_production_status_update,
+            betterproto_lib_google_protobuf.Empty,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
+    async def list_produce_metric_jobs(
+        self,
+        list_produce_metric_jobs_request: "ListProduceMetricJobsRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "ListProduceMetricJobsResponse":
+        return await self._unary_unary(
+            "/unacast.byo.v1.MetricProductionOrchestrationService/ListProduceMetricJobs",
+            list_produce_metric_jobs_request,
+            ListProduceMetricJobsResponse,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
-@dataclass(eq=False, repr=False)
-class GetMetricProductionStatusResponse(betterproto.Message):
-    metric_id: str = betterproto.string_field(1)
-    status: "ProduceMetricJobStatus" = betterproto.message_field(2)
-    jobs: List["ProduceMetricJob"] = betterproto.message_field(3)
+    async def get_metric_production_status(
+        self,
+        get_metric_production_status_request: "GetMetricProductionStatusRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "GetMetricProductionStatusResponse":
+        return await self._unary_unary(
+            "/unacast.byo.v1.MetricProductionOrchestrationService/GetMetricProductionStatus",
+            get_metric_production_status_request,
+            GetMetricProductionStatusResponse,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
+    async def restart_metric_production_job(
+        self,
+        restart_produce_metric_job_request: "RestartProduceMetricJobRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        return await self._unary_unary(
+            "/unacast.byo.v1.MetricProductionOrchestrationService/RestartMetricProductionJob",
+            restart_produce_metric_job_request,
+            betterproto_lib_google_protobuf.Empty,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
-@dataclass(eq=False, repr=False)
-class RestartProduceMetricJobRequest(betterproto.Message):
-    job_id: str = betterproto.string_field(1)
-    reason: str = betterproto.string_field(2)
+    async def recreate_read_models_of_production_jobs(
+        self,
+        recreate_read_models_of_production_jobs_request: "RecreateReadModelsOfProductionJobsRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        return await self._unary_unary(
+            "/unacast.byo.v1.MetricProductionOrchestrationService/RecreateReadModelsOfProductionJobs",
+            recreate_read_models_of_production_jobs_request,
+            betterproto_lib_google_protobuf.Empty,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
+    async def alert_long_running_produce_metric_jobs(
+        self,
+        alert_long_running_produce_metric_jobs_request: "AlertLongRunningProduceMetricJobsRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "AlertLongRunningProduceMetricJobsResponse":
+        return await self._unary_unary(
+            "/unacast.byo.v1.MetricProductionOrchestrationService/AlertLongRunningProduceMetricJobs",
+            alert_long_running_produce_metric_jobs_request,
+            AlertLongRunningProduceMetricJobsResponse,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
-@dataclass(eq=False, repr=False)
-class RecreateReadModelsOfProductionJobsRequest(betterproto.Message):
-    only_consider_jobs_created_after: str = betterproto.string_field(1)
-    only_consider_job_ids: List[str] = betterproto.string_field(2)
+    async def process_produce_metric_job_results(
+        self,
+        process_produce_metric_job_results_request: "ProcessProduceMetricJobResultsRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        return await self._unary_unary(
+            "/unacast.byo.v1.MetricProductionOrchestrationService/ProcessProduceMetricJobResults",
+            process_produce_metric_job_results_request,
+            betterproto_lib_google_protobuf.Empty,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
 
 class ByoServiceStub(betterproto.ServiceStub):
     async def get_stored_collection(
         self,
         get_stored_collection_request: "GetStoredCollectionRequest",
         *,
@@ -1156,14 +1294,118 @@
             betterproto_lib_google_protobuf.Empty,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
 
+class LocalByoWorkerInvocationServiceStub(betterproto.ServiceStub):
+    async def do_process_report(
+        self,
+        report_details_request: "ReportDetailsRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "ReportDetails":
+        return await self._unary_unary(
+            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoProcessReport",
+            report_details_request,
+            ReportDetails,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
+
+    async def do_verify_report_completion(
+        self,
+        report_details_request: "ReportDetailsRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "ReportDetails":
+        return await self._unary_unary(
+            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoVerifyReportCompletion",
+            report_details_request,
+            ReportDetails,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
+
+    async def do_process_addresses(
+        self,
+        betterproto_lib_google_protobuf_empty: "betterproto_lib_google_protobuf.Empty",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        return await self._unary_unary(
+            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoProcessAddresses",
+            betterproto_lib_google_protobuf_empty,
+            betterproto_lib_google_protobuf.Empty,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
+
+    async def do_process_location_set_file(
+        self,
+        location_set_file_request: "LocationSetFileRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        return await self._unary_unary(
+            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoProcessLocationSetFile",
+            location_set_file_request,
+            betterproto_lib_google_protobuf.Empty,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
+
+    async def schedule_report_refresh(
+        self,
+        schedule_report_refresh_request: "ScheduleReportRefreshRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        return await self._unary_unary(
+            "/unacast.byo.v1.LocalByoWorkerInvocationService/ScheduleReportRefresh",
+            schedule_report_refresh_request,
+            betterproto_lib_google_protobuf.Empty,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
+
+    async def refresh_report(
+        self,
+        refresh_report_request: "RefreshReportRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        return await self._unary_unary(
+            "/unacast.byo.v1.LocalByoWorkerInvocationService/RefreshReport",
+            refresh_report_request,
+            betterproto_lib_google_protobuf.Empty,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
+
+
 class PoiCollectionServiceStub(betterproto.ServiceStub):
     async def create_new_collection(
         self,
         create_new_collection_request: "CreateNewCollectionRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
@@ -1396,254 +1638,174 @@
             Nothing,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
 
-class MetricProductionOrchestrationServiceStub(betterproto.ServiceStub):
+class MetricProductionOrchestrationServiceBase(ServiceBase):
+
     async def get_produce_metric_job(
-        self,
-        get_produce_metric_job_request: "GetProduceMetricJobRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
+        self, get_produce_metric_job_request: "GetProduceMetricJobRequest"
     ) -> "ProduceMetricJob":
-        return await self._unary_unary(
-            "/unacast.byo.v1.MetricProductionOrchestrationService/GetProduceMetricJob",
-            get_produce_metric_job_request,
-            ProduceMetricJob,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
     async def update_metric_production_status(
-        self,
-        metric_production_status_update: "MetricProductionStatusUpdate",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
+        self, metric_production_status_update: "MetricProductionStatusUpdate"
     ) -> "betterproto_lib_google_protobuf.Empty":
-        return await self._unary_unary(
-            "/unacast.byo.v1.MetricProductionOrchestrationService/UpdateMetricProductionStatus",
-            metric_production_status_update,
-            betterproto_lib_google_protobuf.Empty,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
     async def list_produce_metric_jobs(
-        self,
-        list_produce_metric_jobs_request: "ListProduceMetricJobsRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
+        self, list_produce_metric_jobs_request: "ListProduceMetricJobsRequest"
     ) -> "ListProduceMetricJobsResponse":
-        return await self._unary_unary(
-            "/unacast.byo.v1.MetricProductionOrchestrationService/ListProduceMetricJobs",
-            list_produce_metric_jobs_request,
-            ListProduceMetricJobsResponse,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
     async def get_metric_production_status(
-        self,
-        get_metric_production_status_request: "GetMetricProductionStatusRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
+        self, get_metric_production_status_request: "GetMetricProductionStatusRequest"
     ) -> "GetMetricProductionStatusResponse":
-        return await self._unary_unary(
-            "/unacast.byo.v1.MetricProductionOrchestrationService/GetMetricProductionStatus",
-            get_metric_production_status_request,
-            GetMetricProductionStatusResponse,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
     async def restart_metric_production_job(
-        self,
-        restart_produce_metric_job_request: "RestartProduceMetricJobRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
+        self, restart_produce_metric_job_request: "RestartProduceMetricJobRequest"
     ) -> "betterproto_lib_google_protobuf.Empty":
-        return await self._unary_unary(
-            "/unacast.byo.v1.MetricProductionOrchestrationService/RestartMetricProductionJob",
-            restart_produce_metric_job_request,
-            betterproto_lib_google_protobuf.Empty,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
     async def recreate_read_models_of_production_jobs(
         self,
         recreate_read_models_of_production_jobs_request: "RecreateReadModelsOfProductionJobsRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
     ) -> "betterproto_lib_google_protobuf.Empty":
-        return await self._unary_unary(
-            "/unacast.byo.v1.MetricProductionOrchestrationService/RecreateReadModelsOfProductionJobs",
-            recreate_read_models_of_production_jobs_request,
-            betterproto_lib_google_protobuf.Empty,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
     async def alert_long_running_produce_metric_jobs(
         self,
         alert_long_running_produce_metric_jobs_request: "AlertLongRunningProduceMetricJobsRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
     ) -> "AlertLongRunningProduceMetricJobsResponse":
-        return await self._unary_unary(
-            "/unacast.byo.v1.MetricProductionOrchestrationService/AlertLongRunningProduceMetricJobs",
-            alert_long_running_produce_metric_jobs_request,
-            AlertLongRunningProduceMetricJobsResponse,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
     async def process_produce_metric_job_results(
         self,
         process_produce_metric_job_results_request: "ProcessProduceMetricJobResultsRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
     ) -> "betterproto_lib_google_protobuf.Empty":
-        return await self._unary_unary(
-            "/unacast.byo.v1.MetricProductionOrchestrationService/ProcessProduceMetricJobResults",
-            process_produce_metric_job_results_request,
-            betterproto_lib_google_protobuf.Empty,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
+    async def __rpc_get_produce_metric_job(
+        self,
+        stream: "grpclib.server.Stream[GetProduceMetricJobRequest, ProduceMetricJob]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.get_produce_metric_job(request)
+        await stream.send_message(response)
 
-class LocalByoWorkerInvocationServiceStub(betterproto.ServiceStub):
-    async def do_process_report(
+    async def __rpc_update_metric_production_status(
         self,
-        report_details_request: "ReportDetailsRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "ReportDetails":
-        return await self._unary_unary(
-            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoProcessReport",
-            report_details_request,
-            ReportDetails,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        stream: "grpclib.server.Stream[MetricProductionStatusUpdate, betterproto_lib_google_protobuf.Empty]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.update_metric_production_status(request)
+        await stream.send_message(response)
 
-    async def do_verify_report_completion(
+    async def __rpc_list_produce_metric_jobs(
         self,
-        report_details_request: "ReportDetailsRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "ReportDetails":
-        return await self._unary_unary(
-            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoVerifyReportCompletion",
-            report_details_request,
-            ReportDetails,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        stream: "grpclib.server.Stream[ListProduceMetricJobsRequest, ListProduceMetricJobsResponse]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.list_produce_metric_jobs(request)
+        await stream.send_message(response)
 
-    async def do_process_addresses(
+    async def __rpc_get_metric_production_status(
         self,
-        betterproto_lib_google_protobuf_empty: "betterproto_lib_google_protobuf.Empty",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "betterproto_lib_google_protobuf.Empty":
-        return await self._unary_unary(
-            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoProcessAddresses",
-            betterproto_lib_google_protobuf_empty,
-            betterproto_lib_google_protobuf.Empty,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        stream: "grpclib.server.Stream[GetMetricProductionStatusRequest, GetMetricProductionStatusResponse]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.get_metric_production_status(request)
+        await stream.send_message(response)
 
-    async def do_process_location_set_file(
+    async def __rpc_restart_metric_production_job(
         self,
-        location_set_file_request: "LocationSetFileRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "betterproto_lib_google_protobuf.Empty":
-        return await self._unary_unary(
-            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoProcessLocationSetFile",
-            location_set_file_request,
-            betterproto_lib_google_protobuf.Empty,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        stream: "grpclib.server.Stream[RestartProduceMetricJobRequest, betterproto_lib_google_protobuf.Empty]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.restart_metric_production_job(request)
+        await stream.send_message(response)
 
-    async def schedule_report_refresh(
+    async def __rpc_recreate_read_models_of_production_jobs(
         self,
-        schedule_report_refresh_request: "ScheduleReportRefreshRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "betterproto_lib_google_protobuf.Empty":
-        return await self._unary_unary(
-            "/unacast.byo.v1.LocalByoWorkerInvocationService/ScheduleReportRefresh",
-            schedule_report_refresh_request,
-            betterproto_lib_google_protobuf.Empty,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        stream: "grpclib.server.Stream[RecreateReadModelsOfProductionJobsRequest, betterproto_lib_google_protobuf.Empty]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.recreate_read_models_of_production_jobs(request)
+        await stream.send_message(response)
 
-    async def refresh_report(
+    async def __rpc_alert_long_running_produce_metric_jobs(
         self,
-        refresh_report_request: "RefreshReportRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "betterproto_lib_google_protobuf.Empty":
-        return await self._unary_unary(
-            "/unacast.byo.v1.LocalByoWorkerInvocationService/RefreshReport",
-            refresh_report_request,
-            betterproto_lib_google_protobuf.Empty,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        stream: "grpclib.server.Stream[AlertLongRunningProduceMetricJobsRequest, AlertLongRunningProduceMetricJobsResponse]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.alert_long_running_produce_metric_jobs(request)
+        await stream.send_message(response)
+
+    async def __rpc_process_produce_metric_job_results(
+        self,
+        stream: "grpclib.server.Stream[ProcessProduceMetricJobResultsRequest, betterproto_lib_google_protobuf.Empty]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.process_produce_metric_job_results(request)
+        await stream.send_message(response)
+
+    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
+        return {
+            "/unacast.byo.v1.MetricProductionOrchestrationService/GetProduceMetricJob": grpclib.const.Handler(
+                self.__rpc_get_produce_metric_job,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                GetProduceMetricJobRequest,
+                ProduceMetricJob,
+            ),
+            "/unacast.byo.v1.MetricProductionOrchestrationService/UpdateMetricProductionStatus": grpclib.const.Handler(
+                self.__rpc_update_metric_production_status,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                MetricProductionStatusUpdate,
+                betterproto_lib_google_protobuf.Empty,
+            ),
+            "/unacast.byo.v1.MetricProductionOrchestrationService/ListProduceMetricJobs": grpclib.const.Handler(
+                self.__rpc_list_produce_metric_jobs,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                ListProduceMetricJobsRequest,
+                ListProduceMetricJobsResponse,
+            ),
+            "/unacast.byo.v1.MetricProductionOrchestrationService/GetMetricProductionStatus": grpclib.const.Handler(
+                self.__rpc_get_metric_production_status,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                GetMetricProductionStatusRequest,
+                GetMetricProductionStatusResponse,
+            ),
+            "/unacast.byo.v1.MetricProductionOrchestrationService/RestartMetricProductionJob": grpclib.const.Handler(
+                self.__rpc_restart_metric_production_job,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                RestartProduceMetricJobRequest,
+                betterproto_lib_google_protobuf.Empty,
+            ),
+            "/unacast.byo.v1.MetricProductionOrchestrationService/RecreateReadModelsOfProductionJobs": grpclib.const.Handler(
+                self.__rpc_recreate_read_models_of_production_jobs,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                RecreateReadModelsOfProductionJobsRequest,
+                betterproto_lib_google_protobuf.Empty,
+            ),
+            "/unacast.byo.v1.MetricProductionOrchestrationService/AlertLongRunningProduceMetricJobs": grpclib.const.Handler(
+                self.__rpc_alert_long_running_produce_metric_jobs,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                AlertLongRunningProduceMetricJobsRequest,
+                AlertLongRunningProduceMetricJobsResponse,
+            ),
+            "/unacast.byo.v1.MetricProductionOrchestrationService/ProcessProduceMetricJobResults": grpclib.const.Handler(
+                self.__rpc_process_produce_metric_job_results,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                ProcessProduceMetricJobResultsRequest,
+                betterproto_lib_google_protobuf.Empty,
+            ),
+        }
 
 
 class ByoServiceBase(ServiceBase):
 
     async def get_stored_collection(
         self, get_stored_collection_request: "GetStoredCollectionRequest"
     ) -> "GetStoredCollectionResponse":
@@ -2061,14 +2223,134 @@
                 grpclib.const.Cardinality.UNARY_UNARY,
                 DraftReportIdentifier,
                 betterproto_lib_google_protobuf.Empty,
             ),
         }
 
 
+class LocalByoWorkerInvocationServiceBase(ServiceBase):
+
+    async def do_process_report(
+        self, report_details_request: "ReportDetailsRequest"
+    ) -> "ReportDetails":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def do_verify_report_completion(
+        self, report_details_request: "ReportDetailsRequest"
+    ) -> "ReportDetails":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def do_process_addresses(
+        self,
+        betterproto_lib_google_protobuf_empty: "betterproto_lib_google_protobuf.Empty",
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def do_process_location_set_file(
+        self, location_set_file_request: "LocationSetFileRequest"
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def schedule_report_refresh(
+        self, schedule_report_refresh_request: "ScheduleReportRefreshRequest"
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def refresh_report(
+        self, refresh_report_request: "RefreshReportRequest"
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def __rpc_do_process_report(
+        self, stream: "grpclib.server.Stream[ReportDetailsRequest, ReportDetails]"
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.do_process_report(request)
+        await stream.send_message(response)
+
+    async def __rpc_do_verify_report_completion(
+        self, stream: "grpclib.server.Stream[ReportDetailsRequest, ReportDetails]"
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.do_verify_report_completion(request)
+        await stream.send_message(response)
+
+    async def __rpc_do_process_addresses(
+        self,
+        stream: "grpclib.server.Stream[betterproto_lib_google_protobuf.Empty, betterproto_lib_google_protobuf.Empty]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.do_process_addresses(request)
+        await stream.send_message(response)
+
+    async def __rpc_do_process_location_set_file(
+        self,
+        stream: "grpclib.server.Stream[LocationSetFileRequest, betterproto_lib_google_protobuf.Empty]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.do_process_location_set_file(request)
+        await stream.send_message(response)
+
+    async def __rpc_schedule_report_refresh(
+        self,
+        stream: "grpclib.server.Stream[ScheduleReportRefreshRequest, betterproto_lib_google_protobuf.Empty]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.schedule_report_refresh(request)
+        await stream.send_message(response)
+
+    async def __rpc_refresh_report(
+        self,
+        stream: "grpclib.server.Stream[RefreshReportRequest, betterproto_lib_google_protobuf.Empty]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.refresh_report(request)
+        await stream.send_message(response)
+
+    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
+        return {
+            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoProcessReport": grpclib.const.Handler(
+                self.__rpc_do_process_report,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                ReportDetailsRequest,
+                ReportDetails,
+            ),
+            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoVerifyReportCompletion": grpclib.const.Handler(
+                self.__rpc_do_verify_report_completion,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                ReportDetailsRequest,
+                ReportDetails,
+            ),
+            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoProcessAddresses": grpclib.const.Handler(
+                self.__rpc_do_process_addresses,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                betterproto_lib_google_protobuf.Empty,
+                betterproto_lib_google_protobuf.Empty,
+            ),
+            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoProcessLocationSetFile": grpclib.const.Handler(
+                self.__rpc_do_process_location_set_file,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                LocationSetFileRequest,
+                betterproto_lib_google_protobuf.Empty,
+            ),
+            "/unacast.byo.v1.LocalByoWorkerInvocationService/ScheduleReportRefresh": grpclib.const.Handler(
+                self.__rpc_schedule_report_refresh,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                ScheduleReportRefreshRequest,
+                betterproto_lib_google_protobuf.Empty,
+            ),
+            "/unacast.byo.v1.LocalByoWorkerInvocationService/RefreshReport": grpclib.const.Handler(
+                self.__rpc_refresh_report,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                RefreshReportRequest,
+                betterproto_lib_google_protobuf.Empty,
+            ),
+        }
+
+
 class PoiCollectionServiceBase(ServiceBase):
 
     async def create_new_collection(
         self, create_new_collection_request: "CreateNewCollectionRequest"
     ) -> "CreateNewCollectionResponse":
         raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
@@ -2322,289 +2604,7 @@
             "/unacast.byo.v1.PoiCollectionService/IngestAddressFile": grpclib.const.Handler(
                 self.__rpc_ingest_address_file,
                 grpclib.const.Cardinality.UNARY_UNARY,
                 AddressFileRequest,
                 Nothing,
             ),
         }
-
-
-class MetricProductionOrchestrationServiceBase(ServiceBase):
-
-    async def get_produce_metric_job(
-        self, get_produce_metric_job_request: "GetProduceMetricJobRequest"
-    ) -> "ProduceMetricJob":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def update_metric_production_status(
-        self, metric_production_status_update: "MetricProductionStatusUpdate"
-    ) -> "betterproto_lib_google_protobuf.Empty":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def list_produce_metric_jobs(
-        self, list_produce_metric_jobs_request: "ListProduceMetricJobsRequest"
-    ) -> "ListProduceMetricJobsResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def get_metric_production_status(
-        self, get_metric_production_status_request: "GetMetricProductionStatusRequest"
-    ) -> "GetMetricProductionStatusResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def restart_metric_production_job(
-        self, restart_produce_metric_job_request: "RestartProduceMetricJobRequest"
-    ) -> "betterproto_lib_google_protobuf.Empty":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def recreate_read_models_of_production_jobs(
-        self,
-        recreate_read_models_of_production_jobs_request: "RecreateReadModelsOfProductionJobsRequest",
-    ) -> "betterproto_lib_google_protobuf.Empty":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def alert_long_running_produce_metric_jobs(
-        self,
-        alert_long_running_produce_metric_jobs_request: "AlertLongRunningProduceMetricJobsRequest",
-    ) -> "AlertLongRunningProduceMetricJobsResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def process_produce_metric_job_results(
-        self,
-        process_produce_metric_job_results_request: "ProcessProduceMetricJobResultsRequest",
-    ) -> "betterproto_lib_google_protobuf.Empty":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def __rpc_get_produce_metric_job(
-        self,
-        stream: "grpclib.server.Stream[GetProduceMetricJobRequest, ProduceMetricJob]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.get_produce_metric_job(request)
-        await stream.send_message(response)
-
-    async def __rpc_update_metric_production_status(
-        self,
-        stream: "grpclib.server.Stream[MetricProductionStatusUpdate, betterproto_lib_google_protobuf.Empty]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.update_metric_production_status(request)
-        await stream.send_message(response)
-
-    async def __rpc_list_produce_metric_jobs(
-        self,
-        stream: "grpclib.server.Stream[ListProduceMetricJobsRequest, ListProduceMetricJobsResponse]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.list_produce_metric_jobs(request)
-        await stream.send_message(response)
-
-    async def __rpc_get_metric_production_status(
-        self,
-        stream: "grpclib.server.Stream[GetMetricProductionStatusRequest, GetMetricProductionStatusResponse]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.get_metric_production_status(request)
-        await stream.send_message(response)
-
-    async def __rpc_restart_metric_production_job(
-        self,
-        stream: "grpclib.server.Stream[RestartProduceMetricJobRequest, betterproto_lib_google_protobuf.Empty]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.restart_metric_production_job(request)
-        await stream.send_message(response)
-
-    async def __rpc_recreate_read_models_of_production_jobs(
-        self,
-        stream: "grpclib.server.Stream[RecreateReadModelsOfProductionJobsRequest, betterproto_lib_google_protobuf.Empty]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.recreate_read_models_of_production_jobs(request)
-        await stream.send_message(response)
-
-    async def __rpc_alert_long_running_produce_metric_jobs(
-        self,
-        stream: "grpclib.server.Stream[AlertLongRunningProduceMetricJobsRequest, AlertLongRunningProduceMetricJobsResponse]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.alert_long_running_produce_metric_jobs(request)
-        await stream.send_message(response)
-
-    async def __rpc_process_produce_metric_job_results(
-        self,
-        stream: "grpclib.server.Stream[ProcessProduceMetricJobResultsRequest, betterproto_lib_google_protobuf.Empty]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.process_produce_metric_job_results(request)
-        await stream.send_message(response)
-
-    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
-        return {
-            "/unacast.byo.v1.MetricProductionOrchestrationService/GetProduceMetricJob": grpclib.const.Handler(
-                self.__rpc_get_produce_metric_job,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                GetProduceMetricJobRequest,
-                ProduceMetricJob,
-            ),
-            "/unacast.byo.v1.MetricProductionOrchestrationService/UpdateMetricProductionStatus": grpclib.const.Handler(
-                self.__rpc_update_metric_production_status,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                MetricProductionStatusUpdate,
-                betterproto_lib_google_protobuf.Empty,
-            ),
-            "/unacast.byo.v1.MetricProductionOrchestrationService/ListProduceMetricJobs": grpclib.const.Handler(
-                self.__rpc_list_produce_metric_jobs,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                ListProduceMetricJobsRequest,
-                ListProduceMetricJobsResponse,
-            ),
-            "/unacast.byo.v1.MetricProductionOrchestrationService/GetMetricProductionStatus": grpclib.const.Handler(
-                self.__rpc_get_metric_production_status,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                GetMetricProductionStatusRequest,
-                GetMetricProductionStatusResponse,
-            ),
-            "/unacast.byo.v1.MetricProductionOrchestrationService/RestartMetricProductionJob": grpclib.const.Handler(
-                self.__rpc_restart_metric_production_job,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                RestartProduceMetricJobRequest,
-                betterproto_lib_google_protobuf.Empty,
-            ),
-            "/unacast.byo.v1.MetricProductionOrchestrationService/RecreateReadModelsOfProductionJobs": grpclib.const.Handler(
-                self.__rpc_recreate_read_models_of_production_jobs,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                RecreateReadModelsOfProductionJobsRequest,
-                betterproto_lib_google_protobuf.Empty,
-            ),
-            "/unacast.byo.v1.MetricProductionOrchestrationService/AlertLongRunningProduceMetricJobs": grpclib.const.Handler(
-                self.__rpc_alert_long_running_produce_metric_jobs,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                AlertLongRunningProduceMetricJobsRequest,
-                AlertLongRunningProduceMetricJobsResponse,
-            ),
-            "/unacast.byo.v1.MetricProductionOrchestrationService/ProcessProduceMetricJobResults": grpclib.const.Handler(
-                self.__rpc_process_produce_metric_job_results,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                ProcessProduceMetricJobResultsRequest,
-                betterproto_lib_google_protobuf.Empty,
-            ),
-        }
-
-
-class LocalByoWorkerInvocationServiceBase(ServiceBase):
-
-    async def do_process_report(
-        self, report_details_request: "ReportDetailsRequest"
-    ) -> "ReportDetails":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def do_verify_report_completion(
-        self, report_details_request: "ReportDetailsRequest"
-    ) -> "ReportDetails":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def do_process_addresses(
-        self,
-        betterproto_lib_google_protobuf_empty: "betterproto_lib_google_protobuf.Empty",
-    ) -> "betterproto_lib_google_protobuf.Empty":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def do_process_location_set_file(
-        self, location_set_file_request: "LocationSetFileRequest"
-    ) -> "betterproto_lib_google_protobuf.Empty":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def schedule_report_refresh(
-        self, schedule_report_refresh_request: "ScheduleReportRefreshRequest"
-    ) -> "betterproto_lib_google_protobuf.Empty":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def refresh_report(
-        self, refresh_report_request: "RefreshReportRequest"
-    ) -> "betterproto_lib_google_protobuf.Empty":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def __rpc_do_process_report(
-        self, stream: "grpclib.server.Stream[ReportDetailsRequest, ReportDetails]"
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.do_process_report(request)
-        await stream.send_message(response)
-
-    async def __rpc_do_verify_report_completion(
-        self, stream: "grpclib.server.Stream[ReportDetailsRequest, ReportDetails]"
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.do_verify_report_completion(request)
-        await stream.send_message(response)
-
-    async def __rpc_do_process_addresses(
-        self,
-        stream: "grpclib.server.Stream[betterproto_lib_google_protobuf.Empty, betterproto_lib_google_protobuf.Empty]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.do_process_addresses(request)
-        await stream.send_message(response)
-
-    async def __rpc_do_process_location_set_file(
-        self,
-        stream: "grpclib.server.Stream[LocationSetFileRequest, betterproto_lib_google_protobuf.Empty]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.do_process_location_set_file(request)
-        await stream.send_message(response)
-
-    async def __rpc_schedule_report_refresh(
-        self,
-        stream: "grpclib.server.Stream[ScheduleReportRefreshRequest, betterproto_lib_google_protobuf.Empty]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.schedule_report_refresh(request)
-        await stream.send_message(response)
-
-    async def __rpc_refresh_report(
-        self,
-        stream: "grpclib.server.Stream[RefreshReportRequest, betterproto_lib_google_protobuf.Empty]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.refresh_report(request)
-        await stream.send_message(response)
-
-    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
-        return {
-            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoProcessReport": grpclib.const.Handler(
-                self.__rpc_do_process_report,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                ReportDetailsRequest,
-                ReportDetails,
-            ),
-            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoVerifyReportCompletion": grpclib.const.Handler(
-                self.__rpc_do_verify_report_completion,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                ReportDetailsRequest,
-                ReportDetails,
-            ),
-            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoProcessAddresses": grpclib.const.Handler(
-                self.__rpc_do_process_addresses,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                betterproto_lib_google_protobuf.Empty,
-                betterproto_lib_google_protobuf.Empty,
-            ),
-            "/unacast.byo.v1.LocalByoWorkerInvocationService/DoProcessLocationSetFile": grpclib.const.Handler(
-                self.__rpc_do_process_location_set_file,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                LocationSetFileRequest,
-                betterproto_lib_google_protobuf.Empty,
-            ),
-            "/unacast.byo.v1.LocalByoWorkerInvocationService/ScheduleReportRefresh": grpclib.const.Handler(
-                self.__rpc_schedule_report_refresh,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                ScheduleReportRefreshRequest,
-                betterproto_lib_google_protobuf.Empty,
-            ),
-            "/unacast.byo.v1.LocalByoWorkerInvocationService/RefreshReport": grpclib.const.Handler(
-                self.__rpc_refresh_report,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                RefreshReportRequest,
-                betterproto_lib_google_protobuf.Empty,
-            ),
-        }

unacatlib/unacast/catalog/v1/init.py

@@ -156,14 +156,94 @@
     date of the delivery, if not set (all zeros), it will be continuously
     delivered ad infinitum The date can be in the future, meaning the delivery
     will be updated until that end_date
     """
 
 
 @dataclass(eq=False, repr=False)
+class Catalog(betterproto.Message):
+    id: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class GetCatalogRequest(betterproto.Message):
+    catalog_id: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class ListCatalogsRequest(betterproto.Message):
+    pass
+
+
+@dataclass(eq=False, repr=False)
+class ListCatalogsResponse(betterproto.Message):
+    catalogs: List["Catalog"] = betterproto.message_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class GetMetricRequest(betterproto.Message):
+    catalog_id: str = betterproto.string_field(1)
+    metric_id: str = betterproto.string_field(2)
+    billing_context: str = betterproto.string_field(3)
+
+
+@dataclass(eq=False, repr=False)
+class GetMetricResponse(betterproto.Message):
+    metric: "__metric_v1__.Metric" = betterproto.message_field(1)
+    complete_observation_period: "__metric_v1__.Period" = betterproto.message_field(2)
+
+
+@dataclass(eq=False, repr=False)
+class ListMetricsRequest(betterproto.Message):
+    catalog_id: str = betterproto.string_field(1)
+    billing_context: str = betterproto.string_field(2)
+    layer_filter: List[str] = betterproto.string_field(5)
+    availability_filter: List["__unatype__.AvailabilityKind"] = betterproto.enum_field(
+        6
+    )
+    page_size: int = betterproto.int32_field(14)
+    page_token: str = betterproto.string_field(15)
+
+
+@dataclass(eq=False, repr=False)
+class ListMetricsResponse(betterproto.Message):
+    metrics: List["__metric_v1__.Metric"] = betterproto.message_field(1)
+    next_page_token: str = betterproto.string_field(15)
+
+
+@dataclass(eq=False, repr=False)
+class GetLayerRequest(betterproto.Message):
+    catalog_id: str = betterproto.string_field(1)
+    layer_id: str = betterproto.string_field(2)
+
+
+@dataclass(eq=False, repr=False)
+class GetLayerResponse(betterproto.Message):
+    layer: "__maps_v1__.Layer" = betterproto.message_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class QueryLayerRequest(betterproto.Message):
+    catalog_id: str = betterproto.string_field(1)
+    layer_id: str = betterproto.string_field(2)
+    address_component_filter: List["__maps_v1__.AddressComponentFilter"] = (
+        betterproto.message_field(5)
+    )
+    page_size: int = betterproto.int32_field(14)
+    page_token: str = betterproto.string_field(15)
+
+
+@dataclass(eq=False, repr=False)
+class QueryLayerResponse(betterproto.Message):
+    features: List["__maps_v1__.Feature"] = betterproto.message_field(4)
+    total_size: int = betterproto.int32_field(14)
+    next_page_token: str = betterproto.string_field(15)
+
+
+@dataclass(eq=False, repr=False)
 class DataProductListing(betterproto.Message):
     name: str = betterproto.string_field(1)
     display_name: str = betterproto.string_field(2)
     layer_id: str = betterproto.string_field(3)
     data_listings: List["DataListing"] = betterproto.message_field(4)
     filters: List["__unatype__.FilterClause"] = betterproto.message_field(5)
     available_filters: List["DataProductListingFilterDefinition"] = (
@@ -218,14 +298,61 @@
     """
     The columns name in the delivery. Maps to `user_friendly_name` of
     unacast.v2.metric.DataSchema
     """
 
 
 @dataclass(eq=False, repr=False)
+class GetDataProductListingRequest(betterproto.Message):
+    name: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class ListDataProductListingsRequest(betterproto.Message):
+    filter: str = betterproto.string_field(1)
+    page_size: int = betterproto.int32_field(14)
+    page_token: str = betterproto.string_field(15)
+
+
+@dataclass(eq=False, repr=False)
+class ListDataProductListingsResponse(betterproto.Message):
+    data_product_listings: List["DataProductListing"] = betterproto.message_field(1)
+    next_page_token: str = betterproto.string_field(15)
+
+
+@dataclass(eq=False, repr=False)
+class CreateDataProductListingRequest(betterproto.Message):
+    name: str = betterproto.string_field(1)
+    display_name: str = betterproto.string_field(2)
+    layer_id: str = betterproto.string_field(3)
+    data_listings: List["DataListing"] = betterproto.message_field(4)
+    filters: List["__unatype__.FilterClause"] = betterproto.message_field(5)
+    available_filters: List["DataProductListingFilterDefinition"] = (
+        betterproto.message_field(6)
+    )
+    default_start_date: str = betterproto.string_field(7)
+
+
+@dataclass(eq=False, repr=False)
+class DownloadMetricRequest(betterproto.Message):
+    catalog_id: str = betterproto.string_field(1)
+    metric_id: str = betterproto.string_field(2)
+    billing_context: str = betterproto.string_field(3)
+    file_name: str = betterproto.string_field(6)
+    expiry_in_hours: int = betterproto.int64_field(10)
+
+
+@dataclass(eq=False, repr=False)
+class DownloadResponse(betterproto.Message):
+    download_id: str = betterproto.string_field(1)
+    file_urls: List[str] = betterproto.string_field(2)
+    expires_at: str = betterproto.string_field(10)
+
+
+@dataclass(eq=False, repr=False)
 class SearchMetricValuesRequest(betterproto.Message):
     catalog_id: str = betterproto.string_field(1)
     metric_id: str = betterproto.string_field(2)
     billing_context: str = betterproto.string_field(3)
     track_total_hits_boolean: bool = betterproto.bool_field(4, group="track_total_hits")
     track_total_hits_integer: int = betterproto.int64_field(
         12, group="track_total_hits"
@@ -433,14 +560,15 @@
 
 @dataclass(eq=False, repr=False)
 class RankRequest(betterproto.Message):
     billing_context: str = betterproto.string_field(1)
     rank_group_configs: List["RankGroupConfig"] = betterproto.message_field(4)
     comparison_filters: List["__unatype__.FilterClause"] = betterproto.message_field(5)
     result_filters: List["__unatype__.FilterClause"] = betterproto.message_field(6)
+    post_result_filters: List["__unatype__.FilterClause"] = betterproto.message_field(7)
     order_by: str = betterproto.string_field(12)
     page_size: int = betterproto.int32_field(14)
     page_token: str = betterproto.string_field(15)
 
 
 @dataclass(eq=False, repr=False)
 class RankResponse(betterproto.Message):
@@ -455,43 +583,15 @@
     observation_period_start: str = betterproto.string_field(3)
     observation_period_end: str = betterproto.string_field(4)
     value_info: Dict[str, str] = betterproto.map_field(
         5, betterproto.TYPE_STRING, betterproto.TYPE_STRING
     )
     rank_groups: List["RankGroupValue"] = betterproto.message_field(7)
     cardinality: int = betterproto.int32_field(8)
-
-
-@dataclass(eq=False, repr=False)
-class RankFeaturesRequest(betterproto.Message):
-    billing_context: str = betterproto.string_field(1)
-    rank_group_configs: List["RankGroupConfig"] = betterproto.message_field(4)
-    comparison_filters: List["__unatype__.FilterClause"] = betterproto.message_field(5)
-    result_filters: List["__unatype__.FilterClause"] = betterproto.message_field(6)
-    order_by: str = betterproto.string_field(12)
-    page_size: int = betterproto.int32_field(14)
-    page_token: str = betterproto.string_field(15)
-
-
-@dataclass(eq=False, repr=False)
-class RankFeaturesResponse(betterproto.Message):
-    res: List["FeatureRanks"] = betterproto.message_field(1)
-    next_page_token: str = betterproto.string_field(15)
-
-
-@dataclass(eq=False, repr=False)
-class FeatureRanks(betterproto.Message):
-    feature_id: str = betterproto.string_field(1)
-    feature_display_name: str = betterproto.string_field(2)
-    observation_period_start: str = betterproto.string_field(3)
-    observation_period_end: str = betterproto.string_field(4)
-    feature_info: Dict[str, str] = betterproto.map_field(
-        5, betterproto.TYPE_STRING, betterproto.TYPE_STRING
-    )
-    rank_groups: List["RankGroupValue"] = betterproto.message_field(7)
+    result_rank: int = betterproto.int32_field(9)
 
 
 @dataclass(eq=False, repr=False)
 class RankGroupConfig(betterproto.Message):
     name: str = betterproto.string_field(1)
     group_key: str = betterproto.string_field(2)
     value_name: str = betterproto.string_field(3)
@@ -504,550 +604,277 @@
     name: str = betterproto.string_field(2)
     value: float = betterproto.double_field(3)
     rank: int = betterproto.int32_field(4)
     group_size: int = betterproto.int32_field(5)
     group_avg_value: float = betterproto.double_field(6)
 
 
-@dataclass(eq=False, repr=False)
-class Catalog(betterproto.Message):
-    id: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class GetCatalogRequest(betterproto.Message):
-    catalog_id: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class ListCatalogsRequest(betterproto.Message):
-    pass
-
-
-@dataclass(eq=False, repr=False)
-class ListCatalogsResponse(betterproto.Message):
-    catalogs: List["Catalog"] = betterproto.message_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class GetMetricRequest(betterproto.Message):
-    catalog_id: str = betterproto.string_field(1)
-    metric_id: str = betterproto.string_field(2)
-    billing_context: str = betterproto.string_field(3)
-
-
-@dataclass(eq=False, repr=False)
-class GetMetricResponse(betterproto.Message):
-    metric: "__metric_v1__.Metric" = betterproto.message_field(1)
-    complete_observation_period: "__metric_v1__.Period" = betterproto.message_field(2)
-
-
-@dataclass(eq=False, repr=False)
-class ListMetricsRequest(betterproto.Message):
-    catalog_id: str = betterproto.string_field(1)
-    billing_context: str = betterproto.string_field(2)
-    layer_filter: List[str] = betterproto.string_field(5)
-    availability_filter: List["__unatype__.AvailabilityKind"] = betterproto.enum_field(
-        6
-    )
-    page_size: int = betterproto.int32_field(14)
-    page_token: str = betterproto.string_field(15)
-
-
-@dataclass(eq=False, repr=False)
-class ListMetricsResponse(betterproto.Message):
-    metrics: List["__metric_v1__.Metric"] = betterproto.message_field(1)
-    next_page_token: str = betterproto.string_field(15)
-
-
-@dataclass(eq=False, repr=False)
-class GetLayerRequest(betterproto.Message):
-    catalog_id: str = betterproto.string_field(1)
-    layer_id: str = betterproto.string_field(2)
-
-
-@dataclass(eq=False, repr=False)
-class GetLayerResponse(betterproto.Message):
-    layer: "__maps_v1__.Layer" = betterproto.message_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class QueryLayerRequest(betterproto.Message):
-    catalog_id: str = betterproto.string_field(1)
-    layer_id: str = betterproto.string_field(2)
-    address_component_filter: List["__maps_v1__.AddressComponentFilter"] = (
-        betterproto.message_field(5)
-    )
-    page_size: int = betterproto.int32_field(14)
-    page_token: str = betterproto.string_field(15)
-
-
-@dataclass(eq=False, repr=False)
-class QueryLayerResponse(betterproto.Message):
-    features: List["__maps_v1__.Feature"] = betterproto.message_field(4)
-    total_size: int = betterproto.int32_field(14)
-    next_page_token: str = betterproto.string_field(15)
-
-
-@dataclass(eq=False, repr=False)
-class DownloadMetricRequest(betterproto.Message):
-    catalog_id: str = betterproto.string_field(1)
-    metric_id: str = betterproto.string_field(2)
-    billing_context: str = betterproto.string_field(3)
-    file_name: str = betterproto.string_field(6)
-    expiry_in_hours: int = betterproto.int64_field(10)
-
-
-@dataclass(eq=False, repr=False)
-class DownloadResponse(betterproto.Message):
-    download_id: str = betterproto.string_field(1)
-    file_urls: List[str] = betterproto.string_field(2)
-    expires_at: str = betterproto.string_field(10)
-
-
-@dataclass(eq=False, repr=False)
-class GetDataProductListingRequest(betterproto.Message):
-    id: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class ListDataProductListingsRequest(betterproto.Message):
-    filter: str = betterproto.string_field(1)
-    page_size: int = betterproto.int32_field(14)
-    page_token: str = betterproto.string_field(15)
-
-
-@dataclass(eq=False, repr=False)
-class ListDataProductListingsResponse(betterproto.Message):
-    data_product_listings: List["DataProductListing"] = betterproto.message_field(1)
-    next_page_token: str = betterproto.string_field(15)
-
-
-@dataclass(eq=False, repr=False)
-class CreateDataProductListingRequest(betterproto.Message):
-    pass
-
-
-class QueryServiceStub(betterproto.ServiceStub):
-    async def search_metric_values(
+class CatalogServiceStub(betterproto.ServiceStub):
+    async def list_catalogs(
         self,
-        search_metric_values_request: "SearchMetricValuesRequest",
+        list_catalogs_request: "ListCatalogsRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "SearchMetricValuesResponse":
+    ) -> "ListCatalogsResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.QueryService/SearchMetricValues",
-            search_metric_values_request,
-            SearchMetricValuesResponse,
+            "/unacast.catalog.v1.CatalogService/ListCatalogs",
+            list_catalogs_request,
+            ListCatalogsResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def search_layer_features(
+    async def get_metric(
         self,
-        search_layer_features_request: "SearchLayerFeaturesRequest",
+        get_metric_request: "GetMetricRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "SearchLayerFeaturesResponse":
+    ) -> "GetMetricResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.QueryService/SearchLayerFeatures",
-            search_layer_features_request,
-            SearchLayerFeaturesResponse,
+            "/unacast.catalog.v1.CatalogService/GetMetric",
+            get_metric_request,
+            GetMetricResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def search_address_component_values(
+    async def list_metrics(
         self,
-        search_address_component_values_request: "SearchAddressComponentValuesRequest",
+        list_metrics_request: "ListMetricsRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "SearchAddressComponentValuesResponse":
+    ) -> "ListMetricsResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.QueryService/SearchAddressComponentValues",
-            search_address_component_values_request,
-            SearchAddressComponentValuesResponse,
+            "/unacast.catalog.v1.CatalogService/ListMetrics",
+            list_metrics_request,
+            ListMetricsResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def search_dimension_values(
+    async def get_layer(
         self,
-        search_dimension_values_request: "SearchDimensionValuesRequest",
+        get_layer_request: "GetLayerRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "SearchDimensionValuesResponse":
+    ) -> "GetLayerResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.QueryService/SearchDimensionValues",
-            search_dimension_values_request,
-            SearchDimensionValuesResponse,
+            "/unacast.catalog.v1.CatalogService/GetLayer",
+            get_layer_request,
+            GetLayerResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def search_metric_report(
+    async def query_layer(
         self,
-        search_metric_report_request: "SearchMetricReportRequest",
+        query_layer_request: "QueryLayerRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "SearchMetricReportResponse":
+    ) -> "QueryLayerResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.QueryService/SearchMetricReport",
-            search_metric_report_request,
-            SearchMetricReportResponse,
+            "/unacast.catalog.v1.CatalogService/QueryLayer",
+            query_layer_request,
+            QueryLayerResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def rank_features(
-        self,
-        rank_features_request: "RankFeaturesRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "RankFeaturesResponse":
-        return await self._unary_unary(
-            "/unacast.catalog.v1.QueryService/RankFeatures",
-            rank_features_request,
-            RankFeaturesResponse,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
 
-    async def rank(
+class DataProductListingServiceStub(betterproto.ServiceStub):
+    async def get_data_product_listing(
         self,
-        rank_request: "RankRequest",
+        get_data_product_listing_request: "GetDataProductListingRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "RankResponse":
+    ) -> "DataProductListing":
         return await self._unary_unary(
-            "/unacast.catalog.v1.QueryService/Rank",
-            rank_request,
-            RankResponse,
+            "/unacast.catalog.v1.DataProductListingService/GetDataProductListing",
+            get_data_product_listing_request,
+            DataProductListing,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-
-class CatalogServiceStub(betterproto.ServiceStub):
-    async def list_catalogs(
+    async def list_data_product_listings(
         self,
-        list_catalogs_request: "ListCatalogsRequest",
+        list_data_product_listings_request: "ListDataProductListingsRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "ListCatalogsResponse":
+    ) -> "ListDataProductListingsResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.CatalogService/ListCatalogs",
-            list_catalogs_request,
-            ListCatalogsResponse,
+            "/unacast.catalog.v1.DataProductListingService/ListDataProductListings",
+            list_data_product_listings_request,
+            ListDataProductListingsResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def get_metric(
+    async def create_data_product_listing(
         self,
-        get_metric_request: "GetMetricRequest",
+        create_data_product_listing_request: "CreateDataProductListingRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "GetMetricResponse":
+    ) -> "DataProductListing":
         return await self._unary_unary(
-            "/unacast.catalog.v1.CatalogService/GetMetric",
-            get_metric_request,
-            GetMetricResponse,
+            "/unacast.catalog.v1.DataProductListingService/CreateDataProductListing",
+            create_data_product_listing_request,
+            DataProductListing,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def list_metrics(
+
+class FileDownloadServiceStub(betterproto.ServiceStub):
+    async def download_metric(
         self,
-        list_metrics_request: "ListMetricsRequest",
+        download_metric_request: "DownloadMetricRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "ListMetricsResponse":
+    ) -> "DownloadResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.CatalogService/ListMetrics",
-            list_metrics_request,
-            ListMetricsResponse,
+            "/unacast.catalog.v1.FileDownloadService/DownloadMetric",
+            download_metric_request,
+            DownloadResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def get_layer(
+
+class QueryServiceStub(betterproto.ServiceStub):
+    async def search_metric_values(
         self,
-        get_layer_request: "GetLayerRequest",
+        search_metric_values_request: "SearchMetricValuesRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "GetLayerResponse":
+    ) -> "SearchMetricValuesResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.CatalogService/GetLayer",
-            get_layer_request,
-            GetLayerResponse,
+            "/unacast.catalog.v1.QueryService/SearchMetricValues",
+            search_metric_values_request,
+            SearchMetricValuesResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def query_layer(
+    async def search_layer_features(
         self,
-        query_layer_request: "QueryLayerRequest",
+        search_layer_features_request: "SearchLayerFeaturesRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "QueryLayerResponse":
+    ) -> "SearchLayerFeaturesResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.CatalogService/QueryLayer",
-            query_layer_request,
-            QueryLayerResponse,
+            "/unacast.catalog.v1.QueryService/SearchLayerFeatures",
+            search_layer_features_request,
+            SearchLayerFeaturesResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-
-class FileDownloadServiceStub(betterproto.ServiceStub):
-    async def download_metric(
+    async def search_address_component_values(
         self,
-        download_metric_request: "DownloadMetricRequest",
+        search_address_component_values_request: "SearchAddressComponentValuesRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "DownloadResponse":
+    ) -> "SearchAddressComponentValuesResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.FileDownloadService/DownloadMetric",
-            download_metric_request,
-            DownloadResponse,
+            "/unacast.catalog.v1.QueryService/SearchAddressComponentValues",
+            search_address_component_values_request,
+            SearchAddressComponentValuesResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-
-class DataProductListingServiceStub(betterproto.ServiceStub):
-    async def get_data_product_listing(
+    async def search_dimension_values(
         self,
-        get_data_product_listing_request: "GetDataProductListingRequest",
+        search_dimension_values_request: "SearchDimensionValuesRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "DataProductListing":
+    ) -> "SearchDimensionValuesResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.DataProductListingService/GetDataProductListing",
-            get_data_product_listing_request,
-            DataProductListing,
+            "/unacast.catalog.v1.QueryService/SearchDimensionValues",
+            search_dimension_values_request,
+            SearchDimensionValuesResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def list_data_product_listings(
+    async def search_metric_report(
         self,
-        list_data_product_listings_request: "ListDataProductListingsRequest",
+        search_metric_report_request: "SearchMetricReportRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "ListDataProductListingsResponse":
+    ) -> "SearchMetricReportResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.DataProductListingService/ListDataProductListings",
-            list_data_product_listings_request,
-            ListDataProductListingsResponse,
+            "/unacast.catalog.v1.QueryService/SearchMetricReport",
+            search_metric_report_request,
+            SearchMetricReportResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def create_data_product_listing(
+    async def rank(
         self,
-        create_data_product_listing_request: "CreateDataProductListingRequest",
+        rank_request: "RankRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "DataProductListing":
+    ) -> "RankResponse":
         return await self._unary_unary(
-            "/unacast.catalog.v1.DataProductListingService/CreateDataProductListing",
-            create_data_product_listing_request,
-            DataProductListing,
+            "/unacast.catalog.v1.QueryService/Rank",
+            rank_request,
+            RankResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
 
-class QueryServiceBase(ServiceBase):
-
-    async def search_metric_values(
-        self, search_metric_values_request: "SearchMetricValuesRequest"
-    ) -> "SearchMetricValuesResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def search_layer_features(
-        self, search_layer_features_request: "SearchLayerFeaturesRequest"
-    ) -> "SearchLayerFeaturesResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def search_address_component_values(
-        self,
-        search_address_component_values_request: "SearchAddressComponentValuesRequest",
-    ) -> "SearchAddressComponentValuesResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def search_dimension_values(
-        self, search_dimension_values_request: "SearchDimensionValuesRequest"
-    ) -> "SearchDimensionValuesResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def search_metric_report(
-        self, search_metric_report_request: "SearchMetricReportRequest"
-    ) -> "SearchMetricReportResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def rank_features(
-        self, rank_features_request: "RankFeaturesRequest"
-    ) -> "RankFeaturesResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def rank(self, rank_request: "RankRequest") -> "RankResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def __rpc_search_metric_values(
-        self,
-        stream: "grpclib.server.Stream[SearchMetricValuesRequest, SearchMetricValuesResponse]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.search_metric_values(request)
-        await stream.send_message(response)
-
-    async def __rpc_search_layer_features(
-        self,
-        stream: "grpclib.server.Stream[SearchLayerFeaturesRequest, SearchLayerFeaturesResponse]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.search_layer_features(request)
-        await stream.send_message(response)
-
-    async def __rpc_search_address_component_values(
-        self,
-        stream: "grpclib.server.Stream[SearchAddressComponentValuesRequest, SearchAddressComponentValuesResponse]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.search_address_component_values(request)
-        await stream.send_message(response)
-
-    async def __rpc_search_dimension_values(
-        self,
-        stream: "grpclib.server.Stream[SearchDimensionValuesRequest, SearchDimensionValuesResponse]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.search_dimension_values(request)
-        await stream.send_message(response)
-
-    async def __rpc_search_metric_report(
-        self,
-        stream: "grpclib.server.Stream[SearchMetricReportRequest, SearchMetricReportResponse]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.search_metric_report(request)
-        await stream.send_message(response)
-
-    async def __rpc_rank_features(
-        self, stream: "grpclib.server.Stream[RankFeaturesRequest, RankFeaturesResponse]"
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.rank_features(request)
-        await stream.send_message(response)
-
-    async def __rpc_rank(
-        self, stream: "grpclib.server.Stream[RankRequest, RankResponse]"
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.rank(request)
-        await stream.send_message(response)
-
-    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
-        return {
-            "/unacast.catalog.v1.QueryService/SearchMetricValues": grpclib.const.Handler(
-                self.__rpc_search_metric_values,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                SearchMetricValuesRequest,
-                SearchMetricValuesResponse,
-            ),
-            "/unacast.catalog.v1.QueryService/SearchLayerFeatures": grpclib.const.Handler(
-                self.__rpc_search_layer_features,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                SearchLayerFeaturesRequest,
-                SearchLayerFeaturesResponse,
-            ),
-            "/unacast.catalog.v1.QueryService/SearchAddressComponentValues": grpclib.const.Handler(
-                self.__rpc_search_address_component_values,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                SearchAddressComponentValuesRequest,
-                SearchAddressComponentValuesResponse,
-            ),
-            "/unacast.catalog.v1.QueryService/SearchDimensionValues": grpclib.const.Handler(
-                self.__rpc_search_dimension_values,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                SearchDimensionValuesRequest,
-                SearchDimensionValuesResponse,
-            ),
-            "/unacast.catalog.v1.QueryService/SearchMetricReport": grpclib.const.Handler(
-                self.__rpc_search_metric_report,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                SearchMetricReportRequest,
-                SearchMetricReportResponse,
-            ),
-            "/unacast.catalog.v1.QueryService/RankFeatures": grpclib.const.Handler(
-                self.__rpc_rank_features,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                RankFeaturesRequest,
-                RankFeaturesResponse,
-            ),
-            "/unacast.catalog.v1.QueryService/Rank": grpclib.const.Handler(
-                self.__rpc_rank,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                RankRequest,
-                RankResponse,
-            ),
-        }
-
-
 class CatalogServiceBase(ServiceBase):
 
     async def list_catalogs(
         self, list_catalogs_request: "ListCatalogsRequest"
     ) -> "ListCatalogsResponse":
         raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
@@ -1137,39 +964,14 @@
                 grpclib.const.Cardinality.UNARY_UNARY,
                 QueryLayerRequest,
                 QueryLayerResponse,
             ),
         }
 
 
-class FileDownloadServiceBase(ServiceBase):
-
-    async def download_metric(
-        self, download_metric_request: "DownloadMetricRequest"
-    ) -> "DownloadResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def __rpc_download_metric(
-        self, stream: "grpclib.server.Stream[DownloadMetricRequest, DownloadResponse]"
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.download_metric(request)
-        await stream.send_message(response)
-
-    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
-        return {
-            "/unacast.catalog.v1.FileDownloadService/DownloadMetric": grpclib.const.Handler(
-                self.__rpc_download_metric,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                DownloadMetricRequest,
-                DownloadResponse,
-            ),
-        }
-
-
 class DataProductListingServiceBase(ServiceBase):
 
     async def get_data_product_listing(
         self, get_data_product_listing_request: "GetDataProductListingRequest"
     ) -> "DataProductListing":
         raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
@@ -1224,7 +1026,151 @@
             "/unacast.catalog.v1.DataProductListingService/CreateDataProductListing": grpclib.const.Handler(
                 self.__rpc_create_data_product_listing,
                 grpclib.const.Cardinality.UNARY_UNARY,
                 CreateDataProductListingRequest,
                 DataProductListing,
             ),
         }
+
+
+class FileDownloadServiceBase(ServiceBase):
+
+    async def download_metric(
+        self, download_metric_request: "DownloadMetricRequest"
+    ) -> "DownloadResponse":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def __rpc_download_metric(
+        self, stream: "grpclib.server.Stream[DownloadMetricRequest, DownloadResponse]"
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.download_metric(request)
+        await stream.send_message(response)
+
+    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
+        return {
+            "/unacast.catalog.v1.FileDownloadService/DownloadMetric": grpclib.const.Handler(
+                self.__rpc_download_metric,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                DownloadMetricRequest,
+                DownloadResponse,
+            ),
+        }
+
+
+class QueryServiceBase(ServiceBase):
+
+    async def search_metric_values(
+        self, search_metric_values_request: "SearchMetricValuesRequest"
+    ) -> "SearchMetricValuesResponse":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def search_layer_features(
+        self, search_layer_features_request: "SearchLayerFeaturesRequest"
+    ) -> "SearchLayerFeaturesResponse":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def search_address_component_values(
+        self,
+        search_address_component_values_request: "SearchAddressComponentValuesRequest",
+    ) -> "SearchAddressComponentValuesResponse":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def search_dimension_values(
+        self, search_dimension_values_request: "SearchDimensionValuesRequest"
+    ) -> "SearchDimensionValuesResponse":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def search_metric_report(
+        self, search_metric_report_request: "SearchMetricReportRequest"
+    ) -> "SearchMetricReportResponse":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def rank(self, rank_request: "RankRequest") -> "RankResponse":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def __rpc_search_metric_values(
+        self,
+        stream: "grpclib.server.Stream[SearchMetricValuesRequest, SearchMetricValuesResponse]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.search_metric_values(request)
+        await stream.send_message(response)
+
+    async def __rpc_search_layer_features(
+        self,
+        stream: "grpclib.server.Stream[SearchLayerFeaturesRequest, SearchLayerFeaturesResponse]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.search_layer_features(request)
+        await stream.send_message(response)
+
+    async def __rpc_search_address_component_values(
+        self,
+        stream: "grpclib.server.Stream[SearchAddressComponentValuesRequest, SearchAddressComponentValuesResponse]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.search_address_component_values(request)
+        await stream.send_message(response)
+
+    async def __rpc_search_dimension_values(
+        self,
+        stream: "grpclib.server.Stream[SearchDimensionValuesRequest, SearchDimensionValuesResponse]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.search_dimension_values(request)
+        await stream.send_message(response)
+
+    async def __rpc_search_metric_report(
+        self,
+        stream: "grpclib.server.Stream[SearchMetricReportRequest, SearchMetricReportResponse]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.search_metric_report(request)
+        await stream.send_message(response)
+
+    async def __rpc_rank(
+        self, stream: "grpclib.server.Stream[RankRequest, RankResponse]"
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.rank(request)
+        await stream.send_message(response)
+
+    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
+        return {
+            "/unacast.catalog.v1.QueryService/SearchMetricValues": grpclib.const.Handler(
+                self.__rpc_search_metric_values,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                SearchMetricValuesRequest,
+                SearchMetricValuesResponse,
+            ),
+            "/unacast.catalog.v1.QueryService/SearchLayerFeatures": grpclib.const.Handler(
+                self.__rpc_search_layer_features,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                SearchLayerFeaturesRequest,
+                SearchLayerFeaturesResponse,
+            ),
+            "/unacast.catalog.v1.QueryService/SearchAddressComponentValues": grpclib.const.Handler(
+                self.__rpc_search_address_component_values,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                SearchAddressComponentValuesRequest,
+                SearchAddressComponentValuesResponse,
+            ),
+            "/unacast.catalog.v1.QueryService/SearchDimensionValues": grpclib.const.Handler(
+                self.__rpc_search_dimension_values,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                SearchDimensionValuesRequest,
+                SearchDimensionValuesResponse,
+            ),
+            "/unacast.catalog.v1.QueryService/SearchMetricReport": grpclib.const.Handler(
+                self.__rpc_search_metric_report,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                SearchMetricReportRequest,
+                SearchMetricReportResponse,
+            ),
+            "/unacast.catalog.v1.QueryService/Rank": grpclib.const.Handler(
+                self.__rpc_rank,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                RankRequest,
+                RankResponse,
+            ),
+        }

unacatlib/unacast/iam/v1/init.py

  • Ordering differences only
@@ -33,14 +33,47 @@
     SOLUTION_SPECIALIST = 11
     USER = 15
     EXPERIMENTAL = 16
     ADMIN = 20
 
 
 @dataclass(eq=False, repr=False)
+class UserRoles(betterproto.Message):
+    catalog_roles: Dict[str, "CatalogRoleList"] = betterproto.map_field(
+        21, betterproto.TYPE_STRING, betterproto.TYPE_MESSAGE
+    )
+
+
+@dataclass(eq=False, repr=False)
+class CatalogRoleList(betterproto.Message):
+    roles: List["CatalogRole"] = betterproto.enum_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class GetCatalogListingsRequest(betterproto.Message):
+    catalog_roles: List["CatalogRole"] = betterproto.enum_field(1)
+    catalog_id: str = betterproto.string_field(2)
+
+
+@dataclass(eq=False, repr=False)
+class GetCatalogListingsResponse(betterproto.Message):
+    listings: List[str] = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class NewUserRolesRequest(betterproto.Message):
+    catalog_ids: List[str] = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class NewUserRolesResponse(betterproto.Message):
+    user_roles: "UserRoles" = betterproto.message_field(1)
+
+
+@dataclass(eq=False, repr=False)
 class UserInfo(betterproto.Message):
     uid: str = betterproto.string_field(1)
     display_name: str = betterproto.string_field(4)
     email: str = betterproto.string_field(5)
     photo_url: str = betterproto.string_field(6)
     create_time: datetime = betterproto.message_field(9)
     last_login_time: datetime = betterproto.message_field(10)
@@ -124,45 +157,48 @@
 
 
 @dataclass(eq=False, repr=False)
 class ListUserFilter(betterproto.Message):
     include_claims: List[str] = betterproto.string_field(1)
 
 
-@dataclass(eq=False, repr=False)
-class UserRoles(betterproto.Message):
-    catalog_roles: Dict[str, "CatalogRoleList"] = betterproto.map_field(
-        21, betterproto.TYPE_STRING, betterproto.TYPE_MESSAGE
-    )
-
-
-@dataclass(eq=False, repr=False)
-class CatalogRoleList(betterproto.Message):
-    roles: List["CatalogRole"] = betterproto.enum_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class GetCatalogListingsRequest(betterproto.Message):
-    catalog_roles: List["CatalogRole"] = betterproto.enum_field(1)
-    catalog_id: str = betterproto.string_field(2)
-
-
-@dataclass(eq=False, repr=False)
-class GetCatalogListingsResponse(betterproto.Message):
-    listings: List[str] = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class NewUserRolesRequest(betterproto.Message):
-    catalog_ids: List[str] = betterproto.string_field(1)
-
+class UserRoleServiceStub(betterproto.ServiceStub):
+    async def get_new_user_roles(
+        self,
+        new_user_roles_request: "NewUserRolesRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "NewUserRolesResponse":
+        return await self._unary_unary(
+            "/unacast.iam.v1.UserRoleService/GetNewUserRoles",
+            new_user_roles_request,
+            NewUserRolesResponse,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
-@dataclass(eq=False, repr=False)
-class NewUserRolesResponse(betterproto.Message):
-    user_roles: "UserRoles" = betterproto.message_field(1)
+    async def get_catalog_listings(
+        self,
+        get_catalog_listings_request: "GetCatalogListingsRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "GetCatalogListingsResponse":
+        return await self._unary_unary(
+            "/unacast.iam.v1.UserRoleService/GetCatalogListings",
+            get_catalog_listings_request,
+            GetCatalogListingsResponse,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
 
 class IamServiceStub(betterproto.ServiceStub):
     async def get_user(
         self,
         get_user_request: "GetUserRequest",
         *,
@@ -278,48 +314,56 @@
             IamUser,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
 
-class UserRoleServiceStub(betterproto.ServiceStub):
+class UserRoleServiceBase(ServiceBase):
+
     async def get_new_user_roles(
-        self,
-        new_user_roles_request: "NewUserRolesRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
+        self, new_user_roles_request: "NewUserRolesRequest"
     ) -> "NewUserRolesResponse":
-        return await self._unary_unary(
-            "/unacast.iam.v1.UserRoleService/GetNewUserRoles",
-            new_user_roles_request,
-            NewUserRolesResponse,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
     async def get_catalog_listings(
-        self,
-        get_catalog_listings_request: "GetCatalogListingsRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
+        self, get_catalog_listings_request: "GetCatalogListingsRequest"
     ) -> "GetCatalogListingsResponse":
-        return await self._unary_unary(
-            "/unacast.iam.v1.UserRoleService/GetCatalogListings",
-            get_catalog_listings_request,
-            GetCatalogListingsResponse,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def __rpc_get_new_user_roles(
+        self, stream: "grpclib.server.Stream[NewUserRolesRequest, NewUserRolesResponse]"
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.get_new_user_roles(request)
+        await stream.send_message(response)
+
+    async def __rpc_get_catalog_listings(
+        self,
+        stream: "grpclib.server.Stream[GetCatalogListingsRequest, GetCatalogListingsResponse]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.get_catalog_listings(request)
+        await stream.send_message(response)
+
+    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
+        return {
+            "/unacast.iam.v1.UserRoleService/GetNewUserRoles": grpclib.const.Handler(
+                self.__rpc_get_new_user_roles,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                NewUserRolesRequest,
+                NewUserRolesResponse,
+            ),
+            "/unacast.iam.v1.UserRoleService/GetCatalogListings": grpclib.const.Handler(
+                self.__rpc_get_catalog_listings,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                GetCatalogListingsRequest,
+                GetCatalogListingsResponse,
+            ),
+        }
 
 
 class IamServiceBase(ServiceBase):
 
     async def get_user(self, get_user_request: "GetUserRequest") -> "IamUser":
         raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
@@ -443,51 +487,7 @@
             "/unacast.iam.v1.IamService/UpdateUserSettings": grpclib.const.Handler(
                 self.__rpc_update_user_settings,
                 grpclib.const.Cardinality.UNARY_UNARY,
                 UpdateUserSettingsRequest,
                 IamUser,
             ),
         }
-
-
-class UserRoleServiceBase(ServiceBase):
-
-    async def get_new_user_roles(
-        self, new_user_roles_request: "NewUserRolesRequest"
-    ) -> "NewUserRolesResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def get_catalog_listings(
-        self, get_catalog_listings_request: "GetCatalogListingsRequest"
-    ) -> "GetCatalogListingsResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def __rpc_get_new_user_roles(
-        self, stream: "grpclib.server.Stream[NewUserRolesRequest, NewUserRolesResponse]"
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.get_new_user_roles(request)
-        await stream.send_message(response)
-
-    async def __rpc_get_catalog_listings(
-        self,
-        stream: "grpclib.server.Stream[GetCatalogListingsRequest, GetCatalogListingsResponse]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.get_catalog_listings(request)
-        await stream.send_message(response)
-
-    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
-        return {
-            "/unacast.iam.v1.UserRoleService/GetNewUserRoles": grpclib.const.Handler(
-                self.__rpc_get_new_user_roles,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                NewUserRolesRequest,
-                NewUserRolesResponse,
-            ),
-            "/unacast.iam.v1.UserRoleService/GetCatalogListings": grpclib.const.Handler(
-                self.__rpc_get_catalog_listings,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                GetCatalogListingsRequest,
-                GetCatalogListingsResponse,
-            ),
-        }

unacatlib/unacast/maps/v1/init.py

  • Ordering differences only
@@ -70,33 +70,14 @@
 @dataclass(eq=False, repr=False)
 class AddressComponentFilter(betterproto.Message):
     component: str = betterproto.string_field(1)
     values: List[str] = betterproto.string_field(3)
 
 
 @dataclass(eq=False, repr=False)
-class Feature(betterproto.Message):
-    layer_id: str = betterproto.string_field(1)
-    """@exclude @inject_tag: `bigquery:"layer_id"`"""
-
-    feature_id: str = betterproto.string_field(3)
-    """@exclude @inject_tag: `bigquery:"feature_id"`"""
-
-    name: str = betterproto.string_field(4)
-    geo: str = betterproto.string_field(6)
-    point: str = betterproto.string_field(8)
-    polygon: str = betterproto.string_field(9)
-    address_components: List["AddressComponentValue"] = betterproto.message_field(7)
-    """@exclude @inject_tag: `bigquery:"address_components"`"""
-
-    came_into_existence: str = betterproto.string_field(10)
-    ceased_to_exist: str = betterproto.string_field(11)
-
-
-@dataclass(eq=False, repr=False)
 class MapLayerSeries(betterproto.Message):
     id: str = betterproto.string_field(1)
     catalog_id: str = betterproto.string_field(2)
     display_name: str = betterproto.string_field(3)
     description: str = betterproto.string_field(4)
     spec: "LayerSpec" = betterproto.message_field(5)
     revisions: List["MapLayerRevision"] = betterproto.message_field(6)
@@ -150,14 +131,33 @@
 class AddressComponentValueSpec(betterproto.Message):
     component: str = betterproto.string_field(1)
     allow_empty_values: bool = betterproto.bool_field(10)
     requires_specific_resource: str = betterproto.string_field(12)
 
 
 @dataclass(eq=False, repr=False)
+class Feature(betterproto.Message):
+    layer_id: str = betterproto.string_field(1)
+    """@exclude @inject_tag: `bigquery:"layer_id"`"""
+
+    feature_id: str = betterproto.string_field(3)
+    """@exclude @inject_tag: `bigquery:"feature_id"`"""
+
+    name: str = betterproto.string_field(4)
+    geo: str = betterproto.string_field(6)
+    point: str = betterproto.string_field(8)
+    polygon: str = betterproto.string_field(9)
+    address_components: List["AddressComponentValue"] = betterproto.message_field(7)
+    """@exclude @inject_tag: `bigquery:"address_components"`"""
+
+    came_into_existence: str = betterproto.string_field(10)
+    ceased_to_exist: str = betterproto.string_field(11)
+
+
+@dataclass(eq=False, repr=False)
 class GetLayerRequest(betterproto.Message):
     layer_id: str = betterproto.string_field(1)
 
 
 @dataclass(eq=False, repr=False)
 class ListLayersRequest(betterproto.Message):
     pass

unacatlib/unacast/metric/v1/init.py

  • Ordering differences only
@@ -448,28 +448,14 @@
 @dataclass(eq=False, repr=False)
 class MetricParentSpec(betterproto.Message):
     tags: List["TagSpec"] = betterproto.message_field(8)
     groups: List[str] = betterproto.string_field(9)
 
 
 @dataclass(eq=False, repr=False)
-class MetricGroup(betterproto.Message):
-    catalog_id: str = betterproto.string_field(1)
-    metric_id: str = betterproto.string_field(2)
-    key: str = betterproto.string_field(3)
-    key_display_name: str = betterproto.string_field(4)
-    possible_values: "PossibleValues" = betterproto.message_field(5)
-
-
-@dataclass(eq=False, repr=False)
-class PossibleValues(betterproto.Message):
-    ids: List[str] = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
 class CreateMetricRequest(betterproto.Message):
     given_id: str = betterproto.string_field(1)
     name: str = betterproto.string_field(2)
     spec: "MetricSpec" = betterproto.message_field(3)
     description: str = betterproto.string_field(4)
     version_spec: "VersionSpec" = betterproto.message_field(5)
     availability: "__unatype__.AvailabilityKind" = betterproto.enum_field(6)
@@ -489,14 +475,52 @@
 class ListMetricValuesResponse(betterproto.Message):
     values: List["MetricValue"] = betterproto.message_field(1)
     total_size: int = betterproto.int32_field(14)
     next_page_token: str = betterproto.string_field(15)
 
 
 @dataclass(eq=False, repr=False)
+class DataDeliveryExecution(betterproto.Message):
+    id: str = betterproto.string_field(1)
+    parent_data_delivery_id: str = betterproto.string_field(3)
+    steps: List["DataDeliveryExecutionStep"] = betterproto.message_field(4)
+    delivery_start_date: str = betterproto.string_field(5)
+    delivery_end_date: str = betterproto.string_field(6)
+    update_time_string: str = betterproto.string_field(7)
+    create_time_string: str = betterproto.string_field(9)
+
+
+@dataclass(eq=False, repr=False)
+class DataDeliveryExecutionStep(betterproto.Message):
+    id: str = betterproto.string_field(1)
+    status: "StepStatus" = betterproto.enum_field(2)
+    error_message: str = betterproto.string_field(7)
+    parent_execution_id: str = betterproto.string_field(9)
+    """Todo tag"""
+
+    parent_step_id: str = betterproto.string_field(10)
+    update_time_string: str = betterproto.string_field(5)
+    create_time_string: str = betterproto.string_field(6)
+
+
+@dataclass(eq=False, repr=False)
+class MetricGroup(betterproto.Message):
+    catalog_id: str = betterproto.string_field(1)
+    metric_id: str = betterproto.string_field(2)
+    key: str = betterproto.string_field(3)
+    key_display_name: str = betterproto.string_field(4)
+    possible_values: "PossibleValues" = betterproto.message_field(5)
+
+
+@dataclass(eq=False, repr=False)
+class PossibleValues(betterproto.Message):
+    ids: List[str] = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
 class DeleteLensRequest(betterproto.Message):
     billing_context: str = betterproto.string_field(1)
     lens_id: str = betterproto.string_field(2)
 
 
 @dataclass(eq=False, repr=False)
 class ListLensesRequest(betterproto.Message):
@@ -532,38 +556,14 @@
 
 
 @dataclass(eq=False, repr=False)
 class CreateLensResponse(betterproto.Message):
     lens: "Lens" = betterproto.message_field(1)
 
 
-@dataclass(eq=False, repr=False)
-class DataDeliveryExecution(betterproto.Message):
-    id: str = betterproto.string_field(1)
-    parent_data_delivery_id: str = betterproto.string_field(3)
-    steps: List["DataDeliveryExecutionStep"] = betterproto.message_field(4)
-    delivery_start_date: str = betterproto.string_field(5)
-    delivery_end_date: str = betterproto.string_field(6)
-    update_time_string: str = betterproto.string_field(7)
-    create_time_string: str = betterproto.string_field(9)
-
-
-@dataclass(eq=False, repr=False)
-class DataDeliveryExecutionStep(betterproto.Message):
-    id: str = betterproto.string_field(1)
-    status: "StepStatus" = betterproto.enum_field(2)
-    error_message: str = betterproto.string_field(7)
-    parent_execution_id: str = betterproto.string_field(9)
-    """Todo tag"""
-
-    parent_step_id: str = betterproto.string_field(10)
-    update_time_string: str = betterproto.string_field(5)
-    create_time_string: str = betterproto.string_field(6)
-
-
 class LensServiceStub(betterproto.ServiceStub):
     async def create_lens(
         self,
         create_lens_request: "CreateLensRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,

unacatlib/unacast/operator/v1/init.py

  • Ordering differences only
@@ -33,62 +33,61 @@
 
 class AggregationStrategy(betterproto.Enum):
     DEFAULT = 0
     COPY = 1
 
 
 @dataclass(eq=False, repr=False)
-class CreateCatalogRequest(betterproto.Message):
-    given_id: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class GetMetricModelRequest(betterproto.Message):
+class IndexJob(betterproto.Message):
     id: str = betterproto.string_field(1)
+    target_object_id: str = betterproto.string_field(2)
+    kind: str = betterproto.string_field(3)
+    index_id: str = betterproto.string_field(4)
+    initial_observation_start_date: str = betterproto.string_field(5)
+    final_observation_end_date: str = betterproto.string_field(6)
+    create_time_string: str = betterproto.string_field(7)
+    update_time_string: str = betterproto.string_field(8)
 
 
 @dataclass(eq=False, repr=False)
-class ListMetricModelsRequest(betterproto.Message):
-    pass
-
+class GetIndexJobStatusRequest(betterproto.Message):
+    """Old request"""
 
-@dataclass(eq=False, repr=False)
-class ListMetricModelsResponse(betterproto.Message):
-    metric_models: List["__metricmodel_v1__.MetricModel"] = betterproto.message_field(1)
+    index_id: str = betterproto.string_field(1)
 
 
 @dataclass(eq=False, repr=False)
-class CreateMetricModelRequest(betterproto.Message):
-    id: str = betterproto.string_field(1)
-    billing_account_id: str = betterproto.string_field(2)
-    storage_access_id: str = betterproto.string_field(3)
-    display_name: str = betterproto.string_field(4)
+class GetIndexJobStatusResponse(betterproto.Message):
+    index: "__index_v1__.Index" = betterproto.message_field(1)
+    status: "__index_v1__.IndexStatus" = betterproto.enum_field(2)
+    error_details: List["FailedIndexEvent"] = betterproto.message_field(3)
+    is_ready: bool = betterproto.bool_field(4)
+    status_string: str = betterproto.string_field(5)
 
 
 @dataclass(eq=False, repr=False)
-class CreateMetricModelRevisionRequest(betterproto.Message):
-    metric_model_id: str = betterproto.string_field(1)
-    revision: str = betterproto.string_field(2)
-    status: "__metricmodel_v1__.MetricModelRevisionStatus" = betterproto.enum_field(3)
-    production_lag_days: int = betterproto.int32_field(4)
-    earliest_observation_period_start: str = betterproto.string_field(5)
-    spec: "__metricmodel_v1__.MetricModelSpec" = betterproto.message_field(6)
+class GetJobStatusRequest(betterproto.Message):
+    job_id: str = betterproto.string_field(1)
 
 
 @dataclass(eq=False, repr=False)
-class ChangeRevisionStatusRequest(betterproto.Message):
-    metric_model_id: str = betterproto.string_field(1)
-    revision: str = betterproto.string_field(2)
-    status: "__metricmodel_v1__.MetricModelRevisionStatus" = betterproto.enum_field(3)
+class GetJobStatusResponse(betterproto.Message):
+    job_id: str = betterproto.string_field(1)
+    error_details: List["FailedIndexEvent"] = betterproto.message_field(2)
+    is_ready: bool = betterproto.bool_field(3)
+    status: "__index_v1__.IndexStatus" = betterproto.enum_field(4)
+    status_string: str = betterproto.string_field(5)
 
 
 @dataclass(eq=False, repr=False)
-class SetMetricModelCurrentRevisionRequest(betterproto.Message):
-    metric_model_id: str = betterproto.string_field(1)
-    revision: str = betterproto.string_field(2)
+class FailedIndexEvent(betterproto.Message):
+    event_id: str = betterproto.string_field(1)
+    error_message: str = betterproto.string_field(2)
+    update_time_string: str = betterproto.string_field(3)
+    index_id: str = betterproto.string_field(4)
 
 
 @dataclass(eq=False, repr=False)
 class ListDimensionRequest(betterproto.Message):
     catalog_id: str = betterproto.string_field(1)
 
 
@@ -301,49 +300,16 @@
     without related map layer, target must be a metric with related map layer
     """
 
     allow_missing_value: bool = betterproto.bool_field(3)
 
 
 @dataclass(eq=False, repr=False)
-class GetIndexJobStatusRequest(betterproto.Message):
-    """Old request"""
-
-    index_id: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class GetIndexJobStatusResponse(betterproto.Message):
-    index: "__index_v1__.Index" = betterproto.message_field(1)
-    status: "__index_v1__.IndexStatus" = betterproto.enum_field(2)
-    error_details: List["FailedIndexEvent"] = betterproto.message_field(3)
-    is_ready: bool = betterproto.bool_field(4)
-    status_string: str = betterproto.string_field(5)
-
-
-@dataclass(eq=False, repr=False)
-class GetJobStatusRequest(betterproto.Message):
-    job_id: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
-class GetJobStatusResponse(betterproto.Message):
-    job_id: str = betterproto.string_field(1)
-    error_details: List["FailedIndexEvent"] = betterproto.message_field(2)
-    is_ready: bool = betterproto.bool_field(3)
-    status: "__index_v1__.IndexStatus" = betterproto.enum_field(4)
-    status_string: str = betterproto.string_field(5)
-
-
-@dataclass(eq=False, repr=False)
-class FailedIndexEvent(betterproto.Message):
-    event_id: str = betterproto.string_field(1)
-    error_message: str = betterproto.string_field(2)
-    update_time_string: str = betterproto.string_field(3)
-    index_id: str = betterproto.string_field(4)
+class CreateCatalogRequest(betterproto.Message):
+    given_id: str = betterproto.string_field(1)
 
 
 @dataclass(eq=False, repr=False)
 class GetDatasetRequest(betterproto.Message):
     dataset_id: str = betterproto.string_field(1)
 
 
@@ -419,14 +385,57 @@
 @dataclass(eq=False, repr=False)
 class GetDatasetProductionStatusResponse(betterproto.Message):
     dataset_id: str = betterproto.string_field(1)
     status: "__dataset_v1__.DatasetDataProductionStatus" = betterproto.message_field(2)
 
 
 @dataclass(eq=False, repr=False)
+class ListAddressComponentRequest(betterproto.Message):
+    catalog_id: str = betterproto.string_field(4)
+    map_layer_id: str = betterproto.string_field(6)
+
+
+@dataclass(eq=False, repr=False)
+class ListAddressComponentResponse(betterproto.Message):
+    address_components: List["__maps_v1__.AddressComponent"] = (
+        betterproto.message_field(1)
+    )
+
+
+@dataclass(eq=False, repr=False)
+class CreateAddressComponentRequest(betterproto.Message):
+    component: str = betterproto.string_field(1)
+    short_name: str = betterproto.string_field(2)
+    display_name: str = betterproto.string_field(3)
+    description: str = betterproto.string_field(7)
+    catalog_id: str = betterproto.string_field(4)
+    kind: "__maps_v1__.ComponentKind" = betterproto.enum_field(5)
+    map_layer_id: str = betterproto.string_field(6)
+    id_display_name: str = betterproto.string_field(8)
+    availability: "__unatype__.AvailabilityKind" = betterproto.enum_field(10)
+
+
+@dataclass(eq=False, repr=False)
+class IndexAddressComponentRequest(betterproto.Message):
+    component: str = betterproto.string_field(1)
+    catalog_id: str = betterproto.string_field(5)
+    big_query_table_id: str = betterproto.string_field(3)
+
+
+@dataclass(eq=False, repr=False)
+class IndexAddressComponentResponse(betterproto.Message):
+    job_id: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
+class DeleteAddressComponentRequest(betterproto.Message):
+    component: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
 class CreateLayerRequest(betterproto.Message):
     given_id: str = betterproto.string_field(2)
     spec: "__maps_v1__.LayerSpec" = betterproto.message_field(5)
     layer_kind: "__maps_v1__.LayerKind" = betterproto.enum_field(6)
     display_name: str = betterproto.string_field(8)
     description: str = betterproto.string_field(9)
     skip_address_component: bool = betterproto.bool_field(10)
@@ -540,185 +549,89 @@
 @dataclass(eq=False, repr=False)
 class NewLayerSeriesRevisionBasedOnDataSourceRequest(betterproto.Message):
     layer_series_id: str = betterproto.string_field(1)
     big_query_table_name: str = betterproto.string_field(2)
 
 
 @dataclass(eq=False, repr=False)
-class IndexJob(betterproto.Message):
+class GetMetricModelRequest(betterproto.Message):
     id: str = betterproto.string_field(1)
-    target_object_id: str = betterproto.string_field(2)
-    kind: str = betterproto.string_field(3)
-    index_id: str = betterproto.string_field(4)
-    initial_observation_start_date: str = betterproto.string_field(5)
-    final_observation_end_date: str = betterproto.string_field(6)
-    create_time_string: str = betterproto.string_field(7)
-    update_time_string: str = betterproto.string_field(8)
 
 
 @dataclass(eq=False, repr=False)
-class ListAddressComponentRequest(betterproto.Message):
-    catalog_id: str = betterproto.string_field(4)
-    map_layer_id: str = betterproto.string_field(6)
+class ListMetricModelsRequest(betterproto.Message):
+    pass
 
 
 @dataclass(eq=False, repr=False)
-class ListAddressComponentResponse(betterproto.Message):
-    address_components: List["__maps_v1__.AddressComponent"] = (
-        betterproto.message_field(1)
-    )
+class ListMetricModelsResponse(betterproto.Message):
+    metric_models: List["__metricmodel_v1__.MetricModel"] = betterproto.message_field(1)
 
 
 @dataclass(eq=False, repr=False)
-class CreateAddressComponentRequest(betterproto.Message):
-    component: str = betterproto.string_field(1)
-    short_name: str = betterproto.string_field(2)
-    display_name: str = betterproto.string_field(3)
-    description: str = betterproto.string_field(7)
-    catalog_id: str = betterproto.string_field(4)
-    kind: "__maps_v1__.ComponentKind" = betterproto.enum_field(5)
-    map_layer_id: str = betterproto.string_field(6)
-    id_display_name: str = betterproto.string_field(8)
-    availability: "__unatype__.AvailabilityKind" = betterproto.enum_field(10)
+class CreateMetricModelRequest(betterproto.Message):
+    id: str = betterproto.string_field(1)
+    billing_account_id: str = betterproto.string_field(2)
+    storage_access_id: str = betterproto.string_field(3)
+    display_name: str = betterproto.string_field(4)
 
 
 @dataclass(eq=False, repr=False)
-class IndexAddressComponentRequest(betterproto.Message):
-    component: str = betterproto.string_field(1)
-    catalog_id: str = betterproto.string_field(5)
-    big_query_table_id: str = betterproto.string_field(3)
+class CreateMetricModelRevisionRequest(betterproto.Message):
+    metric_model_id: str = betterproto.string_field(1)
+    revision: str = betterproto.string_field(2)
+    status: "__metricmodel_v1__.MetricModelRevisionStatus" = betterproto.enum_field(3)
+    production_lag_days: int = betterproto.int32_field(4)
+    earliest_observation_period_start: str = betterproto.string_field(5)
+    spec: "__metricmodel_v1__.MetricModelSpec" = betterproto.message_field(6)
 
 
 @dataclass(eq=False, repr=False)
-class IndexAddressComponentResponse(betterproto.Message):
-    job_id: str = betterproto.string_field(1)
+class ChangeRevisionStatusRequest(betterproto.Message):
+    metric_model_id: str = betterproto.string_field(1)
+    revision: str = betterproto.string_field(2)
+    status: "__metricmodel_v1__.MetricModelRevisionStatus" = betterproto.enum_field(3)
 
 
 @dataclass(eq=False, repr=False)
-class DeleteAddressComponentRequest(betterproto.Message):
-    component: str = betterproto.string_field(1)
-
-
-class CatalogOperatorServiceStub(betterproto.ServiceStub):
-    async def create_catalog(
-        self,
-        create_catalog_request: "CreateCatalogRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "__catalog_v1__.Catalog":
-        return await self._unary_unary(
-            "/unacast.operator.v1.CatalogOperatorService/CreateCatalog",
-            create_catalog_request,
-            __catalog_v1__.Catalog,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
-
-
-class MetricModelOperatorServiceStub(betterproto.ServiceStub):
-    async def get_metric_model(
-        self,
-        get_metric_model_request: "GetMetricModelRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "__metricmodel_v1__.MetricModel":
-        return await self._unary_unary(
-            "/unacast.operator.v1.MetricModelOperatorService/GetMetricModel",
-            get_metric_model_request,
-            __metricmodel_v1__.MetricModel,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
-
-    async def list_metric_models(
-        self,
-        list_metric_models_request: "ListMetricModelsRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "ListMetricModelsResponse":
-        return await self._unary_unary(
-            "/unacast.operator.v1.MetricModelOperatorService/ListMetricModels",
-            list_metric_models_request,
-            ListMetricModelsResponse,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+class SetMetricModelCurrentRevisionRequest(betterproto.Message):
+    metric_model_id: str = betterproto.string_field(1)
+    revision: str = betterproto.string_field(2)
 
-    async def create_metric_model(
-        self,
-        create_metric_model_request: "CreateMetricModelRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "__metricmodel_v1__.MetricModel":
-        return await self._unary_unary(
-            "/unacast.operator.v1.MetricModelOperatorService/CreateMetricModel",
-            create_metric_model_request,
-            __metricmodel_v1__.MetricModel,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
 
-    async def create_metric_model_revision(
-        self,
-        create_metric_model_revision_request: "CreateMetricModelRevisionRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "__metricmodel_v1__.MetricModelRevision":
-        return await self._unary_unary(
-            "/unacast.operator.v1.MetricModelOperatorService/CreateMetricModelRevision",
-            create_metric_model_revision_request,
-            __metricmodel_v1__.MetricModelRevision,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
-
-    async def change_revision_status(
+class IndexJobOperatorServiceStub(betterproto.ServiceStub):
+    async def get_index_status(
         self,
-        change_revision_status_request: "ChangeRevisionStatusRequest",
+        get_index_job_status_request: "GetIndexJobStatusRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "__metricmodel_v1__.MetricModelRevision":
+    ) -> "GetIndexJobStatusResponse":
         return await self._unary_unary(
-            "/unacast.operator.v1.MetricModelOperatorService/ChangeRevisionStatus",
-            change_revision_status_request,
-            __metricmodel_v1__.MetricModelRevision,
+            "/unacast.operator.v1.IndexJobOperatorService/GetIndexStatus",
+            get_index_job_status_request,
+            GetIndexJobStatusResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def set_metric_model_current_revision(
+    async def get_index_job_status(
         self,
-        set_metric_model_current_revision_request: "SetMetricModelCurrentRevisionRequest",
+        get_job_status_request: "GetJobStatusRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "__metricmodel_v1__.MetricModel":
+    ) -> "GetJobStatusResponse":
         return await self._unary_unary(
-            "/unacast.operator.v1.MetricModelOperatorService/SetMetricModelCurrentRevision",
-            set_metric_model_current_revision_request,
-            __metricmodel_v1__.MetricModel,
+            "/unacast.operator.v1.IndexJobOperatorService/GetIndexJobStatus",
+            get_job_status_request,
+            GetJobStatusResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
 
 class DimensionOperatorServiceStub(betterproto.ServiceStub):
@@ -1029,44 +942,27 @@
             betterproto_lib_google_protobuf.Empty,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
 
-class IndexJobOperatorServiceStub(betterproto.ServiceStub):
-    async def get_index_status(
-        self,
-        get_index_job_status_request: "GetIndexJobStatusRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "GetIndexJobStatusResponse":
-        return await self._unary_unary(
-            "/unacast.operator.v1.IndexJobOperatorService/GetIndexStatus",
-            get_index_job_status_request,
-            GetIndexJobStatusResponse,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
-
-    async def get_index_job_status(
+class CatalogOperatorServiceStub(betterproto.ServiceStub):
+    async def create_catalog(
         self,
-        get_job_status_request: "GetJobStatusRequest",
+        create_catalog_request: "CreateCatalogRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "GetJobStatusResponse":
+    ) -> "__catalog_v1__.Catalog":
         return await self._unary_unary(
-            "/unacast.operator.v1.IndexJobOperatorService/GetIndexJobStatus",
-            get_job_status_request,
-            GetJobStatusResponse,
+            "/unacast.operator.v1.CatalogOperatorService/CreateCatalog",
+            create_catalog_request,
+            __catalog_v1__.Catalog,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
 
 class DatasetOperatorServiceStub(betterproto.ServiceStub):
@@ -1203,14 +1099,84 @@
             GetDatasetProductionStatusResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
 
+class AddressComponentOperatorServiceStub(betterproto.ServiceStub):
+    async def create_address_component(
+        self,
+        create_address_component_request: "CreateAddressComponentRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "__maps_v1__.AddressComponent":
+        return await self._unary_unary(
+            "/unacast.operator.v1.AddressComponentOperatorService/CreateAddressComponent",
+            create_address_component_request,
+            __maps_v1__.AddressComponent,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
+
+    async def index_address_component(
+        self,
+        index_address_component_request: "IndexAddressComponentRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "IndexAddressComponentResponse":
+        return await self._unary_unary(
+            "/unacast.operator.v1.AddressComponentOperatorService/IndexAddressComponent",
+            index_address_component_request,
+            IndexAddressComponentResponse,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
+
+    async def delete_address_component(
+        self,
+        delete_address_component_request: "DeleteAddressComponentRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        return await self._unary_unary(
+            "/unacast.operator.v1.AddressComponentOperatorService/DeleteAddressComponent",
+            delete_address_component_request,
+            betterproto_lib_google_protobuf.Empty,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
+
+    async def list_address_component(
+        self,
+        list_address_component_request: "ListAddressComponentRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
+    ) -> "ListAddressComponentResponse":
+        return await self._unary_unary(
+            "/unacast.operator.v1.AddressComponentOperatorService/ListAddressComponent",
+            list_address_component_request,
+            ListAddressComponentResponse,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
+
+
 class MapOperatorServiceStub(betterproto.ServiceStub):
     async def create_layer(
         self,
         create_layer_request: "CreateLayerRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
@@ -1409,228 +1375,158 @@
             betterproto_lib_google_protobuf.Empty,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
 
-class AddressComponentOperatorServiceStub(betterproto.ServiceStub):
-    async def create_address_component(
+class MetricModelOperatorServiceStub(betterproto.ServiceStub):
+    async def get_metric_model(
         self,
-        create_address_component_request: "CreateAddressComponentRequest",
+        get_metric_model_request: "GetMetricModelRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "__maps_v1__.AddressComponent":
+    ) -> "__metricmodel_v1__.MetricModel":
         return await self._unary_unary(
-            "/unacast.operator.v1.AddressComponentOperatorService/CreateAddressComponent",
-            create_address_component_request,
-            __maps_v1__.AddressComponent,
+            "/unacast.operator.v1.MetricModelOperatorService/GetMetricModel",
+            get_metric_model_request,
+            __metricmodel_v1__.MetricModel,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def index_address_component(
+    async def list_metric_models(
         self,
-        index_address_component_request: "IndexAddressComponentRequest",
+        list_metric_models_request: "ListMetricModelsRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "IndexAddressComponentResponse":
+    ) -> "ListMetricModelsResponse":
         return await self._unary_unary(
-            "/unacast.operator.v1.AddressComponentOperatorService/IndexAddressComponent",
-            index_address_component_request,
-            IndexAddressComponentResponse,
+            "/unacast.operator.v1.MetricModelOperatorService/ListMetricModels",
+            list_metric_models_request,
+            ListMetricModelsResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def delete_address_component(
+    async def create_metric_model(
         self,
-        delete_address_component_request: "DeleteAddressComponentRequest",
+        create_metric_model_request: "CreateMetricModelRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "betterproto_lib_google_protobuf.Empty":
+    ) -> "__metricmodel_v1__.MetricModel":
         return await self._unary_unary(
-            "/unacast.operator.v1.AddressComponentOperatorService/DeleteAddressComponent",
-            delete_address_component_request,
-            betterproto_lib_google_protobuf.Empty,
+            "/unacast.operator.v1.MetricModelOperatorService/CreateMetricModel",
+            create_metric_model_request,
+            __metricmodel_v1__.MetricModel,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-    async def list_address_component(
+    async def create_metric_model_revision(
         self,
-        list_address_component_request: "ListAddressComponentRequest",
+        create_metric_model_revision_request: "CreateMetricModelRevisionRequest",
         *,
         timeout: Optional[float] = None,
         deadline: Optional["Deadline"] = None,
         metadata: Optional["MetadataLike"] = None
-    ) -> "ListAddressComponentResponse":
+    ) -> "__metricmodel_v1__.MetricModelRevision":
         return await self._unary_unary(
-            "/unacast.operator.v1.AddressComponentOperatorService/ListAddressComponent",
-            list_address_component_request,
-            ListAddressComponentResponse,
+            "/unacast.operator.v1.MetricModelOperatorService/CreateMetricModelRevision",
+            create_metric_model_revision_request,
+            __metricmodel_v1__.MetricModelRevision,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
-
-class CatalogOperatorServiceBase(ServiceBase):
-
-    async def create_catalog(
-        self, create_catalog_request: "CreateCatalogRequest"
-    ) -> "__catalog_v1__.Catalog":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def __rpc_create_catalog(
-        self,
-        stream: "grpclib.server.Stream[CreateCatalogRequest, __catalog_v1__.Catalog]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.create_catalog(request)
-        await stream.send_message(response)
-
-    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
-        return {
-            "/unacast.operator.v1.CatalogOperatorService/CreateCatalog": grpclib.const.Handler(
-                self.__rpc_create_catalog,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                CreateCatalogRequest,
-                __catalog_v1__.Catalog,
-            ),
-        }
-
-
-class MetricModelOperatorServiceBase(ServiceBase):
-
-    async def get_metric_model(
-        self, get_metric_model_request: "GetMetricModelRequest"
-    ) -> "__metricmodel_v1__.MetricModel":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def list_metric_models(
-        self, list_metric_models_request: "ListMetricModelsRequest"
-    ) -> "ListMetricModelsResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def create_metric_model(
-        self, create_metric_model_request: "CreateMetricModelRequest"
-    ) -> "__metricmodel_v1__.MetricModel":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def create_metric_model_revision(
-        self, create_metric_model_revision_request: "CreateMetricModelRevisionRequest"
-    ) -> "__metricmodel_v1__.MetricModelRevision":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
     async def change_revision_status(
-        self, change_revision_status_request: "ChangeRevisionStatusRequest"
+        self,
+        change_revision_status_request: "ChangeRevisionStatusRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
     ) -> "__metricmodel_v1__.MetricModelRevision":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+        return await self._unary_unary(
+            "/unacast.operator.v1.MetricModelOperatorService/ChangeRevisionStatus",
+            change_revision_status_request,
+            __metricmodel_v1__.MetricModelRevision,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
     async def set_metric_model_current_revision(
         self,
         set_metric_model_current_revision_request: "SetMetricModelCurrentRevisionRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
     ) -> "__metricmodel_v1__.MetricModel":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+        return await self._unary_unary(
+            "/unacast.operator.v1.MetricModelOperatorService/SetMetricModelCurrentRevision",
+            set_metric_model_current_revision_request,
+            __metricmodel_v1__.MetricModel,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
-    async def __rpc_get_metric_model(
-        self,
-        stream: "grpclib.server.Stream[GetMetricModelRequest, __metricmodel_v1__.MetricModel]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.get_metric_model(request)
-        await stream.send_message(response)
 
-    async def __rpc_list_metric_models(
-        self,
-        stream: "grpclib.server.Stream[ListMetricModelsRequest, ListMetricModelsResponse]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.list_metric_models(request)
-        await stream.send_message(response)
+class IndexJobOperatorServiceBase(ServiceBase):
 
-    async def __rpc_create_metric_model(
-        self,
-        stream: "grpclib.server.Stream[CreateMetricModelRequest, __metricmodel_v1__.MetricModel]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.create_metric_model(request)
-        await stream.send_message(response)
+    async def get_index_status(
+        self, get_index_job_status_request: "GetIndexJobStatusRequest"
+    ) -> "GetIndexJobStatusResponse":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
-    async def __rpc_create_metric_model_revision(
-        self,
-        stream: "grpclib.server.Stream[CreateMetricModelRevisionRequest, __metricmodel_v1__.MetricModelRevision]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.create_metric_model_revision(request)
-        await stream.send_message(response)
+    async def get_index_job_status(
+        self, get_job_status_request: "GetJobStatusRequest"
+    ) -> "GetJobStatusResponse":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
-    async def __rpc_change_revision_status(
+    async def __rpc_get_index_status(
         self,
-        stream: "grpclib.server.Stream[ChangeRevisionStatusRequest, __metricmodel_v1__.MetricModelRevision]",
+        stream: "grpclib.server.Stream[GetIndexJobStatusRequest, GetIndexJobStatusResponse]",
     ) -> None:
         request = await stream.recv_message()
-        response = await self.change_revision_status(request)
+        response = await self.get_index_status(request)
         await stream.send_message(response)
 
-    async def __rpc_set_metric_model_current_revision(
-        self,
-        stream: "grpclib.server.Stream[SetMetricModelCurrentRevisionRequest, __metricmodel_v1__.MetricModel]",
+    async def __rpc_get_index_job_status(
+        self, stream: "grpclib.server.Stream[GetJobStatusRequest, GetJobStatusResponse]"
     ) -> None:
         request = await stream.recv_message()
-        response = await self.set_metric_model_current_revision(request)
+        response = await self.get_index_job_status(request)
         await stream.send_message(response)
 
     def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
         return {
-            "/unacast.operator.v1.MetricModelOperatorService/GetMetricModel": grpclib.const.Handler(
-                self.__rpc_get_metric_model,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                GetMetricModelRequest,
-                __metricmodel_v1__.MetricModel,
-            ),
-            "/unacast.operator.v1.MetricModelOperatorService/ListMetricModels": grpclib.const.Handler(
-                self.__rpc_list_metric_models,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                ListMetricModelsRequest,
-                ListMetricModelsResponse,
-            ),
-            "/unacast.operator.v1.MetricModelOperatorService/CreateMetricModel": grpclib.const.Handler(
-                self.__rpc_create_metric_model,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                CreateMetricModelRequest,
-                __metricmodel_v1__.MetricModel,
-            ),
-            "/unacast.operator.v1.MetricModelOperatorService/CreateMetricModelRevision": grpclib.const.Handler(
-                self.__rpc_create_metric_model_revision,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                CreateMetricModelRevisionRequest,
-                __metricmodel_v1__.MetricModelRevision,
-            ),
-            "/unacast.operator.v1.MetricModelOperatorService/ChangeRevisionStatus": grpclib.const.Handler(
-                self.__rpc_change_revision_status,
+            "/unacast.operator.v1.IndexJobOperatorService/GetIndexStatus": grpclib.const.Handler(
+                self.__rpc_get_index_status,
                 grpclib.const.Cardinality.UNARY_UNARY,
-                ChangeRevisionStatusRequest,
-                __metricmodel_v1__.MetricModelRevision,
+                GetIndexJobStatusRequest,
+                GetIndexJobStatusResponse,
             ),
-            "/unacast.operator.v1.MetricModelOperatorService/SetMetricModelCurrentRevision": grpclib.const.Handler(
-                self.__rpc_set_metric_model_current_revision,
+            "/unacast.operator.v1.IndexJobOperatorService/GetIndexJobStatus": grpclib.const.Handler(
+                self.__rpc_get_index_job_status,
                 grpclib.const.Cardinality.UNARY_UNARY,
-                SetMetricModelCurrentRevisionRequest,
-                __metricmodel_v1__.MetricModel,
+                GetJobStatusRequest,
+                GetJobStatusResponse,
             ),
         }
 
 
 class DimensionOperatorServiceBase(ServiceBase):
 
     async def create_dimension(
@@ -1987,54 +1883,36 @@
                 grpclib.const.Cardinality.UNARY_UNARY,
                 DeleteCompositeMetricRequest,
                 betterproto_lib_google_protobuf.Empty,
             ),
         }
 
 
-class IndexJobOperatorServiceBase(ServiceBase):
-
-    async def get_index_status(
-        self, get_index_job_status_request: "GetIndexJobStatusRequest"
-    ) -> "GetIndexJobStatusResponse":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+class CatalogOperatorServiceBase(ServiceBase):
 
-    async def get_index_job_status(
-        self, get_job_status_request: "GetJobStatusRequest"
-    ) -> "GetJobStatusResponse":
+    async def create_catalog(
+        self, create_catalog_request: "CreateCatalogRequest"
+    ) -> "__catalog_v1__.Catalog":
         raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
-    async def __rpc_get_index_status(
+    async def __rpc_create_catalog(
         self,
-        stream: "grpclib.server.Stream[GetIndexJobStatusRequest, GetIndexJobStatusResponse]",
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.get_index_status(request)
-        await stream.send_message(response)
-
-    async def __rpc_get_index_job_status(
-        self, stream: "grpclib.server.Stream[GetJobStatusRequest, GetJobStatusResponse]"
+        stream: "grpclib.server.Stream[CreateCatalogRequest, __catalog_v1__.Catalog]",
     ) -> None:
         request = await stream.recv_message()
-        response = await self.get_index_job_status(request)
+        response = await self.create_catalog(request)
         await stream.send_message(response)
 
     def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
         return {
-            "/unacast.operator.v1.IndexJobOperatorService/GetIndexStatus": grpclib.const.Handler(
-                self.__rpc_get_index_status,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                GetIndexJobStatusRequest,
-                GetIndexJobStatusResponse,
-            ),
-            "/unacast.operator.v1.IndexJobOperatorService/GetIndexJobStatus": grpclib.const.Handler(
-                self.__rpc_get_index_job_status,
+            "/unacast.operator.v1.CatalogOperatorService/CreateCatalog": grpclib.const.Handler(
+                self.__rpc_create_catalog,
                 grpclib.const.Cardinality.UNARY_UNARY,
-                GetJobStatusRequest,
-                GetJobStatusResponse,
+                CreateCatalogRequest,
+                __catalog_v1__.Catalog,
             ),
         }
 
 
 class DatasetOperatorServiceBase(ServiceBase):
 
     async def get_dataset(
@@ -2189,14 +2067,97 @@
                 grpclib.const.Cardinality.UNARY_UNARY,
                 GetDatasetProductionStatusRequest,
                 GetDatasetProductionStatusResponse,
             ),
         }
 
 
+class AddressComponentOperatorServiceBase(ServiceBase):
+
+    async def create_address_component(
+        self, create_address_component_request: "CreateAddressComponentRequest"
+    ) -> "__maps_v1__.AddressComponent":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def index_address_component(
+        self, index_address_component_request: "IndexAddressComponentRequest"
+    ) -> "IndexAddressComponentResponse":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def delete_address_component(
+        self, delete_address_component_request: "DeleteAddressComponentRequest"
+    ) -> "betterproto_lib_google_protobuf.Empty":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def list_address_component(
+        self, list_address_component_request: "ListAddressComponentRequest"
+    ) -> "ListAddressComponentResponse":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def __rpc_create_address_component(
+        self,
+        stream: "grpclib.server.Stream[CreateAddressComponentRequest, __maps_v1__.AddressComponent]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.create_address_component(request)
+        await stream.send_message(response)
+
+    async def __rpc_index_address_component(
+        self,
+        stream: "grpclib.server.Stream[IndexAddressComponentRequest, IndexAddressComponentResponse]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.index_address_component(request)
+        await stream.send_message(response)
+
+    async def __rpc_delete_address_component(
+        self,
+        stream: "grpclib.server.Stream[DeleteAddressComponentRequest, betterproto_lib_google_protobuf.Empty]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.delete_address_component(request)
+        await stream.send_message(response)
+
+    async def __rpc_list_address_component(
+        self,
+        stream: "grpclib.server.Stream[ListAddressComponentRequest, ListAddressComponentResponse]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.list_address_component(request)
+        await stream.send_message(response)
+
+    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
+        return {
+            "/unacast.operator.v1.AddressComponentOperatorService/CreateAddressComponent": grpclib.const.Handler(
+                self.__rpc_create_address_component,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                CreateAddressComponentRequest,
+                __maps_v1__.AddressComponent,
+            ),
+            "/unacast.operator.v1.AddressComponentOperatorService/IndexAddressComponent": grpclib.const.Handler(
+                self.__rpc_index_address_component,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                IndexAddressComponentRequest,
+                IndexAddressComponentResponse,
+            ),
+            "/unacast.operator.v1.AddressComponentOperatorService/DeleteAddressComponent": grpclib.const.Handler(
+                self.__rpc_delete_address_component,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                DeleteAddressComponentRequest,
+                betterproto_lib_google_protobuf.Empty,
+            ),
+            "/unacast.operator.v1.AddressComponentOperatorService/ListAddressComponent": grpclib.const.Handler(
+                self.__rpc_list_address_component,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                ListAddressComponentRequest,
+                ListAddressComponentResponse,
+            ),
+        }
+
+
 class MapOperatorServiceBase(ServiceBase):
 
     async def create_layer(
         self, create_layer_request: "CreateLayerRequest"
     ) -> "__maps_v1__.Layer":
         raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
@@ -2425,88 +2386,127 @@
                 grpclib.const.Cardinality.UNARY_UNARY,
                 NewLayerSeriesRevisionBasedOnDataSourceRequest,
                 betterproto_lib_google_protobuf.Empty,
             ),
         }
 
 
-class AddressComponentOperatorServiceBase(ServiceBase):
+class MetricModelOperatorServiceBase(ServiceBase):
 
-    async def create_address_component(
-        self, create_address_component_request: "CreateAddressComponentRequest"
-    ) -> "__maps_v1__.AddressComponent":
+    async def get_metric_model(
+        self, get_metric_model_request: "GetMetricModelRequest"
+    ) -> "__metricmodel_v1__.MetricModel":
         raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
-    async def index_address_component(
-        self, index_address_component_request: "IndexAddressComponentRequest"
-    ) -> "IndexAddressComponentResponse":
+    async def list_metric_models(
+        self, list_metric_models_request: "ListMetricModelsRequest"
+    ) -> "ListMetricModelsResponse":
         raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
-    async def delete_address_component(
-        self, delete_address_component_request: "DeleteAddressComponentRequest"
-    ) -> "betterproto_lib_google_protobuf.Empty":
+    async def create_metric_model(
+        self, create_metric_model_request: "CreateMetricModelRequest"
+    ) -> "__metricmodel_v1__.MetricModel":
         raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
-    async def list_address_component(
-        self, list_address_component_request: "ListAddressComponentRequest"
-    ) -> "ListAddressComponentResponse":
+    async def create_metric_model_revision(
+        self, create_metric_model_revision_request: "CreateMetricModelRevisionRequest"
+    ) -> "__metricmodel_v1__.MetricModelRevision":
         raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
 
-    async def __rpc_create_address_component(
+    async def change_revision_status(
+        self, change_revision_status_request: "ChangeRevisionStatusRequest"
+    ) -> "__metricmodel_v1__.MetricModelRevision":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def set_metric_model_current_revision(
         self,
-        stream: "grpclib.server.Stream[CreateAddressComponentRequest, __maps_v1__.AddressComponent]",
+        set_metric_model_current_revision_request: "SetMetricModelCurrentRevisionRequest",
+    ) -> "__metricmodel_v1__.MetricModel":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def __rpc_get_metric_model(
+        self,
+        stream: "grpclib.server.Stream[GetMetricModelRequest, __metricmodel_v1__.MetricModel]",
     ) -> None:
         request = await stream.recv_message()
-        response = await self.create_address_component(request)
+        response = await self.get_metric_model(request)
         await stream.send_message(response)
 
-    async def __rpc_index_address_component(
+    async def __rpc_list_metric_models(
         self,
-        stream: "grpclib.server.Stream[IndexAddressComponentRequest, IndexAddressComponentResponse]",
+        stream: "grpclib.server.Stream[ListMetricModelsRequest, ListMetricModelsResponse]",
     ) -> None:
         request = await stream.recv_message()
-        response = await self.index_address_component(request)
+        response = await self.list_metric_models(request)
         await stream.send_message(response)
 
-    async def __rpc_delete_address_component(
+    async def __rpc_create_metric_model(
         self,
-        stream: "grpclib.server.Stream[DeleteAddressComponentRequest, betterproto_lib_google_protobuf.Empty]",
+        stream: "grpclib.server.Stream[CreateMetricModelRequest, __metricmodel_v1__.MetricModel]",
     ) -> None:
         request = await stream.recv_message()
-        response = await self.delete_address_component(request)
+        response = await self.create_metric_model(request)
         await stream.send_message(response)
 
-    async def __rpc_list_address_component(
+    async def __rpc_create_metric_model_revision(
         self,
-        stream: "grpclib.server.Stream[ListAddressComponentRequest, ListAddressComponentResponse]",
+        stream: "grpclib.server.Stream[CreateMetricModelRevisionRequest, __metricmodel_v1__.MetricModelRevision]",
     ) -> None:
         request = await stream.recv_message()
-        response = await self.list_address_component(request)
+        response = await self.create_metric_model_revision(request)
+        await stream.send_message(response)
+
+    async def __rpc_change_revision_status(
+        self,
+        stream: "grpclib.server.Stream[ChangeRevisionStatusRequest, __metricmodel_v1__.MetricModelRevision]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.change_revision_status(request)
+        await stream.send_message(response)
+
+    async def __rpc_set_metric_model_current_revision(
+        self,
+        stream: "grpclib.server.Stream[SetMetricModelCurrentRevisionRequest, __metricmodel_v1__.MetricModel]",
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.set_metric_model_current_revision(request)
         await stream.send_message(response)
 
     def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
         return {
-            "/unacast.operator.v1.AddressComponentOperatorService/CreateAddressComponent": grpclib.const.Handler(
-                self.__rpc_create_address_component,
+            "/unacast.operator.v1.MetricModelOperatorService/GetMetricModel": grpclib.const.Handler(
+                self.__rpc_get_metric_model,
                 grpclib.const.Cardinality.UNARY_UNARY,
-                CreateAddressComponentRequest,
-                __maps_v1__.AddressComponent,
+                GetMetricModelRequest,
+                __metricmodel_v1__.MetricModel,
             ),
-            "/unacast.operator.v1.AddressComponentOperatorService/IndexAddressComponent": grpclib.const.Handler(
-                self.__rpc_index_address_component,
+            "/unacast.operator.v1.MetricModelOperatorService/ListMetricModels": grpclib.const.Handler(
+                self.__rpc_list_metric_models,
                 grpclib.const.Cardinality.UNARY_UNARY,
-                IndexAddressComponentRequest,
-                IndexAddressComponentResponse,
+                ListMetricModelsRequest,
+                ListMetricModelsResponse,
             ),
-            "/unacast.operator.v1.AddressComponentOperatorService/DeleteAddressComponent": grpclib.const.Handler(
-                self.__rpc_delete_address_component,
+            "/unacast.operator.v1.MetricModelOperatorService/CreateMetricModel": grpclib.const.Handler(
+                self.__rpc_create_metric_model,
                 grpclib.const.Cardinality.UNARY_UNARY,
-                DeleteAddressComponentRequest,
-                betterproto_lib_google_protobuf.Empty,
+                CreateMetricModelRequest,
+                __metricmodel_v1__.MetricModel,
             ),
-            "/unacast.operator.v1.AddressComponentOperatorService/ListAddressComponent": grpclib.const.Handler(
-                self.__rpc_list_address_component,
+            "/unacast.operator.v1.MetricModelOperatorService/CreateMetricModelRevision": grpclib.const.Handler(
+                self.__rpc_create_metric_model_revision,
                 grpclib.const.Cardinality.UNARY_UNARY,
-                ListAddressComponentRequest,
-                ListAddressComponentResponse,
+                CreateMetricModelRevisionRequest,
+                __metricmodel_v1__.MetricModelRevision,
+            ),
+            "/unacast.operator.v1.MetricModelOperatorService/ChangeRevisionStatus": grpclib.const.Handler(
+                self.__rpc_change_revision_status,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                ChangeRevisionStatusRequest,
+                __metricmodel_v1__.MetricModelRevision,
+            ),
+            "/unacast.operator.v1.MetricModelOperatorService/SetMetricModelCurrentRevision": grpclib.const.Handler(
+                self.__rpc_set_metric_model_current_revision,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                SetMetricModelCurrentRevisionRequest,
+                __metricmodel_v1__.MetricModel,
             ),
         }

unacatlib/unacast/v2/catalog/init.py

  • Ordering differences only
@@ -54,14 +54,19 @@
 
 class DataDeliveryStatusType(betterproto.Enum):
     ENABLED = 0
     DISABLED = 1
 
 
 @dataclass(eq=False, repr=False)
+class Catalog(betterproto.Message):
+    id: str = betterproto.string_field(1)
+
+
+@dataclass(eq=False, repr=False)
 class GetDataDeliveryInfoRequest(betterproto.Message):
     id: str = betterproto.string_field(1)
 
 
 @dataclass(eq=False, repr=False)
 class ListDataDeliveryInfoRequest(betterproto.Message):
     filter: "ListDataDeliveryFilter" = betterproto.message_field(1)
@@ -397,19 +402,14 @@
     """
     The columns name in the delivery. Maps to `user_friendly_name` of
     unacast.v2.metric.DataSchema
     """
 
 
 @dataclass(eq=False, repr=False)
-class Catalog(betterproto.Message):
-    id: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
 class GetCatalogRequest(betterproto.Message):
     catalog_id: str = betterproto.string_field(1)
 
 
 @dataclass(eq=False, repr=False)
 class ListCatalogsRequest(betterproto.Message):
     pass

unacatlib/unacast/v2/operator/init.py

  • Ordering differences only
@@ -22,19 +22,14 @@
 if TYPE_CHECKING:
     import grpclib.server
     from betterproto.grpc.grpclib_client import MetadataLike
     from grpclib.metadata import Deadline
 
 
 @dataclass(eq=False, repr=False)
-class CreateCatalogRequest(betterproto.Message):
-    given_id: str = betterproto.string_field(1)
-
-
-@dataclass(eq=False, repr=False)
 class CleanupOrphanedIndicesRequest(betterproto.Message):
     dryrun: bool = betterproto.bool_field(1)
     index_types: List[str] = betterproto.string_field(2)
     value_types: List[str] = betterproto.string_field(3)
 
 
 @dataclass(eq=False, repr=False)
@@ -45,31 +40,17 @@
 
 @dataclass(eq=False, repr=False)
 class ClearCacheResponse(betterproto.Message):
     cleared_keys: int = betterproto.int64_field(1)
     """number of keys cleared"""
 
 
-class CatalogOperatorServiceStub(betterproto.ServiceStub):
-    async def create_catalog(
-        self,
-        create_catalog_request: "CreateCatalogRequest",
-        *,
-        timeout: Optional[float] = None,
-        deadline: Optional["Deadline"] = None,
-        metadata: Optional["MetadataLike"] = None
-    ) -> "_catalog__.Catalog":
-        return await self._unary_unary(
-            "/unacast.v2.operator.CatalogOperatorService/CreateCatalog",
-            create_catalog_request,
-            _catalog__.Catalog,
-            timeout=timeout,
-            deadline=deadline,
-            metadata=metadata,
-        )
+@dataclass(eq=False, repr=False)
+class CreateCatalogRequest(betterproto.Message):
+    given_id: str = betterproto.string_field(1)
 
 
 class SystemOperatorServiceStub(betterproto.ServiceStub):
     async def cleanup_orphaned_indices(
         self,
         cleanup_orphaned_indices_request: "CleanupOrphanedIndicesRequest",
         *,
@@ -100,37 +81,31 @@
             ClearCacheResponse,
             timeout=timeout,
             deadline=deadline,
             metadata=metadata,
         )
 
 
-class CatalogOperatorServiceBase(ServiceBase):
-
+class CatalogOperatorServiceStub(betterproto.ServiceStub):
     async def create_catalog(
-        self, create_catalog_request: "CreateCatalogRequest"
+        self,
+        create_catalog_request: "CreateCatalogRequest",
+        *,
+        timeout: Optional[float] = None,
+        deadline: Optional["Deadline"] = None,
+        metadata: Optional["MetadataLike"] = None
     ) -> "_catalog__.Catalog":
-        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
-
-    async def __rpc_create_catalog(
-        self, stream: "grpclib.server.Stream[CreateCatalogRequest, _catalog__.Catalog]"
-    ) -> None:
-        request = await stream.recv_message()
-        response = await self.create_catalog(request)
-        await stream.send_message(response)
-
-    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
-        return {
-            "/unacast.v2.operator.CatalogOperatorService/CreateCatalog": grpclib.const.Handler(
-                self.__rpc_create_catalog,
-                grpclib.const.Cardinality.UNARY_UNARY,
-                CreateCatalogRequest,
-                _catalog__.Catalog,
-            ),
-        }
+        return await self._unary_unary(
+            "/unacast.v2.operator.CatalogOperatorService/CreateCatalog",
+            create_catalog_request,
+            _catalog__.Catalog,
+            timeout=timeout,
+            deadline=deadline,
+            metadata=metadata,
+        )
 
 
 class SystemOperatorServiceBase(ServiceBase):
 
     async def cleanup_orphaned_indices(
         self, cleanup_orphaned_indices_request: "CleanupOrphanedIndicesRequest"
     ) -> "betterproto_lib_google_protobuf.Empty":
@@ -167,7 +142,32 @@
             "/unacast.v2.operator.SystemOperatorService/ClearCache": grpclib.const.Handler(
                 self.__rpc_clear_cache,
                 grpclib.const.Cardinality.UNARY_UNARY,
                 ClearCacheRequest,
                 ClearCacheResponse,
             ),
         }
+
+
+class CatalogOperatorServiceBase(ServiceBase):
+
+    async def create_catalog(
+        self, create_catalog_request: "CreateCatalogRequest"
+    ) -> "_catalog__.Catalog":
+        raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
+
+    async def __rpc_create_catalog(
+        self, stream: "grpclib.server.Stream[CreateCatalogRequest, _catalog__.Catalog]"
+    ) -> None:
+        request = await stream.recv_message()
+        response = await self.create_catalog(request)
+        await stream.send_message(response)
+
+    def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
+        return {
+            "/unacast.v2.operator.CatalogOperatorService/CreateCatalog": grpclib.const.Handler(
+                self.__rpc_create_catalog,
+                grpclib.const.Cardinality.UNARY_UNARY,
+                CreateCatalogRequest,
+                _catalog__.Catalog,
+            ),
+        }

Comparing unacatlib-0.0.82.dist-info/RECORD & unacatlib-0.0.83.dist-info/RECORD

  • Files 13% similar despite different names
@@ -17,43 +17,43 @@
 unacatlib/byo_external/__init__.py,sha256=Sc1rFoaFfKcjdtsuN9EVqErjVXJ-PXvSRC6C9kAEl1w,67
 unacatlib/byo_external/client.py,sha256=UeOwBdkozVTB6r5c64TjNL37dRTcVP42wpCkH0WDTBA,4401
 unacatlib/byo_external/report_job.py,sha256=lcrR0La3VRWJdnYaob3xPKvGcy-IC3x5AAMw4XGliBw,1117
 unacatlib/unacast/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
 unacatlib/unacast/access/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
 unacatlib/unacast/access/v1/__init__.py,sha256=EOzFbUpDOon4hKkdQ39EEox8pUr8KDSJ9aLsW0LMQCI,869
 unacatlib/unacast/byo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-unacatlib/unacast/byo/v1/__init__.py,sha256=2TOCo6iY719qUYJSHwQMobN0dmS2JtUI-9ScR4gVxoM,99298
+unacatlib/unacast/byo/v1/__init__.py,sha256=VtZx_x_fCz7slOOdxNNmQ1c7OoHMg7GKi13lSPYmYOs,99298
 unacatlib/unacast/catalog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-unacatlib/unacast/catalog/v1/__init__.py,sha256=-Uyc8WAJId5v-towW_V_sy_jp7BODnJSHNJW1XyBNOo,45315
+unacatlib/unacast/catalog/v1/__init__.py,sha256=16GUP45K4ckXa6EFlhx8bEgZGMVqg4VYN7ZcVBIGxs0,43368
 unacatlib/unacast/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
 unacatlib/unacast/dataset/v1/__init__.py,sha256=Sqrabvxctg9M_YgYPLsLU6Mpe1fDrXb6rczFAGZTKCg,2128
 unacatlib/unacast/iam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-unacatlib/unacast/iam/v1/__init__.py,sha256=pJbxxJWPS_CyfBhEYN1NX4RymjwTtw__NVkXz-sLFb0,16880
+unacatlib/unacast/iam/v1/__init__.py,sha256=-pXEl4oFCKDp18WW4lmVmN6ZlwpHGO_YpnzoUeCDCcI,16880
 unacatlib/unacast/index/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
 unacatlib/unacast/index/v1/__init__.py,sha256=vKtZ6fH4JofEY3anuiAU05dmzGc1TBSxE_54FYLrCeg,1648
 unacatlib/unacast/maps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-unacatlib/unacast/maps/v1/__init__.py,sha256=zee9Ld8cYeMhN_bVTRo2947AKKhLSK6O31bfJ5pWp4U,13926
+unacatlib/unacast/maps/v1/__init__.py,sha256=B2wVzC29eVGhr0L8Z2dikN_OcWhPtEdngjJNriKYxgo,13926
 unacatlib/unacast/metric/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-unacatlib/unacast/metric/v1/__init__.py,sha256=D2gW7RhUY8OgCumPnkmkd5LBBcPCC_NbwPQNMcIoJrA,25060
+unacatlib/unacast/metric/v1/__init__.py,sha256=daRqBSDm6M34m3y0htyWjAfZZ44TqPOissQNxByDL3M,25060
 unacatlib/unacast/metricmodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
 unacatlib/unacast/metricmodel/v1/__init__.py,sha256=V_2VRfzngZeh84KSgb_LbvvepjvZQJQs6XGSjhPHAdE,2850
 unacatlib/unacast/operator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-unacatlib/unacast/operator/v1/__init__.py,sha256=NpETqWid9H-GyqkN4y4e8V27byQPH7PPyDG4mcRVfnc,97965
+unacatlib/unacast/operator/v1/__init__.py,sha256=lAZ-_aBOFH7jGjGszzBDl4dXA9r-QY31ihn0sSzFCHc,97965
 unacatlib/unacast/subscription/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
 unacatlib/unacast/subscription/v1/__init__.py,sha256=OvqbgvZivmDnYHSyP8PGJDsamBudfvMKweHrOHENPKE,29612
 unacatlib/unacast/system/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
 unacatlib/unacast/system/v1/__init__.py,sha256=jbhZJlxbKmhjD-C1OGYH1yqRzTy0_pCD4_fwb3Ar9s0,6008
 unacatlib/unacast/unatype/__init__.py,sha256=P2b0JxVbceifUau8Ry_6TMxvLI_6tKDQtnAk3nCy8W0,1981
 unacatlib/unacast/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
 unacatlib/unacast/v2/access/__init__.py,sha256=lhK5ynXX4_SNRi11hAFRMfTobX1rLEje_jFztfXRknc,12684
 unacatlib/unacast/v2/byo_external/__init__.py,sha256=GOTpO3Qy10F3GY7dnG-0e6UkNAn6xPAt92gem6qKcwI,7911
-unacatlib/unacast/v2/catalog/__init__.py,sha256=Qa8Xp_dfw8U5MohCNsbn3-bscWLVigk1bFgKT7Syq44,45610
+unacatlib/unacast/v2/catalog/__init__.py,sha256=ub_tWO3EoMbZ8bXe-sp2I7RZvsRFFPEYObUoD_fyrVs,45610
 unacatlib/unacast/v2/geography/__init__.py,sha256=ew0uDJY-38QQWOZU__EV0oNYv0r2fUOw4CWhwBvCMTM,5703
 unacatlib/unacast/v2/maps/__init__.py,sha256=bsM58NoCex-0ItkakV0t42TzQTEwkL6vFkA96bBwmzQ,3328
 unacatlib/unacast/v2/metric/__init__.py,sha256=ONl_KTEqSu_BYfYD2QaJDYS7M68VLTBp6KqJjQ42IC0,21810
-unacatlib/unacast/v2/operator/__init__.py,sha256=QZiTs_dVOG9oZaC6KNqOj9hYZOozVh8Rk5bMXde4A1w,5963
+unacatlib/unacast/v2/operator/__init__.py,sha256=tXDmJ8m4p-H2py7KqqCmQ8D0ruXKEKRkk4_660sUh2k,5963
 unacatlib/unacast/v2/subscription/__init__.py,sha256=3Q08657ZKpcluwdIs_3CBDvh0ll2puGuCCUkL9J1sFI,2477
 unacatlib/validate/__init__.py,sha256=DOC6nVCAf42Lv5uPin9hDrcVbpEVayJXlPslv84CukY,36405
-unacatlib-0.0.82.dist-info/METADATA,sha256=1t8WAQxCBJ4ZcoQPDg0iizOB-c8s062ezotg7iUqWC8,444
-unacatlib-0.0.82.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
-unacatlib-0.0.82.dist-info/top_level.txt,sha256=2-X-JLy5uxi4eBYMPuKUsQurKF8xE1XDfOb5z_sT1TI,10
-unacatlib-0.0.82.dist-info/RECORD,,
+unacatlib-0.0.83.dist-info/METADATA,sha256=qqXmYRgPIY8QngaVAdbY_Kt6_eFlRBzxOkkwoZUcN4g,444
+unacatlib-0.0.83.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
+unacatlib-0.0.83.dist-info/top_level.txt,sha256=2-X-JLy5uxi4eBYMPuKUsQurKF8xE1XDfOb5z_sT1TI,10
+unacatlib-0.0.83.dist-info/RECORD,,