frequenz-api-common 0.8.4__tar.gz → 0.8.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/PKG-INFO +1 -1
  2. frequenz_api_common-0.8.8/RELEASE_NOTES.md +17 -0
  3. frequenz_api_common-0.8.8/proto/frequenz/api/common/v1alpha8/grid/balancing_group.proto +24 -0
  4. frequenz_api_common-0.8.8/proto/frequenz/api/common/v1alpha8/grid/market_location.proto +141 -0
  5. frequenz_api_common-0.8.8/proto/frequenz/api/common/v1alpha8/market/market_area.proto +123 -0
  6. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz_api_common.egg-info/PKG-INFO +1 -1
  7. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz_api_common.egg-info/SOURCES.txt +3 -0
  8. frequenz_api_common-0.8.4/RELEASE_NOTES.md +0 -9
  9. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/LICENSE +0 -0
  10. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/MANIFEST.in +0 -0
  11. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/README.md +0 -0
  12. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/components.proto +0 -0
  13. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/location.proto +0 -0
  14. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/metrics/electrical.proto +0 -0
  15. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/metrics.proto +0 -0
  16. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/grid/delivery_area.proto +0 -0
  17. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/grid/delivery_duration.proto +0 -0
  18. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/location.proto +0 -0
  19. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/market/energy.proto +0 -0
  20. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/market/power.proto +0 -0
  21. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/market/price.proto +0 -0
  22. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/metrics/bounds.proto +0 -0
  23. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/metrics/metric_sample.proto +0 -0
  24. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/microgrid/components/battery.proto +0 -0
  25. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/microgrid/components/components.proto +0 -0
  26. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/microgrid/components/ev_charger.proto +0 -0
  27. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/microgrid/components/fuse.proto +0 -0
  28. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/microgrid/components/grid.proto +0 -0
  29. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/microgrid/components/inverter.proto +0 -0
  30. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/microgrid/components/transformer.proto +0 -0
  31. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/microgrid/lifetime.proto +0 -0
  32. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/microgrid/microgrid.proto +0 -0
  33. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/microgrid/sensors/sensors.proto +0 -0
  34. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/pagination/pagination_info.proto +0 -0
  35. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/pagination/pagination_params.proto +0 -0
  36. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1/types/decimal.proto +0 -0
  37. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/grid/delivery_area.proto +0 -0
  38. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/grid/delivery_duration.proto +0 -0
  39. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/market/energy.proto +0 -0
  40. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/market/power.proto +0 -0
  41. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/market/price.proto +0 -0
  42. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/metrics/bounds.proto +0 -0
  43. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/metrics/metrics.proto +0 -0
  44. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/microgrid/communication_components/communication_components.proto +0 -0
  45. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/microgrid/electrical_components/electrical_components.proto +0 -0
  46. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/microgrid/lifetime.proto +0 -0
  47. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/microgrid/microgrid.proto +0 -0
  48. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/microgrid/sensors/sensors.proto +0 -0
  49. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/pagination/pagination_info.proto +0 -0
  50. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/pagination/pagination_params.proto +0 -0
  51. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/streaming/event.proto +0 -0
  52. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/type/decimal.proto +0 -0
  53. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/type/interval.proto +0 -0
  54. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha7/type/location.proto +0 -0
  55. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/grid/delivery_area.proto +0 -0
  56. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/grid/delivery_duration.proto +0 -0
  57. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/gridpool/gridpool.proto +0 -0
  58. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/market/energy.proto +0 -0
  59. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/market/power.proto +0 -0
  60. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/market/price.proto +0 -0
  61. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/metrics/bounds.proto +0 -0
  62. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/metrics/metrics.proto +0 -0
  63. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/microgrid/communication_components/communication_components.proto +0 -0
  64. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/microgrid/electrical_components/electrical_components.proto +0 -0
  65. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/microgrid/lifetime.proto +0 -0
  66. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/microgrid/microgrid.proto +0 -0
  67. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/microgrid/sensors/sensors.proto +0 -0
  68. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/pagination/pagination_info.proto +0 -0
  69. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/pagination/pagination_params.proto +0 -0
  70. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/streaming/event.proto +0 -0
  71. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/types/decimal.proto +0 -0
  72. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/types/interval.proto +0 -0
  73. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/proto/frequenz/api/common/v1alpha8/types/location.proto +0 -0
  74. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/__init__.py +0 -0
  75. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/metrics/__init__.py +0 -0
  76. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/py.typed +0 -0
  77. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1/__init__.py +0 -0
  78. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1/grid/__init__.py +0 -0
  79. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1/market/__init__.py +0 -0
  80. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1/metrics/__init__.py +0 -0
  81. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1/microgrid/__init__.py +0 -0
  82. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1/microgrid/components/__init__.py +0 -0
  83. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1/microgrid/sensors/__init__.py +0 -0
  84. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1/pagination/__init__.py +0 -0
  85. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1/types/__init__.py +0 -0
  86. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha7/__init__.py +0 -0
  87. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha7/grid/__init__.py +0 -0
  88. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha7/market/__init__.py +0 -0
  89. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha7/metrics/__init__.py +0 -0
  90. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha7/microgrid/__init__.py +0 -0
  91. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha7/microgrid/communication_components/__init__.py +0 -0
  92. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha7/microgrid/electrical_components/__init__.py +0 -0
  93. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha7/microgrid/sensors/__init__.py +0 -0
  94. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha7/pagination/__init__.py +0 -0
  95. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha7/streaming/__init__.py +0 -0
  96. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha7/type/__init__.py +0 -0
  97. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha8/__init__.py +0 -0
  98. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha8/grid/__init__.py +0 -0
  99. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha8/gridpool/__init__.py +0 -0
  100. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha8/market/__init__.py +0 -0
  101. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha8/metrics/__init__.py +0 -0
  102. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha8/microgrid/__init__.py +0 -0
  103. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha8/microgrid/communication_components/__init__.py +0 -0
  104. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha8/microgrid/electrical_components/__init__.py +0 -0
  105. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha8/microgrid/sensors/__init__.py +0 -0
  106. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha8/pagination/__init__.py +0 -0
  107. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha8/streaming/__init__.py +0 -0
  108. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz/api/common/v1alpha8/types/__init__.py +0 -0
  109. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz_api_common.egg-info/dependency_links.txt +0 -0
  110. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz_api_common.egg-info/requires.txt +0 -0
  111. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/py/frequenz_api_common.egg-info/top_level.txt +0 -0
  112. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/pyproject.toml +0 -0
  113. {frequenz_api_common-0.8.4 → frequenz_api_common-0.8.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: frequenz-api-common
3
- Version: 0.8.4
3
+ Version: 0.8.8
4
4
  Summary: Frequenz common gRPC API and bindings
5
5
  Author-email: Frequenz Energy-as-a-Service GmbH <floss@frequenz.com>
6
6
  License-Expression: MIT
@@ -0,0 +1,17 @@
1
+ # Frequenz Common API Release Notes
2
+
3
+ ## Summary
4
+
5
+ This release includes addition a new definition of balancing group in
6
+ v1alpha8 and moved market location definition to the `grid` submodule.
7
+
8
+ ## Upgrading
9
+
10
+ ## New Features
11
+
12
+ - Added `BalancingGroup` to
13
+ "frequenz/api/common/v1alpha8/grid/balancing_group.proto"
14
+
15
+ ## Bug Fixes
16
+
17
+ <!-- Here goes notable bug fixes that are worth a special mention or explanation -->
@@ -0,0 +1,24 @@
1
+ // Frequenz definitions balancing groups.
2
+ //
3
+ // Copyright 2025 Frequenz Energy-as-a-Service GmbH
4
+ //
5
+ // Licensed under the MIT License (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+
8
+ syntax = "proto3";
9
+
10
+ package frequenz.api.common.v1alpha8.grid;
11
+
12
+ import "frequenz/api/common/v1alpha8/grid/delivery_area.proto";
13
+
14
+ // Identifies a balancing group by its market code.
15
+ //
16
+ // This message identifies the balancing group itself. It does not include the
17
+ // delivery area in which the balancing group is used.
18
+ message BalancingGroup {
19
+ // The balancing group code.
20
+ string code = 1;
21
+
22
+ // The type of market code used to identify the balancing group.
23
+ EnergyMarketCodeType code_type = 2;
24
+ }
@@ -0,0 +1,141 @@
1
+ // Frequenz definitions of market locations.
2
+ //
3
+ // Copyright 2025 Frequenz Energy-as-a-Service GmbH
4
+ //
5
+ // Licensed under the MIT License (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+
8
+ syntax = "proto3";
9
+
10
+ package frequenz.api.common.v1alpha8.grid;
11
+
12
+ import "frequenz/api/common/v1alpha8/market/market_area.proto";
13
+
14
+ // Identifies the type of external market identifier used to reference
15
+ // a Market Location in a specific regulatory regime.
16
+ //
17
+ // The identifier type defines the format, validation rules, and semantics
18
+ // of the identifier value. Jurisdictional applicability is modeled separately
19
+ // via MarketArea.
20
+ //
21
+ // !!! note "Identifier regimes, not countries"
22
+ // Some identifier types (e.g. EAN, ESI_ID) are used across multiple
23
+ // jurisdictions. This enum models identifier formats, not geography.
24
+ //
25
+ enum MarketLocationIdType {
26
+ // UNSPECIFIED: Default unspecified value — must not be used.
27
+ MARKET_LOCATION_ID_TYPE_UNSPECIFIED = 0;
28
+
29
+ // MALO_ID: Germany – Marktlokations-ID (MaLo-ID).
30
+ MARKET_LOCATION_ID_TYPE_MALO_ID = 1;
31
+
32
+ // ZAEHLPUNKT: Austria – Zählpunktbezeichnung (Semantically similar to
33
+ // Germany’s MaLo-ID).
34
+ MARKET_LOCATION_ID_TYPE_ZAEHLPUNKT = 2;
35
+
36
+ // MPAN: United Kingdom – Meter Point Administration Number.
37
+ MARKET_LOCATION_ID_TYPE_MPAN = 3;
38
+
39
+ // POD: Italy — Point of Delivery.
40
+ MARKET_LOCATION_ID_TYPE_POD = 4;
41
+
42
+ // CUPS: Spain — Código Universal de Punto de Suministro.
43
+ MARKET_LOCATION_ID_TYPE_CUPS = 5;
44
+
45
+ // PRM: France — Point de Référence et Mesure (PRM).
46
+ MARKET_LOCATION_ID_TYPE_PRM = 6;
47
+
48
+ // EAN: Continental Europe (e.g. FR (legacy), NL, BE, PL, CZ, HU, ...) —
49
+ // European Article Number.
50
+ MARKET_LOCATION_ID_TYPE_EAN = 7;
51
+
52
+ // GSRN: Nordic countries (e.g., DK, SE, NO, FI) — GS1 Global Service
53
+ // Relation Number.
54
+ MARKET_LOCATION_ID_TYPE_GSRN = 8;
55
+
56
+ // ESI_ID: United States – Electric Service Identifier.
57
+ MARKET_LOCATION_ID_TYPE_ESI_ID = 9;
58
+
59
+ // NMI: Australia – National Metering Identifier.
60
+ MARKET_LOCATION_ID_TYPE_NMI = 10;
61
+
62
+ // ICP: New Zealand — Installation Control Point.
63
+ MARKET_LOCATION_ID_TYPE_ICP = 11;
64
+
65
+ // SPN: Japan — Supply Point Number (需要地点特定番号).
66
+ MARKET_LOCATION_ID_TYPE_SPN = 12;
67
+
68
+ // OTHER: Generic meter identifier for markets not modeled explicitly yet.
69
+ MARKET_LOCATION_ID_TYPE_OTHER = 99;
70
+ }
71
+
72
+ // Opaque identifier in its original market format as received from the
73
+ // source system (MSCONS, DataHub, CSV, manual entry, etc.).
74
+ //
75
+ // The service accepts both formatted and already-normalized values.
76
+ // Formatting characters (spaces, hyphens, prefixes) are ignored during
77
+ // validation. Validation is performed exclusively on a canonical
78
+ // normalized form derived from the input value, based on the type.
79
+ //
80
+ // Clients MUST NOT rely on formatting differences to distinguish identifiers.
81
+ //
82
+ // Examples:
83
+ // - "01234567890" (Germany MaLo)
84
+ // - "18 1066 1234 567 8901 234" (UK MPAN with spaces)
85
+ // - "NEM12-03456-A" (AU NMI with hyphens)
86
+ message MarketLocationIdValue {
87
+ // Official market location identifier.
88
+ string value = 1;
89
+ }
90
+
91
+ // Market-standard identifier describing a Market Location.
92
+ //
93
+ // A Market Location is a jurisdiction-specific point of metering used for
94
+ // regulatory processes such as settlement, billing, supplier switching,
95
+ // balancing-group reconciliation, and DSO/TSO reporting. Different markets
96
+ // use incompatible identifier formats—varying in length, character sets,
97
+ // checksum rules, and decomposition.
98
+ //
99
+ // This message encapsulates the official, market-issued identifier used to
100
+ // reference such a point. Examples:
101
+ // • Germany: MaLo-ID (Marktlokations-ID)
102
+ // • UK: MPAN (Meter Point Administration Number)
103
+ // • US: ESI-ID (Electric Service Identifier)
104
+ // • Australia NMI (National Metering Identifier)
105
+ //
106
+ // Different markets use incompatible identifier formats—varying in length,
107
+ // character sets, checksum rules, and presentation formatting (spaces,
108
+ // hyphens, prefixes).
109
+ //
110
+ // !!! example "Example values for different markets"
111
+ // The following examples illustrate how the fields may be populated for
112
+ // different jurisdictions:
113
+ //
114
+ // | Market:Type | Official ID | Normalized Value
115
+ // | --------------- | ------------------- | -----------------------------
116
+ // | DE:MALO_ID | "12345678901" | "12345678901"
117
+ // | UK:MPAN | "18 1066 1234 567 8901 234" | "18106612345678901234"
118
+ // | US_ERCOT:ESI_ID | "10443720000012345" | "10443720000012345"
119
+ // | AU:NMI | "NEM12-03456-A" | "NEM1203456A"
120
+ //
121
+ // In each case, `value` preserves the original format as provided by the
122
+ // market operator, while `normalized_value` is an implementation-specific
123
+ // cleaned representation suitable for validation, indexing, and
124
+ // comparisons.
125
+ //
126
+ message MarketLocationId {
127
+ // Official market location identifier.
128
+ MarketLocationIdValue id = 1;
129
+
130
+ // Identifies what type of official market identifier `id` represents.
131
+ MarketLocationIdType type = 2;
132
+ }
133
+
134
+ // Identifies a Market Location.
135
+ message MarketLocationSelector {
136
+ // Regulatory jurisdiction in which this Market Location is registered.
137
+ frequenz.api.common.v1alpha8.market.MarketArea market_area = 1;
138
+
139
+ // Official market identifier (MaLo-ID, MPAN, ESI-ID, ...).
140
+ MarketLocationId market_location_id = 2;
141
+ }
@@ -0,0 +1,123 @@
1
+ // Frequenz definitions of market areas.
2
+ //
3
+ // Copyright 2025 Frequenz Energy-as-a-Service GmbH
4
+ //
5
+ // Licensed under the MIT License (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+
8
+ syntax = "proto3";
9
+
10
+ package frequenz.api.common.v1alpha8.market;
11
+
12
+ // Defines the jurisdiction in which a Market Location is registered.
13
+ //
14
+ // A Market Area represents the regulatory jurisdiction and market regime that
15
+ // governs identifier formats, settlement periods, and metering conventions
16
+ // for a Market Location.
17
+ //
18
+ // Identifier formats (MaLo-ID, MPAN, POD, NMI, ESI-ID, …) are modeled
19
+ // separately in MarketLocationIdType.
20
+ //
21
+ // !!! note "Jurisdictions, not operators"
22
+ // Market areas represent regulatory regimes, not individual exchanges or
23
+ // TSOs. Where operator-specific behavior matters (e.g. ERCOT vs PJM),
24
+ // dedicated sub-areas are defined.
25
+ //
26
+ // !!! note "Numeric ranges"
27
+ // Enum values are grouped by region to preserve ordering, readability,
28
+ // and backwards-compatible extension.
29
+ //
30
+ enum MarketArea {
31
+ // UNSPECIFIED: Default unspecified value — must not be used.
32
+ MARKET_AREA_UNSPECIFIED = 0;
33
+
34
+ // ---------------------------------------------------------------------------
35
+ // Europe [100..199]
36
+ // ---------------------------------------------------------------------------
37
+
38
+ // EU_DE: Germany — MaLo-ID regime (Marktlokation / MaLo-ID).
39
+ MARKET_AREA_EU_DE = 101;
40
+
41
+ // EU_UK: United Kingdom — MPAN regime (Meter Point Administration Number).
42
+ MARKET_AREA_EU_UK = 102;
43
+
44
+ // EU_FR: France — PDL/PRM regime (Point de Livraison/Référence Mesure).
45
+ MARKET_AREA_EU_FR = 103;
46
+
47
+ // EU_IT: Italy — POD regime (Point of Delivery).
48
+ MARKET_AREA_EU_IT = 104;
49
+
50
+ // EU_ES: Spain — CUPS regime (Código Universal de Punto de Suministro).
51
+ MARKET_AREA_EU_ES = 105;
52
+
53
+ // EU_NL: Netherlands — EAN regime (European Article Number).
54
+ MARKET_AREA_EU_NL = 106;
55
+
56
+ // EU_BE: Belgium — EAN regime.
57
+ MARKET_AREA_EU_BE = 107;
58
+
59
+ // EU_CH: Switzerland — EAN regime.
60
+ MARKET_AREA_EU_CH = 108;
61
+
62
+ // EU_AT: Austria — Zählpunktnummer (EAN-based).
63
+ MARKET_AREA_EU_AT = 109;
64
+
65
+ // EU_NORDICS: Nordic region — Elhub / GSRN regime (NO, SE, DK, FI).
66
+ MARKET_AREA_EU_NORDICS = 110;
67
+
68
+ // ---------------------------------------------------------------------------
69
+ // Asia Pacific [200..299]
70
+ // ---------------------------------------------------------------------------
71
+
72
+ // AP_JP: Japan — country-specific metering / settlement regime.
73
+ MARKET_AREA_AP_JP = 201;
74
+
75
+ // AP_CN: China — country-specific metering / settlement regime.
76
+ MARKET_AREA_AP_CN = 202;
77
+
78
+ // AP_IN: India — country-specific metering / settlement regime.
79
+ MARKET_AREA_AP_IN = 203;
80
+
81
+ // AP_SG: Singapore — country-specific metering / settlement regime.
82
+ MARKET_AREA_AP_SG = 204;
83
+
84
+ // ---------------------------------------------------------------------------
85
+ // North America [300..399]
86
+ // ---------------------------------------------------------------------------
87
+
88
+ // NA_US_ERCOT: United States — ERCOT regime (ESI-ID).
89
+ MARKET_AREA_NA_US_ERCOT = 301;
90
+
91
+ // NA_US_PJM: United States — PJM regime (ESI-ID).
92
+ MARKET_AREA_NA_US_PJM = 302;
93
+
94
+ // NA_US_ISONE: United States — ISO New England regime (ESI-ID).
95
+ MARKET_AREA_NA_US_ISONE = 303;
96
+
97
+ // NA_US_CAISO: United States — CAISO regime (ESI-ID).
98
+ MARKET_AREA_NA_US_CAISO = 304;
99
+
100
+ // ---------------------------------------------------------------------------
101
+ // Eurasia [400..499]
102
+ // ---------------------------------------------------------------------------
103
+
104
+ // EURASIA_RU: Russia — country-specific metering / settlement regime.
105
+ MARKET_AREA_EURASIA_RU = 401;
106
+
107
+ // ---------------------------------------------------------------------------
108
+ // Oceania [500..599]
109
+ // ---------------------------------------------------------------------------
110
+
111
+ // OC_AU: Australia — NMI regime (National Metering Identifier).
112
+ MARKET_AREA_OC_AU = 501;
113
+
114
+ // OC_NZ: New Zealand — ICP regime (Installation Control Point).
115
+ MARKET_AREA_OC_NZ = 502;
116
+
117
+ // ---------------------------------------------------------------------------
118
+ // Other / not yet modelled [900..999]
119
+ // ---------------------------------------------------------------------------
120
+
121
+ // OTHER: Other or not yet modelled areas.
122
+ MARKET_AREA_OTHER = 999;
123
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: frequenz-api-common
3
- Version: 0.8.4
3
+ Version: 0.8.8
4
4
  Summary: Frequenz common gRPC API and bindings
5
5
  Author-email: Frequenz Energy-as-a-Service GmbH <floss@frequenz.com>
6
6
  License-Expression: MIT
@@ -46,10 +46,13 @@ proto/frequenz/api/common/v1alpha7/streaming/event.proto
46
46
  proto/frequenz/api/common/v1alpha7/type/decimal.proto
47
47
  proto/frequenz/api/common/v1alpha7/type/interval.proto
48
48
  proto/frequenz/api/common/v1alpha7/type/location.proto
49
+ proto/frequenz/api/common/v1alpha8/grid/balancing_group.proto
49
50
  proto/frequenz/api/common/v1alpha8/grid/delivery_area.proto
50
51
  proto/frequenz/api/common/v1alpha8/grid/delivery_duration.proto
52
+ proto/frequenz/api/common/v1alpha8/grid/market_location.proto
51
53
  proto/frequenz/api/common/v1alpha8/gridpool/gridpool.proto
52
54
  proto/frequenz/api/common/v1alpha8/market/energy.proto
55
+ proto/frequenz/api/common/v1alpha8/market/market_area.proto
53
56
  proto/frequenz/api/common/v1alpha8/market/power.proto
54
57
  proto/frequenz/api/common/v1alpha8/market/price.proto
55
58
  proto/frequenz/api/common/v1alpha8/metrics/bounds.proto
@@ -1,9 +0,0 @@
1
- # Frequenz Common API Release Notes
2
-
3
- ## Summary
4
-
5
- This release includes a bug fix for a typo in the enum `v1alpha8::microgrid::electrical_components::ElectricalComponentOperationalMode`.
6
-
7
- ## Bug Fixes
8
-
9
- - A typo in the enum `v1alpha8::microgrid::electrical_components::ElectricalComponentOperationalMode` has been fixed. The variant `ELECTRICAL_COMPONENT_OPERATIONAL_MODE_TELEMTRY` has been renamed to `ELECTRICAL_COMPONENT_OPERATIONAL_MODE_TELEMETRY`.