Skip to content

Commit 7cc80c8

Browse files
New ListGridpoolAssignments RPC (#98)
- New `ListGridpoolAssignments` RPC allows clients to retrieve the Market Locations and/or Microgrids structurally assigned to a Gridpool - Minor documentation changes
2 parents cb08d68 + aa0d120 commit 7cc80c8

3 files changed

Lines changed: 69 additions & 15 deletions

File tree

RELEASE_NOTES.md

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,15 @@
22

33
## Summary
44

5-
This release evolves the Assets API into the `PlatformAssetsService`, providing read-only access to platform asset metadata such as Gridpools, microgrids, electrical component inventories, and electrical component connections.
6-
7-
The release introduces Gridpool metadata retrieval and microgrid discovery within the current enterprise scope. It also aligns list request filtering with the structure used in other Frequenz APIs by moving filter fields into dedicated filter messages.
5+
This release introduces Gridpool assignment discovery to the Platform Assets API.
86

97
## Upgrading
108

11-
- The service has been renamed to `PlatformAssetsService`.
12-
- `GetGridpool` now returns only Gridpool metadata. Clients that need microgrids assigned to a Gridpool should use `ListMicrogrids` with the `gridpool_ids` filter.
13-
- The `ListMicrogridElectricalComponentsRequest` and
14-
- `ListMicrogridElectricalComponentConnectionsRequest` messages now use
15-
nested filter messages instead of placing all filter fields directly on the request message.
16-
- Changed ordering of RPCs
9+
- Minor documentation changes.
1710

1811
## New Features
1912

20-
<!-- Here goes the main new features and examples or instructions on how to use them -->
21-
- New ListMicrogrids RPC has been added
13+
- New ListGridpoolAssignments RPC has been added
2214

2315
## Bug Fixes
2416

proto/frequenz/api/platformassets/v1alpha1/platformassets.proto

Lines changed: 65 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Frequenz Assets API
22
//
3-
// Frequenz gRPC API to retrieval platform assets information.
3+
// Frequenz gRPC API for retrieving platform asset information.
44
//
55
// Copyright:
66
// Copyright 2025 Frequenz Energy-as-a-Service GmbH
@@ -13,6 +13,7 @@ syntax = "proto3";
1313
package frequenz.api.platformassets.v1alpha1;
1414

1515
import "frequenz/api/common/v1alpha8/gridpool/gridpool.proto";
16+
import "frequenz/api/common/v1alpha8/market/market_location.proto";
1617
// protolint:disable:next MAX_LINE_LENGTH
1718
import "frequenz/api/common/v1alpha8/microgrid/electrical_components/electrical_components.proto";
1819
import "frequenz/api/common/v1alpha8/microgrid/microgrid.proto";
@@ -40,6 +41,11 @@ service PlatformAssetsService {
4041
// Lists Gridpools within the current enterprise scope.
4142
rpc ListGridpools(ListGridpoolsRequest) returns (ListGridpoolsResponse);
4243

44+
// Lists market locations and/or microgrids that are assigned to a
45+
// specific Gridpool.
46+
rpc ListGridpoolAssignments(ListGridpoolAssignmentsRequest)
47+
returns (ListGridpoolAssignmentsResponse);
48+
4349
// Returns metadata for a specific microgrid.
4450
rpc GetMicrogrid(GetMicrogridRequest) returns (GetMicrogridResponse);
4551

@@ -58,6 +64,46 @@ service PlatformAssetsService {
5864
returns (ListMicrogridElectricalComponentConnectionsResponse);
5965
}
6066

67+
// Describes a structural assignment within a Gridpool.
68+
//
69+
// A Gridpool assignment represents one row of membership in a virtual
70+
// balancing group. It can reference a Market Location, a Microgrid, or both.
71+
//
72+
// A Market Location is the commercial/regulatory metering point used for
73+
// settlement, balancing-group allocation, forecasting, and measured energy
74+
// flows. A Microgrid is the technical/control representation of a site or
75+
// energy system.
76+
//
77+
// Market Locations and Microgrids can exist independently. Therefore, neither
78+
// resource owns the relationship. The assignment is the association record.
79+
//
80+
// !!! important "Validation"
81+
// At least one of `market_location_selector` or `microgrid_id` must be set.
82+
// Both fields may be set when the Market Location and Microgrid are linked
83+
// in this Gridpool context.
84+
//
85+
message GridpoolAssignment {
86+
// Optional. The Market Location associated with this assignment.
87+
//
88+
// The Market Location is the official metering point that describes measured
89+
// energy flows into or out of the virtual balancing group.
90+
//
91+
// This field can be set without `microgrid_id` if the Market Location is
92+
// assigned to the Gridpool before a Microgrid deployment exists.
93+
frequenz.api.common.v1alpha8.market.MarketLocationSelector
94+
market_location_selector = 1;
95+
96+
// Optional. The Microgrid associated with this assignment.
97+
//
98+
// The Microgrid is the technical/control representation of a site or energy
99+
// system.
100+
//
101+
// This field can be set without `market_location_selector` if the Microgrid
102+
// is assigned to the Gridpool independently of a directly managed Market
103+
// Location.
104+
optional uint64 microgrid_id = 2;
105+
}
106+
61107
// Request message for listing Gridpools within the current enterprise scope.
62108
message ListGridpoolsRequest {
63109
// Filters for selecting Gridpools.
@@ -92,6 +138,23 @@ message ListGridpoolsResponse {
92138
repeated frequenz.api.common.v1alpha8.gridpool.Gridpool gridpools = 1;
93139
}
94140

141+
// Request message for listing Gridpool assignments within the current
142+
// enterprise scope.
143+
message ListGridpoolAssignmentsRequest {
144+
// The unique identifier of the Gridpool for which to fetch assignments.
145+
uint64 gridpool_id = 1;
146+
}
147+
148+
// Response message containing Gridpool assignments.
149+
message ListGridpoolAssignmentsResponse {
150+
// The unique identifier of the Gridpool this assignment belongs to.
151+
uint64 gridpool_id = 1;
152+
153+
// Gridpool assignments matching the request filters within the current
154+
// enterprise scope.
155+
repeated GridpoolAssignment assignments = 2;
156+
}
157+
95158
// Request message for retrieving metadata for a specific microgrid.
96159
message GetMicrogridRequest {
97160
// The unique identifier of the microgrid for which to fetch details.
@@ -104,8 +167,7 @@ message GetMicrogridResponse {
104167
frequenz.api.common.v1alpha8.microgrid.Microgrid microgrid = 1;
105168
}
106169

107-
// Request message for listing microgrids accessible through the authenticated
108-
// client's enterprise-scoped authorization context.
170+
// Request message for listing microgrids within the current enterprise scope.
109171
message ListMicrogridsRequest {
110172
// Filters for selecting microgrids.
111173
//

0 commit comments

Comments
 (0)