openapi: 3.2.0
info:
title: Elhub Service Providing Group Grid Prequalification Comment…
version: '1.0'
description: 'Operations tagged service_providing_group_grid_prequalification_comment across 2 of this provider''s published API definitions: elhub-flex-information-system-main-api-openapi.json, elhub-postgrest-openapi-3-0-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://test.flex.internal:6443/api/v1
description: Development
- url: http://localhost:3000/
tags:
- name: service_providing_group_grid_prequalification_comment
description: Grid prequalification for service providing group Comment
paths:
/service_providing_group_grid_prequalification_comment:
summary: Grid prequalification for service providing group Comment
description: ''
get:
operationId: list_service_providing_group_grid_prequalification_comment
summary: List Grid prequalification for service providing group Comment
tags:
- service_providing_group_grid_prequalification_comment
parameters:
- in: query
schema:
type: string
pattern: ^eq\.[0-9]+$
example: eq.55
description: Unique surrogate identifier.
name: id
- in: query
schema:
type: string
pattern: ^eq\.[0-9]+$
example: eq.55
description: Reference to the service providing group grid prequalification.
name: service_providing_group_grid_prequalification_id
- description: Filtering Columns
in: query
name: select
schema:
type: string
- description: Ordering
in: query
name: order
schema:
type: string
- description: Limiting and Pagination
in: query
name: offset
schema:
type: string
- description: Limiting and Pagination
in: query
name: limit
schema:
type: string
- in: query
name: embed
schema:
type: string
description: Comma-separated list of related resources to embed in the response.
- $ref: '#/components/parameters/ApiVersion'
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_response'
type: array
description: OK
'206':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_response'
type: array
description: Partial Content
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Forbidden
'404':
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error_message'
- $ref: '#/components/schemas/empty_object'
description: Not Found
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Not Acceptable
'416':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Range Not Satisfiable
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Internal Server Error
security:
- bearerAuth:
- read:data:service_providing_group_grid_prequalification_comment
- {}
post:
operationId: create_service_providing_group_grid_prequalification_comment
summary: Create Grid prequalification for service providing group Comment
tags:
- service_providing_group_grid_prequalification_comment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_create_request'
description: service_providing_group_grid_prequalification_comment
required: false
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_response'
description: Created
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Forbidden
'404':
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error_message'
- $ref: '#/components/schemas/empty_object'
description: Not Found
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Not Acceptable
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Conflict
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Internal Server Error
security:
- bearerAuth:
- manage:data:service_providing_group_grid_prequalification_comment
parameters:
- $ref: '#/components/parameters/ApiVersion'
delete:
parameters:
- in: query
name: id
schema:
type: string
- in: query
name: content
schema:
type: string
- in: query
name: created_at
schema:
type: string
- in: query
name: created_by
schema:
type: string
- in: query
name: service_providing_group_grid_prequalification_id
schema:
type: string
- in: query
name: visibility
schema:
type: string
- in: query
name: recorded_by
schema:
type: string
- in: query
name: recorded_at
schema:
type: string
- description: Preference
in: header
name: Prefer
schema:
enum:
- return=representation
- return=minimal
- return=none
type: string
responses:
'204':
content: {}
description: No Content
tags:
- service_providing_group_grid_prequalification_comment
summary: Delete service providing group grid prequalification comment
x-summary-source: derived
operationId: deleteServiceProvidingGroupGridPrequalificationComment
x-operation-id-source: derived
patch:
parameters:
- in: query
name: id
schema:
type: string
- in: query
name: content
schema:
type: string
- in: query
name: created_at
schema:
type: string
- in: query
name: created_by
schema:
type: string
- in: query
name: service_providing_group_grid_prequalification_id
schema:
type: string
- in: query
name: visibility
schema:
type: string
- in: query
name: recorded_by
schema:
type: string
- in: query
name: recorded_at
schema:
type: string
- description: Preference
in: header
name: Prefer
schema:
enum:
- return=representation
- return=minimal
- return=none
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment'
application/vnd.pgrst.object+json;nulls=stripped:
schema:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment'
application/vnd.pgrst.object+json:
schema:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment'
text/csv:
schema:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment'
description: service_providing_group_grid_prequalification_comment
required: false
responses:
'204':
content: {}
description: No Content
tags:
- service_providing_group_grid_prequalification_comment
x-codegen-request-body-name: service_providing_group_grid_prequalification_comment
summary: Update service providing group grid prequalification comment
x-summary-source: derived
operationId: patchServiceProvidingGroupGridPrequalificationComment
x-operation-id-source: derived
servers:
- url: https://test.flex.internal:6443/api/v1
description: Development
/service_providing_group_grid_prequalification_comment/{id}:
summary: Grid prequalification for service providing group Comment - single
description: ''
parameters:
- in: path
name: id
required: true
schema:
format: bigint
type: integer
example: 14
get:
operationId: read_service_providing_group_grid_prequalification_comment
summary: Read Grid prequalification for service providing group Comment
tags:
- service_providing_group_grid_prequalification_comment
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_response'
description: OK
links:
service_providing_group_grid_prequalification_id:
operationId: read_service_providing_group_grid_prequalification
parameters:
path.id: $response.body#/service_providing_group_grid_prequalification_id
description: The `service_providing_group_grid_prequalification_id` value returned in the response can be used as the `id` parameter in `GET /service_providing_group_grid_prequalification/{id}`.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Forbidden
'404':
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error_message'
- $ref: '#/components/schemas/empty_object'
description: Not Found
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Not Acceptable
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Internal Server Error
security:
- bearerAuth:
- read:data:service_providing_group_grid_prequalification_comment
- {}
parameters:
- in: query
name: embed
schema:
type: string
description: Comma-separated list of related resources to embed in the response.
- $ref: '#/components/parameters/ApiVersion'
patch:
operationId: update_service_providing_group_grid_prequalification_comment
summary: Update Grid prequalification for service providing group Comment
tags:
- service_providing_group_grid_prequalification_comment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_update_request'
description: service_providing_group_grid_prequalification_comment
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_response'
description: OK
'204':
content: {}
description: No Content
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Forbidden
'404':
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error_message'
- $ref: '#/components/schemas/empty_object'
description: Not Found
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Not Acceptable
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Conflict
security:
- bearerAuth:
- manage:data:service_providing_group_grid_prequalification_comment
parameters:
- $ref: '#/components/parameters/ApiVersion'
servers:
- url: https://test.flex.internal:6443/api/v1
description: Development
/service_providing_group_grid_prequalification_comment_history:
summary: Grid prequalification for service providing group Comment - history
description: ''
parameters:
- in: query
schema:
type: string
pattern: ^eq\.[0-9]+$
example: eq.55
description: Identifier of the history record.
name: id
- in: query
schema:
type: string
pattern: ^eq\.[0-9]+$
example: eq.55
description: Identifier of the Grid prequalification for service providing group Comment whose history we want to inspect.
name: service_providing_group_grid_prequalification_comment_id
get:
operationId: list_service_providing_group_grid_prequalification_comment_history
summary: List Grid prequalification for service providing group Comment - history
tags:
- service_providing_group_grid_prequalification_comment
parameters:
- in: query
schema:
type: string
pattern: ^eq\.[0-9]+$
example: eq.55
description: Unique surrogate identifier.
name: id
- in: query
schema:
type: string
pattern: ^eq\.[0-9]+$
example: eq.55
description: Reference to the service providing group grid prequalification.
name: service_providing_group_grid_prequalification_id
- in: query
name: as_of
schema:
type: string
format: date-time
example: '2023-12-31T23:59:00+00:00'
description: Filter based on record time. Alternative to using recorded_at and replaced_at filters together.
- description: Filtering Columns
in: query
name: select
schema:
type: string
- description: Ordering
in: query
name: order
schema:
type: string
- description: Limiting and Pagination
in: query
name: offset
schema:
type: string
- description: Limiting and Pagination
in: query
name: limit
schema:
type: string
- in: query
name: embed
schema:
type: string
description: Comma-separated list of related resources to embed in the response.
- $ref: '#/components/parameters/ApiVersion'
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_history_response'
type: array
description: OK
'206':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_history_response'
type: array
description: Partial Content
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Forbidden
'404':
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error_message'
- $ref: '#/components/schemas/empty_object'
description: Not Found
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Not Acceptable
'416':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Range Not Satisfiable
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Internal Server Error
security:
- bearerAuth:
- read:data:service_providing_group_grid_prequalification_comment_history
- {}
servers:
- url: https://test.flex.internal:6443/api/v1
description: Development
/service_providing_group_grid_prequalification_comment_history/{id}:
summary: Grid prequalification for service providing group Comment - history record
description: ''
parameters:
- in: path
name: id
required: true
schema:
format: bigint
type: integer
example: 14
description: Identifier of the history record we want to inspect.
get:
operationId: read_service_providing_group_grid_prequalification_comment_history
summary: Read Grid prequalification for service providing group Comment - history
tags:
- service_providing_group_grid_prequalification_comment
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_history_response'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Bad Request
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Forbidden
'404':
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/error_message'
- $ref: '#/components/schemas/empty_object'
description: Not Found
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Not Acceptable
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
description: Internal Server Error
security:
- bearerAuth:
- read:data:service_providing_group_grid_prequalification_comment_history
- {}
parameters:
- in: query
name: embed
schema:
type: string
description: Comma-separated list of related resources to embed in the response.
- $ref: '#/components/parameters/ApiVersion'
servers:
- url: https://test.flex.internal:6443/api/v1
description: Development
components:
schemas:
service_providing_group_grid_prequalification_response:
summary: Response - Grid prequalification for service providing group
description: Response schema - Grid prequalification for service providing group
type: object
properties:
id:
description: Unique surrogate key.
format: bigint
type: integer
readOnly: true
example: 27
service_providing_group_id:
description: Reference to the service providing group whose grid prequalification is tracked by the current resource.
format: bigint
type: integer
example: 55
impacted_system_operator_id:
description: Reference to the `party` that is the impacted system operator.
format: bigint
type: integer
example: 7
status:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_status'
default: requested
prequalified_at:
description: When the current grid prequalification was last approved.
format: date-time
type: string
nullable: true
example: '2023-01-08T10:00:00+01'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group:
description: Embedded service_providing_group
oneOf:
- $ref: '#/components/schemas/service_providing_group_response'
- type: 'null'
nullable: true
impacted_system_operator:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
comment:
description: Embedded service_providing_group_grid_prequalification_comment
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_id
- impacted_system_operator_id
- status
- recorded_at
- recorded_by
accounting_point_grid_location_quality:
description: Indicates how the grid location was determined. Guessed means that Flexibility Information System has estimated the location, while confirmed means that someone has verified it.
format: text
type: string
enum:
- confirmed
- guessed
example: confirmed
controllable_unit_history_response:
summary: Controllable unit - history
description: Controllable unit - history
properties:
id:
description: Unique surrogate key.
format: bigint
type: integer
readOnly: true
example: 12
business_id:
description: Unique business identifier for the controllable unit.
format: text
type: string
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
readOnly: true
example: 53919b79-876f-4dad-8bde-b29368367604
name:
description: Free text name of the controllable unit.
format: text
type: string
maxLength: 512
example: 'Car Charger #34'
start_date:
description: The usage date when the controllable unit is first active.
format: date
type: string
nullable: true
example: '2024-05-17'
status:
$ref: '#/components/schemas/controllable_unit_status'
default: new
regulation_direction:
$ref: '#/components/schemas/controllable_unit_regulation_direction'
maximum_active_power:
description: Maximum continuous active power (flexible power) that the controllable unit can produce or consume, i.e. deliver for balancing and congestion services, in kilowatts.
format: decimal
type: number
minimum: 0
maximum: 999999.999
multipleOf: 0.001
example: 3.5
is_small:
description: Whether the controllable unit is small or not, following NCDR. Current threshold for this to be true is <= 50 kW of flexible power.
format: boolean
type: boolean
readOnly: true
example: true
accounting_point_id:
description: Reference to the accounting point that the controllable unit is connected to.
format: bigint
type: integer
nullable: false
example: 10289
additional_information:
description: Free text field for extra information about the controllable unit if needed.
format: text
type: string
nullable: true
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
controllable_unit_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
suspension_history:
description: Embedded controllable_unit_suspension_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/controllable_unit_suspension_history_response'
- type: 'null'
nullable: true
service_provider_history:
description: Embedded controllable_unit_service_provider_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/controllable_unit_service_provider_history_response'
- type: 'null'
nullable: true
service_providing_group_membership_history:
description: Embedded service_providing_group_membership_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_membership_history_response'
- type: 'null'
nullable: true
technical_resource_history:
description: Embedded technical_resource_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/technical_resource_history_response'
- type: 'null'
nullable: true
required:
- id
- business_id
- name
- status
- regulation_direction
- maximum_active_power
- is_small
- accounting_point_id
- recorded_at
- recorded_by
- controllable_unit_id
entity_response:
summary: Response - Entity
description: 'Response schema - Entity - Natural or legal person
An entity is a natural or legal person that can be a party in the Flexibility Information System.
Example entity types:
* Person
* Organisation'
type: object
properties:
id:
description: 'Unique surrogate identifier.
Note:
This is a Primary Key.'
format: bigint
type: integer
readOnly: true
example: 14
business_id:
description: The business identifier of the entity. Format depends on `business_id_type`.
format: text
type: string
example: '13370000000'
business_id_type:
$ref: '#/components/schemas/entity_business_id_type'
name:
description: Name of the entity. Maximum 128 characters.
format: text
type: string
example: John Smith
type:
$ref: '#/components/schemas/entity_type'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
client:
description: Embedded entity_client
oneOf:
- type: array
items:
$ref: '#/components/schemas/entity_client_response'
- type: 'null'
nullable: true
party:
description: Embedded party
oneOf:
- type: array
items:
$ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
party_membership:
description: Embedded party_membership
oneOf:
- type: array
items:
$ref: '#/components/schemas/party_membership_response'
- type: 'null'
nullable: true
identity:
description: Embedded identity
oneOf:
- type: array
items:
$ref: '#/components/schemas/identity_response'
- type: 'null'
nullable: true
required:
- id
- business_id
- business_id_type
- name
- type
- recorded_at
- recorded_by
service_providing_group_grid_prequalification_comment_response:
summary: Response - Grid prequalification for service providing group Comment
description: Response schema - Comment made by a party involved in a service providing group grid prequalification.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 9
service_providing_group_grid_prequalification_id:
description: Reference to the service providing group grid prequalification.
format: bigint
type: integer
example: 7
created_by:
description: Reference to the identity that created the comment.
format: bigint
type: integer
readOnly: true
example: 94
created_at:
description: When the comment was added to the SPGGP.
format: date-time
type: string
readOnly: true
example: '2022-08-08 12:00:00+02:00'
visibility:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_visibility'
default: same_party
content:
description: Free text content of the comment.
format: text
type: string
maxLength: 2048
example: Missing document.
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_grid_prequalification:
description: Embedded service_providing_group_grid_prequalification
oneOf:
- $ref: '#/components/schemas/service_providing_group_grid_prequalification_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_grid_prequalification_id
- created_by
- created_at
- visibility
- content
- recorded_at
- recorded_by
technical_resource_response:
summary: Response - Technical Resource
description: Response schema - Technical unit being part of a controllable unit.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 89
name:
description: Name of the technical resource. Maximum 128 characters.
format: text
type: string
example: 'Battery Unit #1'
controllable_unit_id:
description: Reference to the controllable unit that this technical resource belongs to.
format: bigint
type: integer
example: 37
technology:
description: Technologies of the technical resource. Multiple technologies can be given, e.g. solar and battery for hybrid inverters.
type: array
items:
$ref: '#/components/schemas/technology'
minItems: 1
example:
- solar
- battery
category:
description: Categories derived from the technologies of the technical resource. Automatically computed based on the selected technologies.
type: array
items:
$ref: '#/components/schemas/category'
readOnly: true
example:
- production
- energy_storage
maximum_active_power:
description: Rated power in kilowatts. This is the maximum nominal continuous power of the device, typically defined by the manufacturer.
format: decimal
type: number
minimum: 0
maximum: 999999.999
nullable: false
multipleOf: 0.001
example: 120.0
device_type:
description: The type of device.
allOf:
- $ref: '#/components/schemas/device_type'
nullable: false
example: inverter
make:
description: The manufacturer of the device. Required if model or business id is provided.
format: text
type: string
maxLength: 128
nullable: true
example: SolarEdge
model:
description: The model of the device.
format: text
type: string
maxLength: 128
nullable: true
example: SE10K-RWS
business_id:
description: Business identifier of the device, such as a serial number or MAC address.
format: text
type: string
maxLength: 256
nullable: true
example: SE10K123456789
business_id_type:
oneOf:
- $ref: '#/components/schemas/technical_resource_business_id_type'
- type: 'null'
nullable: true
additional_information:
description: Free text field for extra information about the technical resource if needed.
format: text
type: string
nullable: true
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
controllable_unit:
description: Embedded controllable_unit
oneOf:
- $ref: '#/components/schemas/controllable_unit_response'
- type: 'null'
nullable: true
required:
- id
- name
- controllable_unit_id
- technology
- category
- maximum_active_power
- device_type
- recorded_at
- recorded_by
accounting_point_grid_location_response:
summary: Response - Accounting Point Grid Location
description: Response schema - The electrical (topological) location of an accounting point in the common grid model (Nemo).
type: object
properties:
id:
description: Unique surrogate key.
format: bigint
type: integer
readOnly: true
example: 1
accounting_point_id:
description: The accounting point this grid location belongs to.
format: bigint
type: integer
example: 45
object_type:
$ref: '#/components/schemas/accounting_point_grid_location_object_type'
business_id:
description: Business identifier (mRID) referencing the object in the common grid model (NEMO).
format: text
type: string
nullable: false
pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
example: 53919b79-876f-4dad-8bde-b29368367604
name:
description: Name of the grid model object at the location.
format: text
type: string
maxLength: 512
example: Snilldal 1 KRA
nominal_voltage:
description: Nominal voltage level at the grid location, in kilovolt (kV).
format: decimal
type: number
minimum: 0
maximum: 999999.999
multipleOf: 0.001
example: 22
additional_information:
description: Free text field for extra information about the grid location if needed.
format: text
type: string
nullable: true
source:
$ref: '#/components/schemas/accounting_point_grid_location_source'
readOnly: true
quality:
$ref: '#/components/schemas/accounting_point_grid_location_quality'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
accounting_point:
description: Embedded accounting_point
oneOf:
- $ref: '#/components/schemas/accounting_point_response'
- type: 'null'
nullable: true
required:
- id
- accounting_point_id
- object_type
- business_id
- name
- nominal_voltage
- source
- quality
- recorded_at
- recorded_by
controllable_unit_summary_response:
summary: Response - Controllable Unit Summary
description: Response schema - Aggregated summary of technical resources belonging to a controllable unit.
type: object
properties:
id:
description: Unique surrogate key (controllable unit ID).
format: bigint
type: integer
readOnly: true
example: 12
controllable_unit_id:
description: The ID of the controllable unit this resource is a summary of.
format: bigint
type: integer
readOnly: true
example: 12
technical_resource:
description: Aggregated statistics on technical resources belonging to the controllable unit, including counts and maximum active power breakdowns (sum, average, min, max) by category and technology.
type: object
readOnly: true
properties:
count:
type: integer
maximum_active_power:
$ref: '#/components/schemas/numeric_aggregation'
by_category:
type: object
propertyNames:
$ref: '#/components/schemas/category'
additionalProperties:
type: object
properties:
count:
type: integer
maximum_active_power:
$ref: '#/components/schemas/numeric_aggregation'
by_technology:
type: object
propertyNames:
$ref: '#/components/schemas/technology'
additionalProperties:
type: object
properties:
count:
type: integer
maximum_active_power:
$ref: '#/components/schemas/numeric_aggregation'
example:
technical_resource:
count: 3
maximum_active_power:
sum: 150
average: 50
min: 20
max: 80
by_category:
production:
count: 2
maximum_active_power:
sum: 130
average: 65
min: 50
max: 80
consumption:
count: 1
maximum_active_power:
sum: 20
average: 20
min: 20
max: 20
by_technology:
solar:
count: 2
maximum_active_power:
sum: 130
average: 65
min: 50
max: 80
battery:
count: 1
maximum_active_power:
sum: 20
average: 20
min: 20
max: 20
controllable_unit:
description: Embedded controllable_unit
oneOf:
- $ref: '#/components/schemas/controllable_unit_response'
- type: 'null'
nullable: true
required:
- id
- controllable_unit_id
- technical_resource
service_providing_group_membership_response:
summary: Response - Membership relation of controllable unit in service providing group
description: Response schema - Membership relation of controllable unit in service providing group
type: object
properties:
id:
description: Unique surrogate key.
format: bigint
type: integer
readOnly: true
example: 27
controllable_unit_id:
description: Reference to the controllable unit this relation links to a service providing group.
format: bigint
type: integer
example: 6
service_providing_group_id:
description: Reference to the service providing group this relation links to a controllable unit.
format: bigint
type: integer
example: 55
valid_from:
description: The date from which the relation between the controllable unit and the service providing group is valid. Midnight aligned on Norwegian timezone.
format: date-time
type: string
example: '2022-08-08T00:00:00+02'
valid_to:
description: The date until which the relation between the controllable unit and the service providing group is valid. Midnight aligned on Norwegian timezone.
format: date-time
type: string
nullable: true
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
controllable_unit:
description: Embedded controllable_unit
oneOf:
- $ref: '#/components/schemas/controllable_unit_response'
- type: 'null'
nullable: true
service_providing_group:
description: Embedded service_providing_group
oneOf:
- $ref: '#/components/schemas/service_providing_group_response'
- type: 'null'
nullable: true
required:
- id
- controllable_unit_id
- service_providing_group_id
- valid_from
- recorded_at
- recorded_by
service_providing_group_grid_prequalification_status:
description: The status of the grid prequalification for this service providing group.
format: text
type: string
default: requested
enum:
- requested
- in_progress
- conditionally_approved
- approved
- not_approved
example: in_progress
category:
description: Resource category classification. Derived from technologies.
format: text
type: string
enum:
- consumption
- production
- energy_storage
service_providing_group_grid_suspension_comment_response:
summary: Response - Service Providing Group Grid Suspension Comment
description: Response schema - Comment made by a party involved in a service providing group grid suspension.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 9
service_providing_group_grid_suspension_id:
description: Reference to the service providing group grid suspension.
format: bigint
type: integer
example: 7
created_by:
description: Reference to the identity that created the comment.
format: bigint
type: integer
readOnly: true
example: 94
created_at:
description: When the comment was added to the SPGGS.
format: date-time
type: string
readOnly: true
example: '2022-08-08 12:00:00+02:00'
visibility:
$ref: '#/components/schemas/service_providing_group_grid_suspension_comment_visibility'
default: same_party
content:
description: Free text content of the comment.
format: text
type: string
maxLength: 2048
example: Missing document.
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_grid_suspension:
description: Embedded service_providing_group_grid_suspension
oneOf:
- $ref: '#/components/schemas/service_providing_group_grid_suspension_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_grid_suspension_id
- created_by
- created_at
- visibility
- content
- recorded_at
- recorded_by
service_providing_group_product_application_attachment_response:
summary: Response - Service Providing Group Product Application Attachment
description: Response schema - File attachment associated with a service providing group product application, allowing involved parties to exchange supporting documents.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 9
service_providing_group_product_application_id:
description: Reference to the service providing group product application.
format: bigint
type: integer
example: 7
object_id:
description: Identifier of the object to which the attachment is linked.
format: text
type: string
example: 08aa9239-d209-4c15-a916-2b4942ce45ee
filename:
description: Original filename of the attachment.
format: text
type: string
example: document.pdf
filename_sanitised:
description: Sanitised filename safe for storage.
format: text
type: string
example: document.pdf
content_type:
$ref: '#/components/schemas/service_providing_group_product_application_attachment_content_type'
size_bytes:
description: Size of the attachment in bytes.
format: bigint
type: integer
example: 204800
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_product_application:
description: Embedded service_providing_group_product_application
oneOf:
- $ref: '#/components/schemas/service_providing_group_product_application_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_product_application_id
- object_id
- filename
- filename_sanitised
- content_type
- size_bytes
- recorded_at
- recorded_by
metering_grid_area_business_id_type:
description: The type of the business identifier.
format: text
type: string
readOnly: true
enum:
- eic_y
example: eic_y
controllable_unit_service_provider_response:
summary: Response - Relation between controllable unit and service provider
description: Response schema - Relation between controllable unit and service provider
type: object
properties:
id:
description: Unique surrogate key.
format: bigint
type: integer
readOnly: true
example: 7
controllable_unit_id:
description: Reference to the controllable unit this relation links to a service provider.
format: bigint
type: integer
example: 2
service_provider_id:
description: Reference to the `party` (service provider) this relation links to a controllable unit.
format: bigint
type: integer
example: 78
end_user_id:
description: Technical ID of the end user behind the accounting point.
format: bigint
type: integer
contract_reference:
description: The service providers internal reference to the contract with the end user. Typically an internal identifier to a stored document or consent record.
format: text
type: string
maxLength: 128
nullable: false
example: 123e4567-e89b-12d3-a456-426614174000
valid_from:
description: The date from which the relation between the controllable unit and the service provider is valid. Midnight aligned on Norwegian timezone.
format: date-time
type: string
nullable: true
example: '2022-08-08T00:00:00+02'
valid_to:
description: The date until which the relation between the controllable unit and the service provider is valid. Midnight aligned on Norwegian timezone.
format: date-time
type: string
nullable: true
example: '2022-09-10T00:00:00+02'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
controllable_unit:
description: Embedded controllable_unit
oneOf:
- $ref: '#/components/schemas/controllable_unit_response'
- type: 'null'
nullable: true
service_provider:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
end_user:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
required:
- id
- controllable_unit_id
- service_provider_id
- end_user_id
- contract_reference
- recorded_at
- recorded_by
entity_client_response:
summary: Response - Entity client
description: Response schema - Client linked to an entity for client credentials and JWT grant authentication methods.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 14
entity_id:
description: Reference to the entity that this client is attached to.
format: bigint
type: integer
example: 30
name:
description: Name of the client.
format: text
type: string
maxLength: 256
nullable: true
example: Laptop
client_id:
description: The identifier of the entity. For use with client credentials authentication method.
format: text
type: string
readOnly: true
example: addr@flex.test
party_id:
description: Reference to the party this client allows to assume. A null value means the client cannot assume any party.
format: bigint
type: integer
nullable: true
example: 30
scopes:
description: 'List of scopes granted to the user when it logs in as an entity or when it acts as the party. When assuming a party through party membership, the least privileged set of scopes will be kept.
Scopes are inspired from OAuth 2.0 and allow refinement of access control and privilege delegation mechanisms.'
type: array
items:
$ref: '#/components/schemas/auth_scope'
nullable: false
example:
- read:data
client_secret:
description: The secret of the entity. For use with client credentials authentication method. Input as plain text but stored encrypted.
format: text
type: string
minLength: 12
nullable: true
example: mysupersecretpassword
public_key:
description: The public key of the entity (X.509 SubjectPublicKeyInfo). For use with JWT grant authentication method.
format: text
type: string
nullable: true
pattern: ^-----BEGIN PUBLIC KEY-----\nMIIB[-A-Za-z0-9+/\n]*={0,3}\n-----END PUBLIC KEY-----$
example: '-----BEGIN PUBLIC KEY-----
MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAq3DnhgYgLVJknvDA3clA
TozPtjI7yauqD/ZuqgZn4KzzzkQ4BzJar4jRygpzbghlFn0Luk1mdVKzPUgYj0V
kbRlHyYfxahbgOHixOOnXkKXrtZW7yWGjXPqy/ZJ/+kFBNPAzxy7fDuAzKfU3Rn5
0sBakg95pua14W1oE4rtd4/U+sg2maCq6HgGdCLLxRWwXA8IBtvHZ48i6kxiz9tu
-----END PUBLIC KEY-----'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
entity:
description: Embedded entity
oneOf:
- $ref: '#/components/schemas/entity_response'
- type: 'null'
nullable: true
party:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
required:
- id
- entity_id
- client_id
- scopes
- recorded_at
- recorded_by
controllable_unit_suspension_response:
summary: Response - Controllable Unit Suspension
description: Response schema - The relation allowing an impacted system operator to temporarily suspend a controllable unit.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 74
controllable_unit_id:
description: Reference to the suspended controllable unit.
format: bigint
type: integer
example: 2
impacted_system_operator_id:
description: Reference to the impacted system operator suspending the controllable unit.
format: bigint
type: integer
example: 7
reason:
$ref: '#/components/schemas/controllable_unit_suspension_reason'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
controllable_unit:
description: Embedded controllable_unit
oneOf:
- $ref: '#/components/schemas/controllable_unit_response'
- type: 'null'
nullable: true
impacted_system_operator:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
comment:
description: Embedded controllable_unit_suspension_comment
oneOf:
- type: array
items:
$ref: '#/components/schemas/controllable_unit_suspension_comment_response'
- type: 'null'
nullable: true
required:
- id
- controllable_unit_id
- impacted_system_operator_id
- reason
- recorded_at
- recorded_by
service_providing_group_grid_prequalification_comment_visibility:
description: The level of visibility of the comment.
format: text
type: string
default: same_party
enum:
- same_party
- any_involved_party
example: same_party
entity_business_id_type:
description: The type of the business identifier.
format: text
type: string
example: pid
enum:
- pid
- org
- email
service_providing_group_grid_suspension_response:
summary: Response - Service Providing Group Grid Suspension
description: Response schema - The relation allowing an impacted system operator to temporarily suspend a service providing group from delivering services.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 49
impacted_system_operator_id:
description: Reference to the impacted system operator suspending the service providing group.
format: bigint
type: integer
example: 7
service_providing_group_id:
description: Reference to the service providing group being suspended.
format: bigint
type: integer
example: 13
reason:
$ref: '#/components/schemas/service_providing_group_grid_suspension_reason'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
impacted_system_operator:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
service_providing_group:
description: Embedded service_providing_group
oneOf:
- $ref: '#/components/schemas/service_providing_group_response'
- type: 'null'
nullable: true
comment:
description: Embedded service_providing_group_grid_suspension_comment
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_grid_suspension_comment_response'
- type: 'null'
nullable: true
required:
- id
- impacted_system_operator_id
- service_providing_group_id
- reason
- recorded_at
- recorded_by
service_providing_group_grid_prequalification_history_response:
summary: Grid prequalification for service providing group - history
description: Grid prequalification for service providing group - history
properties:
id:
description: Unique surrogate key.
format: bigint
type: integer
readOnly: true
example: 27
service_providing_group_id:
description: Reference to the service providing group whose grid prequalification is tracked by the current resource.
format: bigint
type: integer
example: 55
impacted_system_operator_id:
description: Reference to the `party` that is the impacted system operator.
format: bigint
type: integer
example: 7
status:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_status'
default: requested
prequalified_at:
description: When the current grid prequalification was last approved.
format: date-time
type: string
nullable: true
example: '2023-01-08T10:00:00+01'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_grid_prequalification_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
service_providing_group_history:
description: Embedded service_providing_group_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_history_response'
- type: 'null'
nullable: true
impacted_system_operator_history:
description: Embedded party_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/party_history_response'
- type: 'null'
nullable: true
comment_history:
description: Embedded service_providing_group_grid_prequalification_comment_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_history_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_id
- impacted_system_operator_id
- status
- recorded_at
- recorded_by
- service_providing_group_grid_prequalification_id
controllable_unit_response:
summary: Response - Controllable unit
description: Response schema - Controllable unit
type: object
properties:
id:
description: Unique surrogate key.
format: bigint
type: integer
readOnly: true
example: 12
business_id:
description: Unique business identifier for the controllable unit.
format: text
type: string
pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
readOnly: true
example: 53919b79-876f-4dad-8bde-b29368367604
name:
description: Free text name of the controllable unit.
format: text
type: string
maxLength: 512
example: 'Car Charger #34'
start_date:
description: The usage date when the controllable unit is first active.
format: date
type: string
nullable: true
example: '2024-05-17'
status:
$ref: '#/components/schemas/controllable_unit_status'
default: new
regulation_direction:
$ref: '#/components/schemas/controllable_unit_regulation_direction'
maximum_active_power:
description: Maximum continuous active power (flexible power) that the controllable unit can produce or consume, i.e. deliver for balancing and congestion services, in kilowatts.
format: decimal
type: number
minimum: 0
maximum: 999999.999
multipleOf: 0.001
example: 3.5
is_small:
description: Whether the controllable unit is small or not, following NCDR. Current threshold for this to be true is <= 50 kW of flexible power.
format: boolean
type: boolean
readOnly: true
example: true
accounting_point_id:
description: Reference to the accounting point that the controllable unit is connected to.
format: bigint
type: integer
nullable: false
example: 10289
additional_information:
description: Free text field for extra information about the controllable unit if needed.
format: text
type: string
nullable: true
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
accounting_point:
description: Embedded accounting_point
oneOf:
- $ref: '#/components/schemas/accounting_point_response'
- type: 'null'
nullable: true
suspension:
description: Embedded controllable_unit_suspension
oneOf:
- type: array
items:
$ref: '#/components/schemas/controllable_unit_suspension_response'
- type: 'null'
nullable: true
service_provider:
description: Embedded controllable_unit_service_provider
oneOf:
- type: array
items:
$ref: '#/components/schemas/controllable_unit_service_provider_response'
- type: 'null'
nullable: true
summary:
description: Embedded controllable_unit_summary
oneOf:
- $ref: '#/components/schemas/controllable_unit_summary_response'
- type: 'null'
nullable: true
service_providing_group_membership:
description: Embedded service_providing_group_membership
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_membership_response'
- type: 'null'
nullable: true
technical_resource:
description: Embedded technical_resource
oneOf:
- type: array
items:
$ref: '#/components/schemas/technical_resource_response'
- type: 'null'
nullable: true
required:
- id
- business_id
- name
- status
- regulation_direction
- maximum_active_power
- is_small
- accounting_point_id
- recorded_at
- recorded_by
service_providing_group_grid_suspension_comment_visibility:
description: The level of visibility of the comment.
format: text
type: string
default: same_party
enum:
- same_party
- any_involved_party
example: same_party
service_providing_group_membership_history_response:
summary: Membership relation of controllable unit in service providing group - history
description: Membership relation of controllable unit in service providing group - history
properties:
id:
description: Unique surrogate key.
format: bigint
type: integer
readOnly: true
example: 27
controllable_unit_id:
description: Reference to the controllable unit this relation links to a service providing group.
format: bigint
type: integer
example: 6
service_providing_group_id:
description: Reference to the service providing group this relation links to a controllable unit.
format: bigint
type: integer
example: 55
valid_from:
description: The date from which the relation between the controllable unit and the service providing group is valid. Midnight aligned on Norwegian timezone.
format: date-time
type: string
example: '2022-08-08T00:00:00+02'
valid_to:
description: The date until which the relation between the controllable unit and the service providing group is valid. Midnight aligned on Norwegian timezone.
format: date-time
type: string
nullable: true
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_membership_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
controllable_unit_history:
description: Embedded controllable_unit_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/controllable_unit_history_response'
- type: 'null'
nullable: true
service_providing_group_history:
description: Embedded service_providing_group_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_history_response'
- type: 'null'
nullable: true
required:
- id
- controllable_unit_id
- service_providing_group_id
- valid_from
- recorded_at
- recorded_by
- service_providing_group_membership_id
service_providing_group_product_application_comment_history_response:
summary: Service Providing Group Product Application Comment - history
description: Service Providing Group Product Application Comment - history
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 9
service_providing_group_product_application_id:
description: Reference to the service providing group product application.
format: bigint
type: integer
example: 7
created_by:
description: Reference to the identity that created the comment.
format: bigint
type: integer
readOnly: true
example: 94
created_at:
description: When the comment was added to the SPGPA.
format: date-time
type: string
readOnly: true
example: '2022-08-08 12:00:00+02:00'
visibility:
$ref: '#/components/schemas/service_providing_group_product_application_comment_visibility'
default: same_party
content:
description: Free text content of the comment.
format: text
type: string
maxLength: 2048
example: Missing document.
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_product_application_comment_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
service_providing_group_product_application_history:
description: Embedded service_providing_group_product_application_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_application_history_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_product_application_id
- created_by
- created_at
- visibility
- content
- recorded_at
- recorded_by
- service_providing_group_product_application_comment_id
service_providing_group_product_suspension_comment_history_response:
summary: Service Providing Group Product Suspension Comment - history
description: Service Providing Group Product Suspension Comment - history
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 9
service_providing_group_product_suspension_id:
description: Reference to the service providing group product suspension.
format: bigint
type: integer
example: 7
created_by:
description: Reference to the identity that created the comment.
format: bigint
type: integer
readOnly: true
example: 94
created_at:
description: When the comment was added to the SPGPS.
format: date-time
type: string
readOnly: true
example: '2022-08-08 12:00:00+02:00'
visibility:
$ref: '#/components/schemas/service_providing_group_product_suspension_comment_visibility'
default: same_party
content:
description: Free text content of the comment.
format: text
type: string
maxLength: 2048
example: Missing document.
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_product_suspension_comment_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
service_providing_group_product_suspension_history:
description: Embedded service_providing_group_product_suspension_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_suspension_history_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_product_suspension_id
- created_by
- created_at
- visibility
- content
- recorded_at
- recorded_by
- service_providing_group_product_suspension_comment_id
service_providing_group_product_application_ramping_capability:
description: Whether the service providing group can ramp in accordance with the product requirements during both activation and deactivation.
format: text
type: string
nullable: true
enum:
- always
- partial
- never
example: always
accounting_point_grid_location_object_type:
description: The type of object in the common grid model that the accounting point is at.
format: text
type: string
enum:
- substation
example: substation
service_providing_group_power_per_substation_response:
summary: Response - Service Providing Group Power Per Substation
description: Response schema - Per-substation breakdown of controllable units and their technical details for a service providing group.
type: object
properties:
id:
description: Unique surrogate key (service providing group ID).
format: bigint
type: integer
readOnly: true
example: 4
service_providing_group_id:
description: The ID of the service providing group this resource is a breakdown of.
format: bigint
type: integer
readOnly: true
example: 4
substations:
description: List of per-substation aggregates for the controllable units currently in the service providing group. Each element contains the substation identifier and name, plus controllable unit and technical resource aggregates. An element with null substation fields groups controllable units whose grid location has not yet been assigned.
type: array
readOnly: true
items:
type: object
properties:
substation_business_id:
type: string
nullable: true
substation_name:
type: string
nullable: true
controllable_unit:
type: object
properties:
count:
type: integer
maximum_active_power:
$ref: '#/components/schemas/numeric_aggregation'
technical_resource:
type: object
properties:
count:
type: integer
maximum_active_power:
$ref: '#/components/schemas/numeric_aggregation'
example:
- substation_business_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
substation_name: Substation A
controllable_unit:
count: 3
maximum_active_power:
sum: 120
average: 40
min: 20
max: 60
technical_resource:
count: 5
maximum_active_power:
sum: 150
average: 50
min: 30
max: 80
service_providing_group:
description: Embedded service_providing_group
oneOf:
- $ref: '#/components/schemas/service_providing_group_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_id
- substations
auth_scope:
description: Authorization scopes.
format: text
type: string
enum:
- manage:attachment
- manage:attachment:service_providing_group_product_application_attachment
- manage:auth
- manage:data
- manage:data:accounting_point_grid_location
- manage:data:controllable_unit
- manage:data:controllable_unit_service_provider
- manage:data:controllable_unit_suspension
- manage:data:controllable_unit_suspension_comment
- manage:data:entity
- manage:data:entity_client
- manage:data:notification
- manage:data:party
- manage:data:party_membership
- manage:data:service_provider_product_application
- manage:data:service_provider_product_application_comment
- manage:data:service_provider_product_suspension
- manage:data:service_provider_product_suspension_comment
- manage:data:service_providing_group
- manage:data:service_providing_group_grid_prequalification
- manage:data:service_providing_group_grid_prequalification_comment
- manage:data:service_providing_group_grid_suspension
- manage:data:service_providing_group_grid_suspension_comment
- manage:data:service_providing_group_membership
- manage:data:service_providing_group_product_application
- manage:data:service_providing_group_product_application_comment
- manage:data:service_providing_group_product_suspension
- manage:data:service_providing_group_product_suspension_comment
- manage:data:system_operator_product_type
- manage:data:technical_resource
- read:attachment
- read:attachment:service_providing_group_product_application_attachment
- read:attachment:service_providing_group_product_application_attachment_history
- read:auth
- read:data
- read:data:accounting_point
- read:data:accounting_point_balance_responsible_party
- read:data:accounting_point_bidding_zone
- read:data:accounting_point_end_user
- read:data:accounting_point_energy_supplier
- read:data:accounting_point_grid_location
- read:data:accounting_point_grid_location_history
- read:data:accounting_point_metering_grid_area
- read:data:controllable_unit
- read:data:controllable_unit_history
- read:data:controllable_unit_service_provider
- read:data:controllable_unit_service_provider_history
- read:data:controllable_unit_summary
- read:data:controllable_unit_suspension
- read:data:controllable_unit_suspension_comment
- read:data:controllable_unit_suspension_comment_history
- read:data:controllable_unit_suspension_history
- read:data:entity
- read:data:entity_client
- read:data:event
- read:data:identity
- read:data:metering_grid_area
- read:data:notice
- read:data:notification
- read:data:party
- read:data:party_history
- read:data:party_membership
- read:data:party_membership_history
- read:data:product_type
- read:data:service_provider_product_application
- read:data:service_provider_product_application_comment
- read:data:service_provider_product_application_comment_history
- read:data:service_provider_product_application_history
- read:data:service_provider_product_suspension
- read:data:service_provider_product_suspension_comment
- read:data:service_provider_product_suspension_comment_history
- read:data:service_provider_product_suspension_history
- read:data:service_providing_group
- read:data:service_providing_group_grid_prequalification
- read:data:service_providing_group_grid_prequalification_comment
- read:data:service_providing_group_grid_prequalification_comment_history
- read:data:service_providing_group_grid_prequalification_history
- read:data:service_providing_group_grid_suspension
- read:data:service_providing_group_grid_suspension_comment
- read:data:service_providing_group_grid_suspension_comment_history
- read:data:service_providing_group_grid_suspension_history
- read:data:service_providing_group_history
- read:data:service_providing_group_membership
- read:data:service_providing_group_membership_history
- read:data:service_providing_group_power_per_substation
- read:data:service_providing_group_product_application
- read:data:service_providing_group_product_application_comment
- read:data:service_providing_group_product_application_comment_history
- read:data:service_providing_group_product_application_history
- read:data:service_providing_group_product_suspension
- read:data:service_providing_group_product_suspension_comment
- read:data:service_providing_group_product_suspension_comment_history
- read:data:service_providing_group_product_suspension_history
- read:data:service_providing_group_summary
- read:data:system_operator_product_type
- read:data:system_operator_product_type_history
- read:data:technical_resource
- read:data:technical_resource_history
- read:grid
- read:grid:line
- read:grid:substation
- read:grid:substation_cluster
- use:auth
- use:data
- use:data:controllable_unit
- use:data:controllable_unit:lookup
- use:data:entity
- use:data:entity:lookup
accounting_point_response:
summary: Response - Accounting Point
description: Response schema - Accounting point for a controllable unit.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 89
business_id:
description: The GSRN metering point id of the accounting point.
format: text
type: string
readOnly: true
pattern: ^[1-9][0-9]{17}$
example: '709000000000000057'
system_operator_id:
description: The system operator of the accounting point.
format: bigint
type: integer
readOnly: true
location:
description: Geographic location of the accounting point (WGS84), as a GeoJSON point object.
nullable: true
readOnly: true
example:
type: Point
coordinates:
- -2.0259056
- 48.6504504
type: object
oneOf:
- $ref: '#/components/schemas/geojson_point'
- type: 'null'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
controllable_unit:
description: Embedded controllable_unit
oneOf:
- type: array
items:
$ref: '#/components/schemas/controllable_unit_response'
- type: 'null'
nullable: true
system_operator:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
balance_responsible_party:
description: Embedded accounting_point_balance_responsible_party
oneOf:
- type: array
items:
$ref: '#/components/schemas/accounting_point_balance_responsible_party_response'
- type: 'null'
nullable: true
bidding_zone:
description: Embedded accounting_point_bidding_zone
oneOf:
- type: array
items:
$ref: '#/components/schemas/accounting_point_bidding_zone_response'
- type: 'null'
nullable: true
end_user:
description: Embedded accounting_point_end_user
oneOf:
- type: array
items:
$ref: '#/components/schemas/accounting_point_end_user_response'
- type: 'null'
nullable: true
energy_supplier:
description: Embedded accounting_point_energy_supplier
oneOf:
- type: array
items:
$ref: '#/components/schemas/accounting_point_energy_supplier_response'
- type: 'null'
nullable: true
metering_grid_area:
description: Embedded accounting_point_metering_grid_area
oneOf:
- type: array
items:
$ref: '#/components/schemas/accounting_point_metering_grid_area_response'
- type: 'null'
nullable: true
grid_location:
description: Embedded accounting_point_grid_location
oneOf:
- $ref: '#/components/schemas/accounting_point_grid_location_response'
- type: 'null'
nullable: true
required:
- id
- business_id
- system_operator_id
- recorded_at
- recorded_by
accounting_point_energy_supplier_response:
summary: Response - Accounting Point Energy Supplier
description: Response schema - Relation linking an energy supplier to an accounting point.
type: object
properties:
accounting_point_id:
description: The ID of the accounting point.
format: bigint
type: integer
readOnly: true
example: 45
energy_supplier_id:
description: The energy supplier of the accounting point.
format: bigint
type: integer
example: 7
readOnly: true
valid_from:
description: The date from which the relation between the accounting point and the energy supplier is valid. Midnight aligned on Norwegian timezone.
format: date-time
type: string
readOnly: true
example: '2023-09-09T00:00:00+02'
valid_to:
description: The date until which the relation between the accounting point and the energy supplier is valid. Midnight aligned on Norwegian timezone.
format: date-time
type: string
readOnly: true
nullable: true
accounting_point:
description: Embedded accounting_point
oneOf:
- $ref: '#/components/schemas/accounting_point_response'
- type: 'null'
nullable: true
energy_supplier:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
required:
- accounting_point_id
- energy_supplier_id
- valid_from
technical_resource_history_response:
summary: Technical Resource - history
description: Technical Resource - history
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 89
name:
description: Name of the technical resource. Maximum 128 characters.
format: text
type: string
example: 'Battery Unit #1'
controllable_unit_id:
description: Reference to the controllable unit that this technical resource belongs to.
format: bigint
type: integer
example: 37
technology:
description: Technologies of the technical resource. Multiple technologies can be given, e.g. solar and battery for hybrid inverters.
type: array
items:
$ref: '#/components/schemas/technology'
minItems: 1
example:
- solar
- battery
category:
description: Categories derived from the technologies of the technical resource. Automatically computed based on the selected technologies.
type: array
items:
$ref: '#/components/schemas/category'
readOnly: true
example:
- production
- energy_storage
maximum_active_power:
description: Rated power in kilowatts. This is the maximum nominal continuous power of the device, typically defined by the manufacturer.
format: decimal
type: number
minimum: 0
maximum: 999999.999
nullable: false
multipleOf: 0.001
example: 120.0
device_type:
description: The type of device.
allOf:
- $ref: '#/components/schemas/device_type'
nullable: false
example: inverter
make:
description: The manufacturer of the device. Required if model or business id is provided.
format: text
type: string
maxLength: 128
nullable: true
example: SolarEdge
model:
description: The model of the device.
format: text
type: string
maxLength: 128
nullable: true
example: SE10K-RWS
business_id:
description: Business identifier of the device, such as a serial number or MAC address.
format: text
type: string
maxLength: 256
nullable: true
example: SE10K123456789
business_id_type:
oneOf:
- $ref: '#/components/schemas/technical_resource_business_id_type'
- type: 'null'
nullable: true
additional_information:
description: Free text field for extra information about the technical resource if needed.
format: text
type: string
nullable: true
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
technical_resource_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
controllable_unit_history:
description: Embedded controllable_unit_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/controllable_unit_history_response'
- type: 'null'
nullable: true
required:
- id
- name
- controllable_unit_id
- technology
- category
- maximum_active_power
- device_type
- recorded_at
- recorded_by
- technical_resource_id
service_providing_group_product_suspension_comment_response:
summary: Response - Service Providing Group Product Suspension Comment
description: Response schema - Comment made by a party involved in a service providing group product suspension.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 9
service_providing_group_product_suspension_id:
description: Reference to the service providing group product suspension.
format: bigint
type: integer
example: 7
created_by:
description: Reference to the identity that created the comment.
format: bigint
type: integer
readOnly: true
example: 94
created_at:
description: When the comment was added to the SPGPS.
format: date-time
type: string
readOnly: true
example: '2022-08-08 12:00:00+02:00'
visibility:
$ref: '#/components/schemas/service_providing_group_product_suspension_comment_visibility'
default: same_party
content:
description: Free text content of the comment.
format: text
type: string
maxLength: 2048
example: Missing document.
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_product_suspension:
description: Embedded service_providing_group_product_suspension
oneOf:
- $ref: '#/components/schemas/service_providing_group_product_suspension_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_product_suspension_id
- created_by
- created_at
- visibility
- content
- recorded_at
- recorded_by
geojson_point:
type: object
properties:
type:
type: string
enum:
- Point
coordinates:
type: array
description: '[longitude, latitude] in decimal degrees (WGS84)'
items:
type: number
minItems: 2
maxItems: 2
required:
- type
- coordinates
service_providing_group_status:
description: The status of the group.
format: text
type: string
default: new
enum:
- new
- active
- inactive
- terminated
example: active
service_providing_group_product_application_attachment_history_response:
summary: Service Providing Group Product Application Attachment - history
description: Service Providing Group Product Application Attachment - history
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 9
service_providing_group_product_application_id:
description: Reference to the service providing group product application.
format: bigint
type: integer
example: 7
object_id:
description: Identifier of the object to which the attachment is linked.
format: text
type: string
example: 08aa9239-d209-4c15-a916-2b4942ce45ee
filename:
description: Original filename of the attachment.
format: text
type: string
example: document.pdf
filename_sanitised:
description: Sanitised filename safe for storage.
format: text
type: string
example: document.pdf
content_type:
$ref: '#/components/schemas/service_providing_group_product_application_attachment_content_type'
size_bytes:
description: Size of the attachment in bytes.
format: bigint
type: integer
example: 204800
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_product_application_attachment_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
service_providing_group_product_application_history:
description: Embedded service_providing_group_product_application_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_application_history_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_product_application_id
- object_id
- filename
- filename_sanitised
- content_type
- size_bytes
- recorded_at
- recorded_by
- service_providing_group_product_application_attachment_id
accounting_point_balance_responsible_party_energy_direction:
description: The direction of the effect on the balance that the BRP takes responsibility for.
format: text
type: string
readOnly: true
example: consumption
enum:
- consumption
- production
service_providing_group_product_suspension_history_response:
summary: Service Providing Group Product Suspension - history
description: Service Providing Group Product Suspension - history
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 12
procuring_system_operator_id:
description: Reference to the procuring system operator suspending the service providing group.
format: bigint
type: integer
example: 91
service_providing_group_id:
description: Reference to the service providing group being suspended.
format: bigint
type: integer
example: 7
product_type_ids:
description: References to the suspended product types.
type: array
items:
format: bigint
type: integer
example:
- 3
- 6
reason:
$ref: '#/components/schemas/service_providing_group_product_suspension_reason'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_product_suspension_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
procuring_system_operator_history:
description: Embedded party_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/party_history_response'
- type: 'null'
nullable: true
service_providing_group_history:
description: Embedded service_providing_group_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_history_response'
- type: 'null'
nullable: true
comment_history:
description: Embedded service_providing_group_product_suspension_comment_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_suspension_comment_history_response'
- type: 'null'
nullable: true
required:
- id
- procuring_system_operator_id
- service_providing_group_id
- product_type_ids
- reason
- recorded_at
- recorded_by
- service_providing_group_product_suspension_id
service_providing_group_product_application_response:
summary: Response - Service Providing Group Product Application
description: Response schema - Relation between a service providing group and a system operator for a product type, for the SPG to deliver a product to the SO later.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 89
service_providing_group_id:
description: Reference to the service providing group.
format: bigint
type: integer
example: 18
procuring_system_operator_id:
description: Reference to the procuring system operator.
format: bigint
type: integer
example: 39
product_type_ids:
description: References to the product types.
type: array
items:
format: bigint
type: integer
example:
- 2
- 4
- 5
status:
$ref: '#/components/schemas/service_providing_group_product_application_status'
default: requested
maximum_active_power_up:
description: The maximum active power applied for in regulation direction up. Stored in kilowatts.
format: decimal
type: number
minimum: 0
maximum: 999999.999
multipleOf: 0.001
example: 150.5
maximum_active_power_down:
description: The maximum active power applied for in regulation direction down. Stored in kilowatts.
format: decimal
type: number
minimum: 0
maximum: 999999.999
multipleOf: 0.001
example: 150.5
additional_information:
description: Free text field for extra information about the application if needed (bidding periods, unavailabilities, etc).
format: text
type: string
maxLength: 512
nullable: true
prequalified_at:
description: When the product application was last prequalified.
format: date-time
type: string
nullable: true
example: '2022-08-08T12:00:00+02'
verified_at:
description: When the product application was last verified.
format: date-time
type: string
nullable: true
example: '2021-08-08T10:00:00+02'
ramping_capability:
oneOf:
- $ref: '#/components/schemas/service_providing_group_product_application_ramping_capability'
- type: 'null'
nullable: true
ramping_description:
description: Free text description of ramping details. Only required for product Manual Frequency Restoration (mFRR).
format: text
type: string
nullable: true
example: Units are (dis)connected one by one to achieve a stepwise profile. We ensure linearity on a minute resolution.
created_at:
description: When the application was first created.
format: date-time
type: string
readOnly: true
example: '2022-01-08T12:00:00+02'
complete_at:
description: When the application was last marked complete by the procuring system operator.
format: date-time
type: string
nullable: true
example: '2022-08-08T12:00:00+02'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group:
description: Embedded service_providing_group
oneOf:
- $ref: '#/components/schemas/service_providing_group_response'
- type: 'null'
nullable: true
procuring_system_operator:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
attachment:
description: Embedded service_providing_group_product_application_attachment
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_application_attachment_response'
- type: 'null'
nullable: true
comment:
description: Embedded service_providing_group_product_application_comment
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_application_comment_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_id
- procuring_system_operator_id
- product_type_ids
- status
- maximum_active_power_up
- maximum_active_power_down
- created_at
- recorded_at
- recorded_by
party_status:
description: The status of the party.
format: text
type: string
default: new
enum:
- new
- active
- inactive
- suspended
- terminated
example: active
service_providing_group_grid_prequalification_comment_create_request:
summary: Create - Grid prequalification for service providing group Comment
description: Request schema for create operations - Comment made by a party involved in a service providing group grid prequalification.
type: object
properties:
service_providing_group_grid_prequalification_id:
description: Reference to the service providing group grid prequalification.
format: bigint
type: integer
example: 7
visibility:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_visibility'
default: same_party
content:
description: Free text content of the comment.
format: text
type: string
maxLength: 2048
example: Missing document.
required:
- service_providing_group_grid_prequalification_id
- content
controllable_unit_suspension_history_response:
summary: Controllable Unit Suspension - history
description: Controllable Unit Suspension - history
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 74
controllable_unit_id:
description: Reference to the suspended controllable unit.
format: bigint
type: integer
example: 2
impacted_system_operator_id:
description: Reference to the impacted system operator suspending the controllable unit.
format: bigint
type: integer
example: 7
reason:
$ref: '#/components/schemas/controllable_unit_suspension_reason'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
controllable_unit_suspension_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
controllable_unit_history:
description: Embedded controllable_unit_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/controllable_unit_history_response'
- type: 'null'
nullable: true
impacted_system_operator_history:
description: Embedded party_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/party_history_response'
- type: 'null'
nullable: true
comment_history:
description: Embedded controllable_unit_suspension_comment_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/controllable_unit_suspension_comment_history_response'
- type: 'null'
nullable: true
required:
- id
- controllable_unit_id
- impacted_system_operator_id
- reason
- recorded_at
- recorded_by
- controllable_unit_suspension_id
technology:
description: Technology classification using ltree path notation. Technologies are hierarchical (e.g., hydropower.pumped, hvac.heat_pump). Use the most specific technology applicable to the technical resource.
format: text
type: string
enum:
- hydropower
- hydropower.pumped
- hydropower.run_of_river
- heat_power_plant
- heat_power_plant.chp
- solar
- wind
- backup_generator
- hvac
- hvac.heat
- hvac.heat_pump
- lighting
- water_heater
- boiler
- ev_charging_device
- ev_charging_device.v2g
- battery
- other.consumption
- other.production
- other.energy_storage
device_type:
description: Type of device for technical resources.
format: text
type: string
enum:
- inverter
- boiler
- water_heater
- socket
- hvac
- ev_charging_device
- energy_management_system
- other
service_providing_group_grid_prequalification_comment_history_response:
summary: Grid prequalification for service providing group Comment - history
description: Grid prequalification for service providing group Comment - history
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 9
service_providing_group_grid_prequalification_id:
description: Reference to the service providing group grid prequalification.
format: bigint
type: integer
example: 7
created_by:
description: Reference to the identity that created the comment.
format: bigint
type: integer
readOnly: true
example: 94
created_at:
description: When the comment was added to the SPGGP.
format: date-time
type: string
readOnly: true
example: '2022-08-08 12:00:00+02:00'
visibility:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_visibility'
default: same_party
content:
description: Free text content of the comment.
format: text
type: string
maxLength: 2048
example: Missing document.
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_grid_prequalification_comment_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
service_providing_group_grid_prequalification_history:
description: Embedded service_providing_group_grid_prequalification_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_history_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_grid_prequalification_id
- created_by
- created_at
- visibility
- content
- recorded_at
- recorded_by
- service_providing_group_grid_prequalification_comment_id
party_membership_response:
summary: Response - Party Membership
description: Response schema - The relation between a party and entity.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 44
party_id:
description: Reference to the party that the membership links to an entity.
format: bigint
type: integer
example: 379
entity_id:
description: Reference to the entity that the party represents.
format: bigint
type: integer
example: 30
scopes:
description: List of scopes granted to the entity when it acts as the party. Scopes are inspired from OAuth 2.0 and allow refinement of access control and privilege delegation mechanisms.
type: array
items:
$ref: '#/components/schemas/auth_scope'
nullable: false
example:
- read:data
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
party:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
entity:
description: Embedded entity
oneOf:
- $ref: '#/components/schemas/entity_response'
- type: 'null'
nullable: true
required:
- id
- party_id
- entity_id
- scopes
- recorded_at
- recorded_by
service_providing_group_product_application_comment_visibility:
description: The level of visibility of the comment.
format: text
type: string
default: same_party
enum:
- same_party
- any_involved_party
example: same_party
identity_response:
summary: Response - Identity
description: Response schema - Resource uniquely identifying a user by linking its entity and the potentially assumed party.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 44
entity_id:
description: Reference to the entity using the identity.
format: bigint
type: integer
readOnly: true
example: 3
entity_name:
description: Name of the entity using the identity.
format: text
type: string
readOnly: true
example: Martin Andersen
party_id:
description: Reference to the party assumed by the entity.
format: bigint
type: integer
readOnly: true
nullable: true
example: 17
party_name:
description: Name of the party assumed by the entity.
format: text
type: string
readOnly: true
nullable: true
example: Andersen SO
entity:
description: Embedded entity
oneOf:
- $ref: '#/components/schemas/entity_response'
- type: 'null'
nullable: true
party:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
required:
- id
- entity_id
- entity_name
controllable_unit_suspension_comment_visibility:
description: The level of visibility of the comment.
format: text
type: string
default: same_party
enum:
- same_party
- any_involved_party
example: same_party
metering_grid_area_status:
description: The status of the metering grid area.
format: text
type: string
readOnly: true
example: active
enum:
- active
- inactive
error_message:
description: Error message returned from the API.
type: object
properties:
code:
type: string
pattern: ^[A-Z0-9]+$
description: The error code.
example: PT418
details:
type:
- string
- 'null'
description: Detailed information about the error.
hint:
type:
- string
- 'null'
description: A hint to help resolve the error.
message:
type: string
description: The error message.
example: error
required:
- code
- message
service_providing_group_grid_suspension_history_response:
summary: Service Providing Group Grid Suspension - history
description: Service Providing Group Grid Suspension - history
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 49
impacted_system_operator_id:
description: Reference to the impacted system operator suspending the service providing group.
format: bigint
type: integer
example: 7
service_providing_group_id:
description: Reference to the service providing group being suspended.
format: bigint
type: integer
example: 13
reason:
$ref: '#/components/schemas/service_providing_group_grid_suspension_reason'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_grid_suspension_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
impacted_system_operator_history:
description: Embedded party_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/party_history_response'
- type: 'null'
nullable: true
service_providing_group_history:
description: Embedded service_providing_group_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_history_response'
- type: 'null'
nullable: true
comment_history:
description: Embedded service_providing_group_grid_suspension_comment_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_grid_suspension_comment_history_response'
- type: 'null'
nullable: true
required:
- id
- impacted_system_operator_id
- service_providing_group_id
- reason
- recorded_at
- recorded_by
- service_providing_group_grid_suspension_id
accounting_point_end_user_response:
summary: Response - Accounting Point End User
description: Response schema - Relation telling which end user an accounting point belongs to.
type: object
properties:
accounting_point_id:
description: The ID of the accounting point.
format: bigint
type: integer
readOnly: true
example: 245
end_user_id:
description: The end user on the accounting point.
format: bigint
type: integer
example: 12
readOnly: true
valid_from:
description: The date from which the accounting point belongs to the end user. Midnight aligned on Norwegian timezone.
format: date-time
type: string
readOnly: true
example: '2022-08-08T00:00:00+02'
valid_to:
description: The date until which the accounting point belongs to the end user. Midnight aligned on Norwegian timezone.
format: date-time
type: string
readOnly: true
nullable: true
accounting_point:
description: Embedded accounting_point
oneOf:
- $ref: '#/components/schemas/accounting_point_response'
- type: 'null'
nullable: true
end_user:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
required:
- accounting_point_id
- end_user_id
- valid_from
accounting_point_balance_responsible_party_response:
summary: Response - Accounting Point Balance Responsible Party
description: Response schema - Relation linking a balance responsible party to an accounting point.
type: object
properties:
accounting_point_id:
description: The ID of the accounting point.
format: bigint
type: integer
readOnly: true
example: 245
balance_responsible_party_id:
description: The balance responsible party of the accounting point.
format: bigint
type: integer
example: 37
readOnly: true
energy_direction:
$ref: '#/components/schemas/accounting_point_balance_responsible_party_energy_direction'
readOnly: true
valid_from:
description: The date from which the relation between the accounting point and the balance responsible party is valid. Midnight aligned on Norwegian timezone.
format: date-time
type: string
readOnly: true
example: '2022-08-08T00:00:00+02'
valid_to:
description: The date until which the relation between the accounting point and the balance responsible party is valid. Midnight aligned on Norwegian timezone.
format: date-time
type: string
readOnly: true
nullable: true
accounting_point:
description: Embedded accounting_point
oneOf:
- $ref: '#/components/schemas/accounting_point_response'
- type: 'null'
nullable: true
balance_responsible_party:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
required:
- accounting_point_id
- balance_responsible_party_id
- energy_direction
- valid_from
accounting_point_bidding_zone_response:
summary: Response - Accounting Point Bidding Zone
description: Response schema - Relation telling which bidding zone an accounting point belongs to.
type: object
properties:
accounting_point_id:
description: The ID of the accounting point.
format: bigint
type: integer
readOnly: true
example: 245
bidding_zone:
$ref: '#/components/schemas/accounting_point_bidding_zone_bidding_zone'
valid_from:
description: The date from which the accounting point belongs to the bidding zone. Midnight aligned on Norwegian timezone.
format: date-time
type: string
readOnly: true
example: '2022-08-08T00:00:00+02'
valid_to:
description: The date until which the accounting point belongs to the bidding zone. Midnight aligned on Norwegian timezone.
format: date-time
type: string
readOnly: true
nullable: true
accounting_point:
description: Embedded accounting_point
oneOf:
- $ref: '#/components/schemas/accounting_point_response'
- type: 'null'
nullable: true
required:
- accounting_point_id
- bidding_zone
- valid_from
controllable_unit_suspension_comment_history_response:
summary: Controllable Unit Suspension Comment - history
description: Controllable Unit Suspension Comment - history
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 9
controllable_unit_suspension_id:
description: Reference to the controllable unit suspension.
format: bigint
type: integer
example: 7
created_by:
description: Reference to the identity that created the comment.
format: bigint
type: integer
readOnly: true
example: 94
created_at:
description: When the comment was added to the CUS.
format: date-time
type: string
readOnly: true
example: '2022-08-08 12:00:00+02:00'
visibility:
$ref: '#/components/schemas/controllable_unit_suspension_comment_visibility'
default: same_party
content:
description: Free text content of the comment.
format: text
type: string
maxLength: 2048
example: Missing document.
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
controllable_unit_suspension_comment_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
controllable_unit_suspension_history:
description: Embedded controllable_unit_suspension_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/controllable_unit_suspension_history_response'
- type: 'null'
nullable: true
required:
- id
- controllable_unit_suspension_id
- created_by
- created_at
- visibility
- content
- recorded_at
- recorded_by
- controllable_unit_suspension_comment_id
accounting_point_bidding_zone_bidding_zone:
description: The bidding zone of the accounting point.
format: text
type: string
enum:
- NO1
- NO2
- NO3
- NO4
- NO5
example: NO3
party_response:
summary: Response - Party
description: 'Response schema - The body that interacts with the Flexibility Information System
A party is the thing that is authorized to access or modify data in the Flexiblity Information System.
Example party types:
* Service Provider
* System Operator
* End User'
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 11
business_id:
description: The business identifier of the party. Format depends on `business_id_type`.
format: text
type: string
example: '1337099000000'
business_id_type:
$ref: '#/components/schemas/party_business_id_type'
default: uuid
entity_id:
description: Reference to the entity that is the parent of the party.
format: bigint
type: integer
example: 30
name:
description: Name of the party. Maximum 128 characters.
format: text
type: string
example: Flex Energy Supplier
role:
$ref: '#/components/schemas/party_role'
type:
$ref: '#/components/schemas/party_type'
status:
$ref: '#/components/schemas/party_status'
default: new
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
entity:
description: Embedded entity
oneOf:
- $ref: '#/components/schemas/entity_response'
- type: 'null'
nullable: true
required:
- id
- business_id
- business_id_type
- entity_id
- name
- role
- type
- status
- recorded_at
- recorded_by
metering_grid_area_response:
summary: Response - Metering Grid Area
description: Response schema - Metering grid area to which accounting points belong.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 3
business_id:
description: The business identifier of the metering grid area. Format depends on `business_id_type`.
format: text
type: string
readOnly: true
example: 24YAOER9FNW34FNN
business_id_type:
$ref: '#/components/schemas/metering_grid_area_business_id_type'
readOnly: true
name:
description: The name of the metering grid area.
format: text
type: string
maxLength: 128
readOnly: true
example: VN04VESTNORGEDX12
status:
$ref: '#/components/schemas/metering_grid_area_status'
readOnly: true
accounting_point_metering_grid_area:
description: Embedded accounting_point_metering_grid_area
oneOf:
- type: array
items:
$ref: '#/components/schemas/accounting_point_metering_grid_area_response'
- type: 'null'
nullable: true
required:
- id
- business_id
- business_id_type
- name
- status
controllable_unit_status:
description: The status of the controllable unit.
format: text
type: string
default: new
enum:
- new
- active
- inactive
- terminated
example: active
entity_type:
description: The type of the entity, e.g Person, Organisation
format: text
type: string
example: person
enum:
- person
- organisation
service_providing_group_grid_prequalification_comment_update_request:
summary: Update - Grid prequalification for service providing group Comment
description: Request schema for update operations - Comment made by a party involved in a service providing group grid prequalification.
type: object
properties:
visibility:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_comment_visibility'
default: same_party
content:
description: Free text content of the comment.
format: text
type: string
maxLength: 2048
example: Missing document.
service_providing_group_history_response:
summary: Service providing group - history
description: Service providing group - history
properties:
id:
description: Unique surrogate key.
format: bigint
type: integer
readOnly: true
example: 4
name:
description: Free text name of the service providing group.
format: text
type: string
maxLength: 128
example: 'Batteries #09'
service_provider_id:
description: Reference to the `party` (service provider) managing the group.
format: bigint
type: integer
example: 17
bidding_zone:
$ref: '#/components/schemas/service_providing_group_bidding_zone'
status:
$ref: '#/components/schemas/service_providing_group_status'
default: new
additional_information:
description: Free text field for extra information about the service providing group if needed.
format: text
type: string
nullable: true
created_at:
description: When the service providing group was first created.
format: date-time
type: string
readOnly: true
example: '2022-01-08T12:00:00+02'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
service_provider_history:
description: Embedded party_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/party_history_response'
- type: 'null'
nullable: true
membership_history:
description: Embedded service_providing_group_membership_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_membership_history_response'
- type: 'null'
nullable: true
grid_prequalification_history:
description: Embedded service_providing_group_grid_prequalification_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_history_response'
- type: 'null'
nullable: true
grid_suspension_history:
description: Embedded service_providing_group_grid_suspension_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_grid_suspension_history_response'
- type: 'null'
nullable: true
product_application_history:
description: Embedded service_providing_group_product_application_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_application_history_response'
- type: 'null'
nullable: true
product_suspension_history:
description: Embedded service_providing_group_product_suspension_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_suspension_history_response'
- type: 'null'
nullable: true
required:
- id
- name
- service_provider_id
- bidding_zone
- status
- created_at
- recorded_at
- recorded_by
- service_providing_group_id
service_providing_group_response:
summary: Response - Service providing group
description: Response schema - Group of controllable units
type: object
properties:
id:
description: Unique surrogate key.
format: bigint
type: integer
readOnly: true
example: 4
name:
description: Free text name of the service providing group.
format: text
type: string
maxLength: 128
example: 'Batteries #09'
service_provider_id:
description: Reference to the `party` (service provider) managing the group.
format: bigint
type: integer
example: 17
bidding_zone:
$ref: '#/components/schemas/service_providing_group_bidding_zone'
status:
$ref: '#/components/schemas/service_providing_group_status'
default: new
additional_information:
description: Free text field for extra information about the service providing group if needed.
format: text
type: string
nullable: true
created_at:
description: When the service providing group was first created.
format: date-time
type: string
readOnly: true
example: '2022-01-08T12:00:00+02'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
power_per_substation:
description: Embedded service_providing_group_power_per_substation
oneOf:
- $ref: '#/components/schemas/service_providing_group_power_per_substation_response'
- type: 'null'
nullable: true
summary:
description: Embedded service_providing_group_summary
oneOf:
- $ref: '#/components/schemas/service_providing_group_summary_response'
- type: 'null'
nullable: true
service_provider:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
membership:
description: Embedded service_providing_group_membership
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_membership_response'
- type: 'null'
nullable: true
grid_prequalification:
description: Embedded service_providing_group_grid_prequalification
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_grid_prequalification_response'
- type: 'null'
nullable: true
grid_suspension:
description: Embedded service_providing_group_grid_suspension
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_grid_suspension_response'
- type: 'null'
nullable: true
product_application:
description: Embedded service_providing_group_product_application
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_application_response'
- type: 'null'
nullable: true
product_suspension:
description: Embedded service_providing_group_product_suspension
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_suspension_response'
- type: 'null'
nullable: true
required:
- id
- name
- service_provider_id
- bidding_zone
- status
- created_at
- recorded_at
- recorded_by
party_business_id_type:
description: The type of the business identifier.
format: text
type: string
default: uuid
enum:
- gln
- uuid
- eic_x
- org
example: gln
service_providing_group_summary_response:
summary: Response - Service Providing Group Summary
description: Response schema - Aggregated summary of controllable units and technical resources belonging to a service providing group.
type: object
properties:
id:
description: Unique surrogate key (service providing group ID).
format: bigint
type: integer
readOnly: true
example: 4
service_providing_group_id:
description: The ID of the service providing group this resource is a summary of.
format: bigint
type: integer
readOnly: true
example: 4
controllable_unit:
description: Aggregated statistics on controllable units currently in the service providing group, including count and maximum active power information (sum, average, min, max).
type: object
readOnly: true
properties:
count:
type: integer
maximum_active_power:
$ref: '#/components/schemas/numeric_aggregation'
maximum_active_power_up:
description: Maximum active power aggregated over controllable units with regulation_direction equal to up or both.
$ref: '#/components/schemas/numeric_aggregation'
maximum_active_power_down:
description: Maximum active power aggregated over controllable units with regulation_direction equal to down or both.
$ref: '#/components/schemas/numeric_aggregation'
example:
count: 3
maximum_active_power:
sum: 200
average: 66.67
min: 40
max: 100
maximum_active_power_up:
sum: 150
average: 75
min: 50
max: 100
maximum_active_power_down:
sum: 100
average: 50
min: 40
max: 60
technical_resource:
description: Aggregated statistics on technical resources belonging to controllable units with active membership in the service providing group, including counts and maximum active power breakdowns (sum, average, min, max) by category and technology.
type: object
readOnly: true
properties:
count:
type: integer
maximum_active_power:
$ref: '#/components/schemas/numeric_aggregation'
by_category:
type: object
propertyNames:
$ref: '#/components/schemas/category'
additionalProperties:
type: object
properties:
count:
type: integer
maximum_active_power:
$ref: '#/components/schemas/numeric_aggregation'
by_technology:
type: object
propertyNames:
$ref: '#/components/schemas/technology'
additionalProperties:
type: object
properties:
count:
type: integer
maximum_active_power:
$ref: '#/components/schemas/numeric_aggregation'
example:
count: 8
maximum_active_power:
sum: 250
average: 31.25
min: 10
max: 80
by_category:
production:
count: 5
maximum_active_power:
sum: 180
average: 36
min: 10
max: 80
consumption:
count: 3
maximum_active_power:
sum: 70
average: 23.33
min: 15
max: 30
by_technology:
solar:
count: 3
maximum_active_power:
sum: 130
average: 43.33
min: 20
max: 80
battery:
count: 2
maximum_active_power:
sum: 50
average: 25
min: 20
max: 30
service_providing_group:
description: Embedded service_providing_group
oneOf:
- $ref: '#/components/schemas/service_providing_group_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_id
- controllable_unit
- technical_resource
accounting_point_grid_location_source:
description: 'How the grid location was determined. When a system operator creates or updates a grid location, this field is set automatically: `cso` if the SO is the connecting system operator, `so` otherwise.'
format: text
type: string
readOnly: true
enum:
- cso
- so
- grid_model
- system
example: cso
controllable_unit_suspension_reason:
description: The reason for the suspension.
format: text
type: string
enum:
- compromises_safe_operation
- other
example: compromises_safe_operation
service_providing_group_product_application_history_response:
summary: Service Providing Group Product Application - history
description: Service Providing Group Product Application - history
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 89
service_providing_group_id:
description: Reference to the service providing group.
format: bigint
type: integer
example: 18
procuring_system_operator_id:
description: Reference to the procuring system operator.
format: bigint
type: integer
example: 39
product_type_ids:
description: References to the product types.
type: array
items:
format: bigint
type: integer
example:
- 2
- 4
- 5
status:
$ref: '#/components/schemas/service_providing_group_product_application_status'
default: requested
maximum_active_power_up:
description: The maximum active power applied for in regulation direction up. Stored in kilowatts.
format: decimal
type: number
minimum: 0
maximum: 999999.999
multipleOf: 0.001
example: 150.5
maximum_active_power_down:
description: The maximum active power applied for in regulation direction down. Stored in kilowatts.
format: decimal
type: number
minimum: 0
maximum: 999999.999
multipleOf: 0.001
example: 150.5
additional_information:
description: Free text field for extra information about the application if needed (bidding periods, unavailabilities, etc).
format: text
type: string
maxLength: 512
nullable: true
prequalified_at:
description: When the product application was last prequalified.
format: date-time
type: string
nullable: true
example: '2022-08-08T12:00:00+02'
verified_at:
description: When the product application was last verified.
format: date-time
type: string
nullable: true
example: '2021-08-08T10:00:00+02'
ramping_capability:
oneOf:
- $ref: '#/components/schemas/service_providing_group_product_application_ramping_capability'
- type: 'null'
nullable: true
ramping_description:
description: Free text description of ramping details. Only required for product Manual Frequency Restoration (mFRR).
format: text
type: string
nullable: true
example: Units are (dis)connected one by one to achieve a stepwise profile. We ensure linearity on a minute resolution.
created_at:
description: When the application was first created.
format: date-time
type: string
readOnly: true
example: '2022-01-08T12:00:00+02'
complete_at:
description: When the application was last marked complete by the procuring system operator.
format: date-time
type: string
nullable: true
example: '2022-08-08T12:00:00+02'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_product_application_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
service_providing_group_history:
description: Embedded service_providing_group_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_history_response'
- type: 'null'
nullable: true
procuring_system_operator_history:
description: Embedded party_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/party_history_response'
- type: 'null'
nullable: true
attachment_history:
description: Embedded service_providing_group_product_application_attachment_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_application_attachment_history_response'
- type: 'null'
nullable: true
comment_history:
description: Embedded service_providing_group_product_application_comment_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_application_comment_history_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_id
- procuring_system_operator_id
- product_type_ids
- status
- maximum_active_power_up
- maximum_active_power_down
- created_at
- recorded_at
- recorded_by
- service_providing_group_product_application_id
service_providing_group_product_application_status:
description: The status of the application.
format: text
type: string
default: requested
enum:
- requested
- prequalification
- temporary_qualified
- prequalified
- verified
- rejected
example: prequalification
service_providing_group_product_suspension_comment_visibility:
description: The level of visibility of the comment.
format: text
type: string
default: same_party
enum:
- same_party
- any_involved_party
example: same_party
service_providing_group_grid_suspension_reason:
description: The reason for the suspension.
format: text
type: string
enum:
- breach_of_conditions
- significant_group_change
- other
example: significant_group_change
controllable_unit_suspension_comment_response:
summary: Response - Controllable Unit Suspension Comment
description: Response schema - Comment made by a party involved in a controllable unit suspension.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 9
controllable_unit_suspension_id:
description: Reference to the controllable unit suspension.
format: bigint
type: integer
example: 7
created_by:
description: Reference to the identity that created the comment.
format: bigint
type: integer
readOnly: true
example: 94
created_at:
description: When the comment was added to the CUS.
format: date-time
type: string
readOnly: true
example: '2022-08-08 12:00:00+02:00'
visibility:
$ref: '#/components/schemas/controllable_unit_suspension_comment_visibility'
default: same_party
content:
description: Free text content of the comment.
format: text
type: string
maxLength: 2048
example: Missing document.
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
controllable_unit_suspension:
description: Embedded controllable_unit_suspension
oneOf:
- $ref: '#/components/schemas/controllable_unit_suspension_response'
- type: 'null'
nullable: true
required:
- id
- controllable_unit_suspension_id
- created_by
- created_at
- visibility
- content
- recorded_at
- recorded_by
service_providing_group_bidding_zone:
description: The bidding zone that restricts which CUs that can be added to the group. Also known as scheduling area or price area for TSO.
format: text
type: string
enum:
- NO1
- NO2
- NO3
- NO4
- NO5
example: NO3
service_providing_group_product_application_attachment_content_type:
description: MIME type of the attachment.
format: text
type: string
example: application/pdf
enum:
- application/pdf
- image/jpeg
- image/png
service_providing_group_product_suspension_response:
summary: Response - Service Providing Group Product Suspension
description: Response schema - The relation allowing a procuring system operator to temporarily suspend a service providing group from delivering products of certain types.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 12
procuring_system_operator_id:
description: Reference to the procuring system operator suspending the service providing group.
format: bigint
type: integer
example: 91
service_providing_group_id:
description: Reference to the service providing group being suspended.
format: bigint
type: integer
example: 7
product_type_ids:
description: References to the suspended product types.
type: array
items:
format: bigint
type: integer
example:
- 3
- 6
reason:
$ref: '#/components/schemas/service_providing_group_product_suspension_reason'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
procuring_system_operator:
description: Embedded party
oneOf:
- $ref: '#/components/schemas/party_response'
- type: 'null'
nullable: true
service_providing_group:
description: Embedded service_providing_group
oneOf:
- $ref: '#/components/schemas/service_providing_group_response'
- type: 'null'
nullable: true
comment:
description: Embedded service_providing_group_product_suspension_comment
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_product_suspension_comment_response'
- type: 'null'
nullable: true
required:
- id
- procuring_system_operator_id
- service_providing_group_id
- product_type_ids
- reason
- recorded_at
- recorded_by
controllable_unit_regulation_direction:
description: The regulation direction of the controllable unit. `up` means it can be used to increase production or decrease consumption, while `down` means to decrease production or increase consumption.
format: text
type: string
enum:
- up
- down
- both
example: up
numeric_aggregation:
type: object
properties:
sum:
type: number
average:
type: number
min:
type: number
max:
type: number
additionalProperties: false
party_history_response:
summary: Party - history
description: Party - history
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 11
business_id:
description: The business identifier of the party. Format depends on `business_id_type`.
format: text
type: string
example: '1337099000000'
business_id_type:
$ref: '#/components/schemas/party_business_id_type'
default: uuid
entity_id:
description: Reference to the entity that is the parent of the party.
format: bigint
type: integer
example: 30
name:
description: Name of the party. Maximum 128 characters.
format: text
type: string
example: Flex Energy Supplier
role:
$ref: '#/components/schemas/party_role'
type:
$ref: '#/components/schemas/party_type'
status:
$ref: '#/components/schemas/party_status'
default: new
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
party_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
required:
- id
- business_id
- business_id_type
- entity_id
- name
- role
- type
- status
- recorded_at
- recorded_by
- party_id
empty_object:
description: An empty object
type: object
properties: {}
additionalProperties: false
technical_resource_business_id_type:
description: The type of business identifier used for the device.
format: text
type: string
nullable: true
enum:
- serial_number
- mac
- other
example: serial_number
party_type:
description: The type of the party, e.g SystemOperator, ServiceProvider
format: text
type: string
example: energy_supplier
enum:
- balance_responsible_party
- end_user
- energy_supplier
- flexibility_information_system_operator
- market_operator
- organisation
- service_provider
- system_operator
- third_party
service_providing_group_grid_suspension_comment_history_response:
summary: Service Providing Group Grid Suspension Comment - history
description: Service Providing Group Grid Suspension Comment - history
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 9
service_providing_group_grid_suspension_id:
description: Reference to the service providing group grid suspension.
format: bigint
type: integer
example: 7
created_by:
description: Reference to the identity that created the comment.
format: bigint
type: integer
readOnly: true
example: 94
created_at:
description: When the comment was added to the SPGGS.
format: date-time
type: string
readOnly: true
example: '2022-08-08 12:00:00+02:00'
visibility:
$ref: '#/components/schemas/service_providing_group_grid_suspension_comment_visibility'
default: same_party
content:
description: Free text content of the comment.
format: text
type: string
maxLength: 2048
example: Missing document.
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_grid_suspension_comment_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
service_providing_group_grid_suspension_history:
description: Embedded service_providing_group_grid_suspension_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/service_providing_group_grid_suspension_history_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_grid_suspension_id
- created_by
- created_at
- visibility
- content
- recorded_at
- recorded_by
- service_providing_group_grid_suspension_comment_id
accounting_point_metering_grid_area_response:
summary: Response - Accounting Point Metering Grid Area
description: Response schema - Relation telling which metering grid area an accounting point belongs to.
type: object
properties:
accounting_point_id:
description: The ID of the accounting point.
format: bigint
type: integer
readOnly: true
example: 45
metering_grid_area_id:
description: The metering grid area of the accounting point.
format: bigint
type: integer
example: 3
readOnly: true
valid_from:
description: The date from which the accounting point belongs to the metering grid area. Midnight aligned on Norwegian timezone.
format: date-time
type: string
readOnly: true
example: '2023-09-09T00:00:00+02'
valid_to:
description: The date until which the accounting point belongs to the metering grid area. Midnight aligned on Norwegian timezone.
format: date-time
type: string
readOnly: true
nullable: true
accounting_point:
description: Embedded accounting_point
oneOf:
- $ref: '#/components/schemas/accounting_point_response'
- type: 'null'
nullable: true
metering_grid_area:
description: Embedded metering_grid_area
oneOf:
- $ref: '#/components/schemas/metering_grid_area_response'
- type: 'null'
nullable: true
required:
- accounting_point_id
- metering_grid_area_id
- valid_from
party_role:
description: The role of the party. Currently maps to 1:1 to `type`. E.g. system_operator, service_provider.
format: text
type: string
example: flex_energy_supplier
enum:
- flex_balance_responsible_party
- flex_end_user
- flex_energy_supplier
- flex_flexibility_information_system_operator
- flex_market_operator
- flex_organisation
- flex_service_provider
- flex_system_operator
- flex_third_party
controllable_unit_service_provider_history_response:
summary: Relation between controllable unit and service provider - history
description: Relation between controllable unit and service provider - history
properties:
id:
description: Unique surrogate key.
format: bigint
type: integer
readOnly: true
example: 7
controllable_unit_id:
description: Reference to the controllable unit this relation links to a service provider.
format: bigint
type: integer
example: 2
service_provider_id:
description: Reference to the `party` (service provider) this relation links to a controllable unit.
format: bigint
type: integer
example: 78
end_user_id:
description: Technical ID of the end user behind the accounting point.
format: bigint
type: integer
contract_reference:
description: The service providers internal reference to the contract with the end user. Typically an internal identifier to a stored document or consent record.
format: text
type: string
maxLength: 128
nullable: false
example: 123e4567-e89b-12d3-a456-426614174000
valid_from:
description: The date from which the relation between the controllable unit and the service provider is valid. Midnight aligned on Norwegian timezone.
format: date-time
type: string
nullable: true
example: '2022-08-08T00:00:00+02'
valid_to:
description: The date until which the relation between the controllable unit and the service provider is valid. Midnight aligned on Norwegian timezone.
format: date-time
type: string
nullable: true
example: '2022-09-10T00:00:00+02'
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
controllable_unit_service_provider_id:
description: Reference to the resource that was updated.
format: bigint
type: integer
example: 48
replaced_by:
description: The identity that updated the resource when it was replaced.
format: bigint
type: integer
nullable: true
example: 90
replaced_at:
description: When the resource was replaced in the system.
format: date-time
type: string
nullable: true
example: '2024-07-07T10:00:00+00:00'
controllable_unit_history:
description: Embedded controllable_unit_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/controllable_unit_history_response'
- type: 'null'
nullable: true
service_provider_history:
description: Embedded party_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/party_history_response'
- type: 'null'
nullable: true
end_user_history:
description: Embedded party_history
oneOf:
- type: array
items:
$ref: '#/components/schemas/party_history_response'
- type: 'null'
nullable: true
required:
- id
- controllable_unit_id
- service_provider_id
- end_user_id
- contract_reference
- recorded_at
- recorded_by
- controllable_unit_service_provider_id
service_providing_group_product_application_comment_response:
summary: Response - Service Providing Group Product Application Comment
description: Response schema - Comment made by a party involved in a service providing group product application.
type: object
properties:
id:
description: Unique surrogate identifier.
format: bigint
type: integer
readOnly: true
example: 9
service_providing_group_product_application_id:
description: Reference to the service providing group product application.
format: bigint
type: integer
example: 7
created_by:
description: Reference to the identity that created the comment.
format: bigint
type: integer
readOnly: true
example: 94
created_at:
description: When the comment was added to the SPGPA.
format: date-time
type: string
readOnly: true
example: '2022-08-08 12:00:00+02:00'
visibility:
$ref: '#/components/schemas/service_providing_group_product_application_comment_visibility'
default: same_party
content:
description: Free text content of the comment.
format: text
type: string
maxLength: 2048
example: Missing document.
recorded_at:
description: When the resource was recorded (created or updated) in the system.
format: date-time
type: string
readOnly: true
example: '2023-12-31T23:59:00+00:00'
recorded_by:
description: The identity that recorded the resource.
format: bigint
type: integer
readOnly: true
example: 145
service_providing_group_product_application:
description: Embedded service_providing_group_product_application
oneOf:
- $ref: '#/components/schemas/service_providing_group_product_application_response'
- type: 'null'
nullable: true
required:
- id
- service_providing_group_product_application_id
- created_by
- created_at
- visibility
- content
- recorded_at
- recorded_by
service_providing_group_product_suspension_reason:
description: The reason for the suspension.
format: text
type: string
enum:
- failed_verification
- other
example: failed_verification
service_providing_group_grid_prequalification_comment:
properties:
id:
description: 'Note:
This is a Primary Key.'
format: bigint
type: integer
content:
format: text
type: string
created_at:
format: timestamp with time zone
type: string
created_by:
format: bigint
type: integer
service_providing_group_grid_prequalification_id:
description: 'Note:
This is a Foreign Key to `service_providing_group_grid_prequalification.id`.'
format: bigint
type: integer
visibility:
format: text
type: string
recorded_by:
format: bigint
type: integer
recorded_at:
format: timestamp with time zone
type: string
type: object
parameters:
ApiVersion:
name: Api-Version
in: header
required: true
description: 'The API version to use. Must be a supported version date. See the [changelog](https://elhub.github.io/flex-information-system/changelog/) for available versions.
'
schema:
type: string
enum:
- '2026-06-08'
example: '2026-06-08'
securitySchemes:
bearerAuth:
description: Bearer token using a JWT
type: http
scheme: Bearer
bearerFormat: JWT
JWT:
description: Add the token prepending "Bearer " (without quotes) to it
in: header
name: Authorization
type: apiKey
x-refined-from:
- elhub-flex-information-system-main-api-openapi.json
- elhub-postgrest-openapi-3-0-openapi.json