frequenz-api-common 0.8.10__tar.gz → 0.8.11__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 (120) hide show
  1. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/PKG-INFO +5 -5
  2. frequenz_api_common-0.8.11/RELEASE_NOTES.md +10 -0
  3. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/grid/market_location.proto +1 -1
  4. frequenz_api_common-0.8.11/proto/frequenz/api/common/v1alpha8/gridpool/gridpool.proto +103 -0
  5. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz_api_common.egg-info/PKG-INFO +5 -5
  6. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz_api_common.egg-info/SOURCES.txt +2 -0
  7. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz_api_common.egg-info/requires.txt +4 -4
  8. frequenz_api_common-0.8.11/py/frequenz_api_common.egg-info/scm_file_list.json +150 -0
  9. frequenz_api_common-0.8.11/py/frequenz_api_common.egg-info/scm_version.json +8 -0
  10. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/pyproject.toml +7 -7
  11. frequenz_api_common-0.8.10/RELEASE_NOTES.md +0 -19
  12. frequenz_api_common-0.8.10/proto/frequenz/api/common/v1alpha8/gridpool/gridpool.proto +0 -22
  13. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/LICENSE +0 -0
  14. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/MANIFEST.in +0 -0
  15. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/README.md +0 -0
  16. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/components.proto +0 -0
  17. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/location.proto +0 -0
  18. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/metrics/electrical.proto +0 -0
  19. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/metrics.proto +0 -0
  20. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/grid/delivery_area.proto +0 -0
  21. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/grid/delivery_duration.proto +0 -0
  22. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/location.proto +0 -0
  23. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/market/energy.proto +0 -0
  24. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/market/power.proto +0 -0
  25. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/market/price.proto +0 -0
  26. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/metrics/bounds.proto +0 -0
  27. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/metrics/metric_sample.proto +0 -0
  28. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/microgrid/components/battery.proto +0 -0
  29. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/microgrid/components/components.proto +0 -0
  30. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/microgrid/components/ev_charger.proto +0 -0
  31. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/microgrid/components/fuse.proto +0 -0
  32. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/microgrid/components/grid.proto +0 -0
  33. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/microgrid/components/inverter.proto +0 -0
  34. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/microgrid/components/transformer.proto +0 -0
  35. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/microgrid/lifetime.proto +0 -0
  36. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/microgrid/microgrid.proto +0 -0
  37. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/microgrid/sensors/sensors.proto +0 -0
  38. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/pagination/pagination_info.proto +0 -0
  39. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/pagination/pagination_params.proto +0 -0
  40. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1/types/decimal.proto +0 -0
  41. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/grid/delivery_area.proto +0 -0
  42. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/grid/delivery_duration.proto +0 -0
  43. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/market/energy.proto +0 -0
  44. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/market/power.proto +0 -0
  45. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/market/price.proto +0 -0
  46. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/metrics/bounds.proto +0 -0
  47. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/metrics/metrics.proto +0 -0
  48. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/microgrid/communication_components/communication_components.proto +0 -0
  49. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/microgrid/electrical_components/electrical_components.proto +0 -0
  50. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/microgrid/lifetime.proto +0 -0
  51. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/microgrid/microgrid.proto +0 -0
  52. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/microgrid/sensors/sensors.proto +0 -0
  53. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/pagination/pagination_info.proto +0 -0
  54. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/pagination/pagination_params.proto +0 -0
  55. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/streaming/event.proto +0 -0
  56. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/type/decimal.proto +0 -0
  57. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/type/interval.proto +0 -0
  58. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha7/type/location.proto +0 -0
  59. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/grid/balancing_group.proto +0 -0
  60. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/grid/delivery_area.proto +0 -0
  61. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/grid/delivery_duration.proto +0 -0
  62. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/grid/flexibility_service.proto +0 -0
  63. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/grid/provision_duration.proto +0 -0
  64. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/identity/resource_uri.proto +0 -0
  65. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/market/energy.proto +0 -0
  66. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/market/market_area.proto +0 -0
  67. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/market/power.proto +0 -0
  68. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/market/price.proto +0 -0
  69. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/metrics/bounds.proto +0 -0
  70. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/metrics/metrics.proto +0 -0
  71. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/microgrid/communication_components/communication_components.proto +0 -0
  72. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/microgrid/electrical_components/electrical_components.proto +0 -0
  73. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/microgrid/lifetime.proto +0 -0
  74. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/microgrid/microgrid.proto +0 -0
  75. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/microgrid/sensors/sensors.proto +0 -0
  76. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/pagination/pagination_info.proto +0 -0
  77. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/pagination/pagination_params.proto +0 -0
  78. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/streaming/event.proto +0 -0
  79. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/types/decimal.proto +0 -0
  80. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/types/interval.proto +0 -0
  81. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/proto/frequenz/api/common/v1alpha8/types/location.proto +0 -0
  82. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/__init__.py +0 -0
  83. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/metrics/__init__.py +0 -0
  84. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/py.typed +0 -0
  85. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1/__init__.py +0 -0
  86. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1/grid/__init__.py +0 -0
  87. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1/market/__init__.py +0 -0
  88. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1/metrics/__init__.py +0 -0
  89. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1/microgrid/__init__.py +0 -0
  90. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1/microgrid/components/__init__.py +0 -0
  91. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1/microgrid/sensors/__init__.py +0 -0
  92. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1/pagination/__init__.py +0 -0
  93. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1/types/__init__.py +0 -0
  94. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha7/__init__.py +0 -0
  95. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha7/grid/__init__.py +0 -0
  96. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha7/market/__init__.py +0 -0
  97. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha7/metrics/__init__.py +0 -0
  98. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha7/microgrid/__init__.py +0 -0
  99. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha7/microgrid/communication_components/__init__.py +0 -0
  100. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha7/microgrid/electrical_components/__init__.py +0 -0
  101. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha7/microgrid/sensors/__init__.py +0 -0
  102. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha7/pagination/__init__.py +0 -0
  103. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha7/streaming/__init__.py +0 -0
  104. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha7/type/__init__.py +0 -0
  105. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/__init__.py +0 -0
  106. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/grid/__init__.py +0 -0
  107. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/gridpool/__init__.py +0 -0
  108. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/identity/__init__.py +0 -0
  109. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/market/__init__.py +0 -0
  110. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/metrics/__init__.py +0 -0
  111. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/microgrid/__init__.py +0 -0
  112. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/microgrid/communication_components/__init__.py +0 -0
  113. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/microgrid/electrical_components/__init__.py +0 -0
  114. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/microgrid/sensors/__init__.py +0 -0
  115. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/pagination/__init__.py +0 -0
  116. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/streaming/__init__.py +0 -0
  117. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz/api/common/v1alpha8/types/__init__.py +0 -0
  118. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz_api_common.egg-info/dependency_links.txt +0 -0
  119. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/py/frequenz_api_common.egg-info/top_level.txt +0 -0
  120. {frequenz_api_common-0.8.10 → frequenz_api_common-0.8.11}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: frequenz-api-common
3
- Version: 0.8.10
3
+ Version: 0.8.11
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
@@ -19,13 +19,13 @@ Requires-Python: <4,>=3.11
19
19
  Description-Content-Type: text/markdown
20
20
  License-File: LICENSE
21
21
  Requires-Dist: protobuf<8,>=6.33.6
22
- Requires-Dist: grpcio<2,>=1.81.0
22
+ Requires-Dist: grpcio<2,>=1.81.1
23
23
  Provides-Extra: dev-flake8
24
24
  Requires-Dist: flake8==7.3.0; extra == "dev-flake8"
25
25
  Requires-Dist: flake8-datetimez==20.10.0; extra == "dev-flake8"
26
26
  Requires-Dist: flake8-docstrings==1.7.0; extra == "dev-flake8"
27
27
  Requires-Dist: flake8-pyproject==1.2.4; extra == "dev-flake8"
28
- Requires-Dist: pydoclint==0.8.6; extra == "dev-flake8"
28
+ Requires-Dist: pydoclint==0.9.0; extra == "dev-flake8"
29
29
  Requires-Dist: pydocstyle==6.3.0; extra == "dev-flake8"
30
30
  Provides-Extra: dev-formatting
31
31
  Requires-Dist: black==26.5.1; extra == "dev-formatting"
@@ -45,10 +45,10 @@ Provides-Extra: dev-noxfile
45
45
  Requires-Dist: nox==2026.4.10; extra == "dev-noxfile"
46
46
  Requires-Dist: frequenz-repo-config[api]==0.18.0; extra == "dev-noxfile"
47
47
  Provides-Extra: dev-pylint
48
- Requires-Dist: pylint==4.0.5; extra == "dev-pylint"
48
+ Requires-Dist: pylint==4.0.6; extra == "dev-pylint"
49
49
  Requires-Dist: frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]; extra == "dev-pylint"
50
50
  Provides-Extra: dev-pytest
51
- Requires-Dist: pytest==9.0.3; extra == "dev-pytest"
51
+ Requires-Dist: pytest==9.1.1; extra == "dev-pytest"
52
52
  Requires-Dist: frequenz-repo-config[extra-lint-examples]==0.18.0; extra == "dev-pytest"
53
53
  Provides-Extra: dev
54
54
  Requires-Dist: frequenz-api-common[dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]; extra == "dev"
@@ -0,0 +1,10 @@
1
+ # Frequenz Common API Release Notes
2
+
3
+ ## Summary
4
+
5
+ This release renames the `MarketLocation` message to `MarketLocationRef`.
6
+
7
+ ## Upgrading
8
+
9
+ Replace uses of `frequenz.api.common.v1alpha8.grid.MarketLocation` with
10
+ `frequenz.api.common.v1alpha8.grid.MarketLocationRef`.
@@ -142,7 +142,7 @@ message MarketLocationId {
142
142
  // - UK: MPAN
143
143
  // - Australia: NMI
144
144
  // - US: ESI-ID
145
- message MarketLocation {
145
+ message MarketLocationRef {
146
146
  // Market area in which the Market Location is registered.
147
147
  frequenz.api.common.v1alpha8.market.MarketArea market_area = 1;
148
148
 
@@ -0,0 +1,103 @@
1
+ // Frequenz gridpool definition.
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.gridpool;
11
+
12
+ // Gridpool contains details of a specific Gridpool.
13
+ //
14
+ // A Gridpool is a virtual balancing, trading, and operating pool. It combines
15
+ // Gridpool members and other position contributions into a unified operational
16
+ // and commercial position.
17
+ //
18
+ // A Gridpool is attached to a parent balancing group, market account, or
19
+ // scheduling entity. Conceptually, it functions as a virtual sub-balancing
20
+ // group: it aggregates measured, forecasted, scheduled, contractual, flexible,
21
+ // and virtual effects into a position that can be forecasted, scheduled,
22
+ // traded, balanced, reported, optimized, or used for flexibility services.
23
+ //
24
+ // A Gridpool does not necessarily have a standalone settlement identity with a
25
+ // grid operator. Physical settlement and imbalance accounting may occur
26
+ // through the parent balancing group, market account, or scheduling entity.
27
+ //
28
+ // Gridpool members are explicit assignments of entities or relationships to a
29
+ // Gridpool. Members describe what belongs to the Gridpool structurally. They
30
+ // may include:
31
+ //
32
+ // • Market Locations: market-facing metering or settlement points
33
+ // representing consumption, generation, import, export, or other
34
+ // market-relevant energy flows.
35
+ // • Microgrids: single-site energy systems containing multiple assets, such
36
+ // as batteries, PV, generators, flexible loads, or other controllable
37
+ // components, typically operated through a local edge controller.
38
+ // • FlexClusters or distributed flexible asset groups: distributed pools of
39
+ // flexible assets, such as stand-alone batteries, home storage systems,
40
+ // PV-battery deployments, EV chargers, or other controllable assets.
41
+ //
42
+ // Gridpool contributions describe how members or other inputs affect the
43
+ // Gridpool's operational, commercial, balance-relevant, or tradable position.
44
+ // Contributions may include:
45
+ //
46
+ // • measured consumption or generation from Market Locations,
47
+ // • flexibility availability from Microgrids or distributed flexible assets,
48
+ // • energy transfer schedules,
49
+ // • contractual positions,
50
+ // • and virtual contributions.
51
+ //
52
+ // A Gridpool member does not necessarily contribute to every service,
53
+ // direction, or time period. For example, a Microgrid may provide
54
+ // flexibility without having an export Market Location managed by Frequenz,
55
+ // or a Market Location may contribute measured consumption without
56
+ // providing controllable flexibility.
57
+ //
58
+ // Virtual contributions are synthetic or model-derived volumes used for
59
+ // forecasting, strategy development, hedging, or virtual trading. They do not
60
+ // correspond to physical assets, Microgrids, or Market Locations and are
61
+ // independent of the physical flexibility range of the Gridpool. A Gridpool may
62
+ // therefore have virtual contributions even if it has no physical contributors
63
+ // for a specific service or time period.
64
+ //
65
+ // Gridpools bring physical, contractual, flexible, scheduled, and virtual
66
+ // contributions together into a single position:
67
+ //
68
+ // ```text
69
+ // Parent Balancing Group / Market Account / Scheduling Entity
70
+ // └── Gridpool (virtual sub-balancing group)
71
+ // ├── Gridpool members (Physical contributors)
72
+ // │ ├── Market Locations (metering or settlement points)
73
+ // │ ├── Microgrids (DER sites such as batteries, PV, generators,
74
+ // │ │ and flexible loads; typically controlled via edge controller)
75
+ // │ └── FlexClusters or distributed flexible asset groups
76
+ // ├── Scheduled and contractual contributions
77
+ // │ ├── Energy transfer schedules
78
+ // │ └── Contracted positions
79
+ // └── Virtual contributions
80
+ // └── Synthetic or model-derived volumes for forecasting,
81
+ // hedging, strategy development, or virtual trading
82
+ // ```
83
+ //
84
+ // A Gridpool is not a physical site and does not imply a single delivery area.
85
+ // Members and contributions of the same Gridpool may belong to different
86
+ // delivery areas, bidding zones, regional markets, ISO/TSO regions, or nodes.
87
+ //
88
+ // The members and contributions of a Gridpool define its operational, physical,
89
+ // flexible, and financial profile. A Gridpool's aggregated consumption,
90
+ // production, schedules, forecasts, contracts, flexibility, and virtual
91
+ // positions determine its balance-relevant and tradable position.
92
+ //
93
+ // Gridpool members, services, schedules, application variables, and
94
+ // contributor-specific details are modeled as separate resources by APIs
95
+ // that expose Gridpool topology and service configuration.
96
+ //
97
+ message Gridpool {
98
+ // Unique identifier of the Gridpool.
99
+ uint64 id = 1;
100
+
101
+ // Human-readable name of the Gridpool.
102
+ string name = 2;
103
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: frequenz-api-common
3
- Version: 0.8.10
3
+ Version: 0.8.11
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
@@ -19,13 +19,13 @@ Requires-Python: <4,>=3.11
19
19
  Description-Content-Type: text/markdown
20
20
  License-File: LICENSE
21
21
  Requires-Dist: protobuf<8,>=6.33.6
22
- Requires-Dist: grpcio<2,>=1.81.0
22
+ Requires-Dist: grpcio<2,>=1.81.1
23
23
  Provides-Extra: dev-flake8
24
24
  Requires-Dist: flake8==7.3.0; extra == "dev-flake8"
25
25
  Requires-Dist: flake8-datetimez==20.10.0; extra == "dev-flake8"
26
26
  Requires-Dist: flake8-docstrings==1.7.0; extra == "dev-flake8"
27
27
  Requires-Dist: flake8-pyproject==1.2.4; extra == "dev-flake8"
28
- Requires-Dist: pydoclint==0.8.6; extra == "dev-flake8"
28
+ Requires-Dist: pydoclint==0.9.0; extra == "dev-flake8"
29
29
  Requires-Dist: pydocstyle==6.3.0; extra == "dev-flake8"
30
30
  Provides-Extra: dev-formatting
31
31
  Requires-Dist: black==26.5.1; extra == "dev-formatting"
@@ -45,10 +45,10 @@ Provides-Extra: dev-noxfile
45
45
  Requires-Dist: nox==2026.4.10; extra == "dev-noxfile"
46
46
  Requires-Dist: frequenz-repo-config[api]==0.18.0; extra == "dev-noxfile"
47
47
  Provides-Extra: dev-pylint
48
- Requires-Dist: pylint==4.0.5; extra == "dev-pylint"
48
+ Requires-Dist: pylint==4.0.6; extra == "dev-pylint"
49
49
  Requires-Dist: frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]; extra == "dev-pylint"
50
50
  Provides-Extra: dev-pytest
51
- Requires-Dist: pytest==9.0.3; extra == "dev-pytest"
51
+ Requires-Dist: pytest==9.1.1; extra == "dev-pytest"
52
52
  Requires-Dist: frequenz-repo-config[extra-lint-examples]==0.18.0; extra == "dev-pytest"
53
53
  Provides-Extra: dev
54
54
  Requires-Dist: frequenz-api-common[dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]; extra == "dev"
@@ -111,4 +111,6 @@ py/frequenz_api_common.egg-info/PKG-INFO
111
111
  py/frequenz_api_common.egg-info/SOURCES.txt
112
112
  py/frequenz_api_common.egg-info/dependency_links.txt
113
113
  py/frequenz_api_common.egg-info/requires.txt
114
+ py/frequenz_api_common.egg-info/scm_file_list.json
115
+ py/frequenz_api_common.egg-info/scm_version.json
114
116
  py/frequenz_api_common.egg-info/top_level.txt
@@ -1,5 +1,5 @@
1
1
  protobuf<8,>=6.33.6
2
- grpcio<2,>=1.81.0
2
+ grpcio<2,>=1.81.1
3
3
 
4
4
  [dev]
5
5
  frequenz-api-common[dev-flake8,dev-formatting,dev-mkdocs,dev-mypy,dev-noxfile,dev-pylint,dev-pytest]
@@ -9,7 +9,7 @@ flake8==7.3.0
9
9
  flake8-datetimez==20.10.0
10
10
  flake8-docstrings==1.7.0
11
11
  flake8-pyproject==1.2.4
12
- pydoclint==0.8.6
12
+ pydoclint==0.9.0
13
13
  pydocstyle==6.3.0
14
14
 
15
15
  [dev-formatting]
@@ -34,9 +34,9 @@ nox==2026.4.10
34
34
  frequenz-repo-config[api]==0.18.0
35
35
 
36
36
  [dev-pylint]
37
- pylint==4.0.5
37
+ pylint==4.0.6
38
38
  frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]
39
39
 
40
40
  [dev-pytest]
41
- pytest==9.0.3
41
+ pytest==9.1.1
42
42
  frequenz-repo-config[extra-lint-examples]==0.18.0
@@ -0,0 +1,150 @@
1
+ {
2
+ "files": [
3
+ "README.md",
4
+ "CODEOWNERS",
5
+ "LICENSE",
6
+ "pyproject.toml",
7
+ "mkdocs.yml",
8
+ "CONTRIBUTING.md",
9
+ ".cookiecutter-replay.json",
10
+ "MANIFEST.in",
11
+ ".editorconfig",
12
+ ".gitignore",
13
+ "noxfile.py",
14
+ "RELEASE_NOTES.md",
15
+ "py/frequenz/api/common/py.typed",
16
+ "py/frequenz/api/common/__init__.py",
17
+ "py/frequenz/api/common/conftest.py",
18
+ "py/frequenz/api/common/v1alpha8/__init__.py",
19
+ "py/frequenz/api/common/v1alpha8/microgrid/__init__.py",
20
+ "py/frequenz/api/common/v1alpha8/microgrid/communication_components/__init__.py",
21
+ "py/frequenz/api/common/v1alpha8/microgrid/electrical_components/__init__.py",
22
+ "py/frequenz/api/common/v1alpha8/microgrid/sensors/__init__.py",
23
+ "py/frequenz/api/common/v1alpha8/gridpool/__init__.py",
24
+ "py/frequenz/api/common/v1alpha8/streaming/__init__.py",
25
+ "py/frequenz/api/common/v1alpha8/metrics/__init__.py",
26
+ "py/frequenz/api/common/v1alpha8/identity/__init__.py",
27
+ "py/frequenz/api/common/v1alpha8/pagination/__init__.py",
28
+ "py/frequenz/api/common/v1alpha8/types/__init__.py",
29
+ "py/frequenz/api/common/v1alpha8/grid/__init__.py",
30
+ "py/frequenz/api/common/v1alpha8/market/__init__.py",
31
+ "py/frequenz/api/common/v1/__init__.py",
32
+ "py/frequenz/api/common/v1/microgrid/__init__.py",
33
+ "py/frequenz/api/common/v1/microgrid/components/__init__.py",
34
+ "py/frequenz/api/common/v1/microgrid/sensors/__init__.py",
35
+ "py/frequenz/api/common/v1/metrics/__init__.py",
36
+ "py/frequenz/api/common/v1/pagination/__init__.py",
37
+ "py/frequenz/api/common/v1/types/__init__.py",
38
+ "py/frequenz/api/common/v1/grid/__init__.py",
39
+ "py/frequenz/api/common/v1/market/__init__.py",
40
+ "py/frequenz/api/common/metrics/__init__.py",
41
+ "py/frequenz/api/common/v1alpha7/__init__.py",
42
+ "py/frequenz/api/common/v1alpha7/microgrid/__init__.py",
43
+ "py/frequenz/api/common/v1alpha7/microgrid/communication_components/__init__.py",
44
+ "py/frequenz/api/common/v1alpha7/microgrid/electrical_components/__init__.py",
45
+ "py/frequenz/api/common/v1alpha7/microgrid/sensors/__init__.py",
46
+ "py/frequenz/api/common/v1alpha7/streaming/__init__.py",
47
+ "py/frequenz/api/common/v1alpha7/metrics/__init__.py",
48
+ "py/frequenz/api/common/v1alpha7/pagination/__init__.py",
49
+ "py/frequenz/api/common/v1alpha7/grid/__init__.py",
50
+ "py/frequenz/api/common/v1alpha7/type/__init__.py",
51
+ "py/frequenz/api/common/v1alpha7/market/__init__.py",
52
+ "docs/logo.png",
53
+ "docs/CONTRIBUTING.md",
54
+ "docs/mkdocstrings_autoapi.py",
55
+ "docs/SUMMARY.md",
56
+ "docs/index.md",
57
+ "docs/overrides/main.html",
58
+ "docs/css/mkdocstrings.css",
59
+ "docs/css/style.css",
60
+ "proto/frequenz/api/common/components.proto",
61
+ "proto/frequenz/api/common/location.proto",
62
+ "proto/frequenz/api/common/metrics.proto",
63
+ "proto/frequenz/api/common/v1alpha8/microgrid/microgrid.proto",
64
+ "proto/frequenz/api/common/v1alpha8/microgrid/lifetime.proto",
65
+ "proto/frequenz/api/common/v1alpha8/microgrid/communication_components/communication_components.proto",
66
+ "proto/frequenz/api/common/v1alpha8/microgrid/electrical_components/electrical_components.proto",
67
+ "proto/frequenz/api/common/v1alpha8/microgrid/sensors/sensors.proto",
68
+ "proto/frequenz/api/common/v1alpha8/gridpool/gridpool.proto",
69
+ "proto/frequenz/api/common/v1alpha8/streaming/event.proto",
70
+ "proto/frequenz/api/common/v1alpha8/metrics/bounds.proto",
71
+ "proto/frequenz/api/common/v1alpha8/metrics/metrics.proto",
72
+ "proto/frequenz/api/common/v1alpha8/identity/resource_uri.proto",
73
+ "proto/frequenz/api/common/v1alpha8/pagination/pagination_info.proto",
74
+ "proto/frequenz/api/common/v1alpha8/pagination/pagination_params.proto",
75
+ "proto/frequenz/api/common/v1alpha8/types/location.proto",
76
+ "proto/frequenz/api/common/v1alpha8/types/interval.proto",
77
+ "proto/frequenz/api/common/v1alpha8/types/decimal.proto",
78
+ "proto/frequenz/api/common/v1alpha8/grid/flexibility_service.proto",
79
+ "proto/frequenz/api/common/v1alpha8/grid/delivery_area.proto",
80
+ "proto/frequenz/api/common/v1alpha8/grid/delivery_duration.proto",
81
+ "proto/frequenz/api/common/v1alpha8/grid/balancing_group.proto",
82
+ "proto/frequenz/api/common/v1alpha8/grid/provision_duration.proto",
83
+ "proto/frequenz/api/common/v1alpha8/grid/market_location.proto",
84
+ "proto/frequenz/api/common/v1alpha8/market/energy.proto",
85
+ "proto/frequenz/api/common/v1alpha8/market/market_area.proto",
86
+ "proto/frequenz/api/common/v1alpha8/market/price.proto",
87
+ "proto/frequenz/api/common/v1alpha8/market/power.proto",
88
+ "proto/frequenz/api/common/v1/location.proto",
89
+ "proto/frequenz/api/common/v1/microgrid/microgrid.proto",
90
+ "proto/frequenz/api/common/v1/microgrid/lifetime.proto",
91
+ "proto/frequenz/api/common/v1/microgrid/components/components.proto",
92
+ "proto/frequenz/api/common/v1/microgrid/components/fuse.proto",
93
+ "proto/frequenz/api/common/v1/microgrid/components/battery.proto",
94
+ "proto/frequenz/api/common/v1/microgrid/components/inverter.proto",
95
+ "proto/frequenz/api/common/v1/microgrid/components/grid.proto",
96
+ "proto/frequenz/api/common/v1/microgrid/components/ev_charger.proto",
97
+ "proto/frequenz/api/common/v1/microgrid/components/transformer.proto",
98
+ "proto/frequenz/api/common/v1/microgrid/sensors/sensors.proto",
99
+ "proto/frequenz/api/common/v1/metrics/bounds.proto",
100
+ "proto/frequenz/api/common/v1/metrics/metric_sample.proto",
101
+ "proto/frequenz/api/common/v1/pagination/pagination_info.proto",
102
+ "proto/frequenz/api/common/v1/pagination/pagination_params.proto",
103
+ "proto/frequenz/api/common/v1/types/decimal.proto",
104
+ "proto/frequenz/api/common/v1/grid/delivery_area.proto",
105
+ "proto/frequenz/api/common/v1/grid/delivery_duration.proto",
106
+ "proto/frequenz/api/common/v1/market/energy.proto",
107
+ "proto/frequenz/api/common/v1/market/price.proto",
108
+ "proto/frequenz/api/common/v1/market/power.proto",
109
+ "proto/frequenz/api/common/metrics/electrical.proto",
110
+ "proto/frequenz/api/common/v1alpha7/microgrid/microgrid.proto",
111
+ "proto/frequenz/api/common/v1alpha7/microgrid/lifetime.proto",
112
+ "proto/frequenz/api/common/v1alpha7/microgrid/communication_components/communication_components.proto",
113
+ "proto/frequenz/api/common/v1alpha7/microgrid/electrical_components/electrical_components.proto",
114
+ "proto/frequenz/api/common/v1alpha7/microgrid/sensors/sensors.proto",
115
+ "proto/frequenz/api/common/v1alpha7/streaming/event.proto",
116
+ "proto/frequenz/api/common/v1alpha7/metrics/bounds.proto",
117
+ "proto/frequenz/api/common/v1alpha7/metrics/metrics.proto",
118
+ "proto/frequenz/api/common/v1alpha7/pagination/pagination_info.proto",
119
+ "proto/frequenz/api/common/v1alpha7/pagination/pagination_params.proto",
120
+ "proto/frequenz/api/common/v1alpha7/grid/delivery_area.proto",
121
+ "proto/frequenz/api/common/v1alpha7/grid/delivery_duration.proto",
122
+ "proto/frequenz/api/common/v1alpha7/type/location.proto",
123
+ "proto/frequenz/api/common/v1alpha7/type/interval.proto",
124
+ "proto/frequenz/api/common/v1alpha7/type/decimal.proto",
125
+ "proto/frequenz/api/common/v1alpha7/market/energy.proto",
126
+ "proto/frequenz/api/common/v1alpha7/market/price.proto",
127
+ "proto/frequenz/api/common/v1alpha7/market/power.proto",
128
+ "pytests/test_common_v1alpha7.py",
129
+ "pytests/test_common_v1alpha8.py",
130
+ "pytests/test_common_v1.py",
131
+ "pytests/test_v0.py",
132
+ ".github/RELEASE_NOTES.template.md",
133
+ ".github/labeler.yml",
134
+ ".github/keylabeler.yml",
135
+ ".github/dependabot.yml",
136
+ ".github/ISSUE_TEMPLATE/bug.yml",
137
+ ".github/ISSUE_TEMPLATE/config.yml",
138
+ ".github/ISSUE_TEMPLATE/feature.yml",
139
+ ".github/workflows/release-notes-check.yml",
140
+ ".github/workflows/grpc-migration.yaml",
141
+ ".github/workflows/dco-merge-queue.yml",
142
+ ".github/workflows/black-migration.yaml",
143
+ ".github/workflows/isort-migration.yaml",
144
+ ".github/workflows/labeler.yml",
145
+ ".github/workflows/repo-config-migration.yaml",
146
+ ".github/workflows/ci.yaml",
147
+ ".github/workflows/auto-dependabot.yaml",
148
+ ".github/workflows/ci-pr.yaml"
149
+ ]
150
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.8.11",
3
+ "distance": 0,
4
+ "node": "g9ee0d10555b091d1b380295754fad4e9a38bebcf",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-07-13"
8
+ }
@@ -4,15 +4,15 @@
4
4
  [build-system]
5
5
  requires = [
6
6
  "setuptools == 82.0.1",
7
- "setuptools_scm[toml] == 10.0.5",
7
+ "setuptools_scm[toml] == 10.2.0",
8
8
  "frequenz-repo-config[api] == 0.18.0",
9
9
  # We need to pin the protobuf, grpcio and grpcio-tools dependencies to make
10
10
  # sure the code is generated using the minimum supported versions, as older
11
11
  # versions can't work with code that was generated with newer versions.
12
12
  # https://protobuf.dev/support/cross-version-runtime-guarantee/#backwards
13
13
  "protobuf == 6.33.6",
14
- "grpcio-tools == 1.81.0",
15
- "grpcio == 1.81.0",
14
+ "grpcio-tools == 1.81.1",
15
+ "grpcio == 1.81.1",
16
16
  ]
17
17
  build-backend = "setuptools.build_meta"
18
18
 
@@ -40,7 +40,7 @@ dependencies = [
40
40
  # We couldn't find any document with a spec about the cross-version runtime
41
41
  # guarantee for grpcio, so unless we find one in the future, we'll assume
42
42
  # major version jumps are not compatible
43
- "grpcio >= 1.81.0, < 2", # Do not widen beyond 2!
43
+ "grpcio >= 1.81.1, < 2", # Do not widen beyond 2!
44
44
  ]
45
45
  dynamic = ["version"]
46
46
 
@@ -54,7 +54,7 @@ dev-flake8 = [
54
54
  "flake8-datetimez == 20.10.0",
55
55
  "flake8-docstrings == 1.7.0",
56
56
  "flake8-pyproject == 1.2.4", # For reading the flake8 config from pyproject.toml
57
- "pydoclint == 0.8.6",
57
+ "pydoclint == 0.9.0",
58
58
  "pydocstyle == 6.3.0",
59
59
  ]
60
60
  dev-formatting = ["black == 26.5.1", "isort == 8.0.1"]
@@ -74,12 +74,12 @@ dev-mypy = [
74
74
  ]
75
75
  dev-noxfile = ["nox == 2026.4.10", "frequenz-repo-config[api] == 0.18.0"]
76
76
  dev-pylint = [
77
- "pylint == 4.0.5",
77
+ "pylint == 4.0.6",
78
78
  # For checking the noxfile, docs/ script, and tests
79
79
  "frequenz-api-common[dev-mkdocs,dev-noxfile,dev-pytest]",
80
80
  ]
81
81
  dev-pytest = [
82
- "pytest == 9.0.3",
82
+ "pytest == 9.1.1",
83
83
  "frequenz-repo-config[extra-lint-examples] == 0.18.0",
84
84
  ]
85
85
  dev = [
@@ -1,19 +0,0 @@
1
- # Frequenz Common API Release Notes
2
-
3
- ## Summary
4
-
5
- This release adds common grid definitions for flexibility service participation.
6
-
7
- ## Upgrading
8
-
9
- APIs that currently define flexibility service types, provision periods, or typed resource URIs locally can migrate to the new common grid definitions.
10
-
11
- ## New Features
12
-
13
- * Added common grid definitions for flexibility service types.
14
- * Added common provision duration and provision period definitions.
15
- * Added common typed resource URI definitions for shared domain resources such as access owners, operators, and flexibility groups.
16
-
17
- ## Bug Fixes
18
-
19
- <!-- Here goes notable bug fixes that are worth a special mention or explanation -->
@@ -1,22 +0,0 @@
1
- // protolint:disable MAX_LINE_LENGTH
2
- // Frequenz gridpool definition.
3
- //
4
- // Copyright 2025 Frequenz Energy-as-a-Service GmbH
5
- //
6
- // Licensed under the MIT License (the "License");
7
- // you may not use this file except in compliance with the License.
8
-
9
- syntax = "proto3";
10
-
11
- package frequenz.api.common.v1alpha8.gridpool;
12
-
13
-
14
- // Gridpool contains details of a specific gridpool.
15
- // A gridpool is an assigned group of microgrids for the purpose of energy trading.
16
- message Gridpool {
17
- // A unique identifier for the gridpool.
18
- uint64 id = 1;
19
-
20
- // The name of the gridpool.
21
- string name = 2;
22
- }