{
  "openapi": "3.0.3",
  "info": {
    "title": "market-activities-management",
    "description": "### ServiceId: BSCMF0122\n\n# API Version - 1.0.0\n#### Generated by ECDM Toolkit version 2.12.3\nService ID: BSCMF0122\n\nThis interface is used to manage market activity information in the marketactivities register (marktactiviteitenregister).\n# Release History\n\n## 1.0.0 (2025-05-21)\nFinal version for release.\n\n## 0.2.2 (2025-05-15)\n- Processed review from the API working group (textual adjustments).\n\n## 0.2.1 (2025-03-05)\nAfter consult with BASMFF 'Berichtenteam', the enumerated type values for Category and Service have been renamed to start with 'C' and 'S' respectively.\n\n## 0.2.0 (2025-02-24)\n- Added ServiceCategory.serviceCategoryKind;\n- Renamed non-standard ServiceCategory.providedService to serviceKind;\n- Replaced the non-standard ProvidedServiceTypeCode enumeration to new version (ServiceKindCode according to ebIX abstract naming);\n- Added ServiceCategoryKindCode enumeration for the new categories;\n- RelatedInfo activity record identifier made optional.\n\n## 0.1.0 (2025-01-15)\n- Updated to support retrieval of marketactivities info by LV and BRP (TS048b).\n- Replaced deprecated error response model by latest version, RFC-9457 compliant.\n- Service ID updated to BSCMF0122.\n\n## 0.0.1 (2024-09-20)\n- initial version\n",
    "contact": {
      "name": "EDSN",
      "url": "https://edsn.nl",
      "email": "servicedesk@edsn.nl"
    },
    "license": {
      "name": "APACHE2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "/market-activity/market-activities-management/v1",
      "description": "Default host only has API context, name and version,"
    }
  ],
  "tags": [
    {
      "name": "MarketActivityRecords"
    },
    {
      "name": "RelatedInfoMarketActivityRecords",
      "description": "Related market activity information"
    }
  ],
  "paths": {
    "/market-activity-records/search": {
      "post": {
        "tags": [
          "MarketActivityRecords"
        ],
        "summary": "SearchMarketActivities",
        "description": "This operation enables searching for market activity records based on various criteria. Users can filter the search results by parameters such as connection component, service category, subunit market participant, and validity period. The results contain detailed information about each market activity record, including process details, registration data, and validity periods.",
        "deprecated": false,
        "operationId": "searchMarketActivities",
        "parameters": [
          {
            "$ref": "#/components/parameters/X-Request-ID"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Search"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MarketActivityRecord"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "examples": {
                  "Error400_SFn8Z0G81c": {
                    "$ref": "#/components/examples/Error400_SFn8Z0G81c"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "examples": {
                  "Error401_PL9bRR7hNj": {
                    "$ref": "#/components/examples/Error401_PL9bRR7hNj"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "examples": {
                  "Error403_E8cVV7vTpd": {
                    "$ref": "#/components/examples/Error403_E8cVV7vTpd"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "examples": {
                  "Error422_IlLazHKtXi": {
                    "$ref": "#/components/examples/Error422_IlLazHKtXi"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "examples": {
                  "Error500_XISYCPQuI7": {
                    "$ref": "#/components/examples/Error500_XISYCPQuI7"
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "examples": {
                  "Error503_XYCGd7baT2": {
                    "$ref": "#/components/examples/Error503_XYCGd7baT2"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/market-activity-records/{mrid}/related-info": {
      "get": {
        "tags": [
          "RelatedInfoMarketActivityRecords"
        ],
        "summary": "GetRelatedInfoMarketActivityRecords",
        "description": "This operation retrieves related market activity information for a specified service kind, based on the provided parameters. The mrid determines the specific MarketActivityRecord for which related information is returned (based on the registered service kind for that MarketActivityRecord). The service kind of the mrid dictates the type of response object that is returned, making this operation generic in nature.\nFor example, the response may include information about related service kinds, their validity, and additional details.",
        "deprecated": false,
        "operationId": "getRelatedInfoMarketActivityRecords",
        "parameters": [
          {
            "$ref": "#/components/parameters/X-Request-ID"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelatedInfo"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "examples": {
                  "Error400_SFn8Z0G81c": {
                    "$ref": "#/components/examples/Error400_SFn8Z0G81c"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "examples": {
                  "Error401_PL9bRR7hNj": {
                    "$ref": "#/components/examples/Error401_PL9bRR7hNj"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "examples": {
                  "Error403_E8cVV7vTpd": {
                    "$ref": "#/components/examples/Error403_E8cVV7vTpd"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "examples": {
                  "Error404_S3zYo4x5Yh": {
                    "$ref": "#/components/examples/Error404_S3zYo4x5Yh"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "examples": {
                  "Error500_XISYCPQuI7": {
                    "$ref": "#/components/examples/Error500_XISYCPQuI7"
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-ID": {
                "$ref": "#/components/headers/X-Request-ID"
              }
            },
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "examples": {
                  "Error503_XYCGd7baT2": {
                    "$ref": "#/components/examples/Error503_XYCGd7baT2"
                  }
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "name": "mrid",
          "in": "path",
          "required": true,
          "deprecated": false,
          "allowReserved": false,
          "style": "simple",
          "explode": false,
          "schema": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"
          }
        }
      ]
    }
  },
  "components": {
    "parameters": {
      "X-Request-ID": {
        "name": "X-Request-ID",
        "in": "header",
        "description": "UUID for uniquely identifying the message. This UUID can be included in the request.\r\n",
        "required": false,
        "deprecated": false,
        "allowReserved": false,
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string",
          "pattern": "^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"
        },
        "example": "4ea44384-2380-41bc-8e53-8c82d84107ef"
      }
    },
    "headers": {
      "X-Request-ID": {
        "description": "UUID for uniquely identifying the message. This UUID can be included in the request.\r\n",
        "required": false,
        "deprecated": false,
        "allowReserved": false,
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string",
          "pattern": "^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"
        },
        "example": "4ea44384-2380-41bc-8e53-8c82d84107ef"
      }
    },
    "examples": {
      "Error400_SFn8Z0G81c": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.1",
          "title": "Bad Request",
          "status": 400
        }
      },
      "Error401_PL9bRR7hNj": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc7235#section-3.1",
          "title": "Unauthorized",
          "status": 401
        }
      },
      "Error403_E8cVV7vTpd": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.3",
          "title": "Forbidden",
          "status": 403
        }
      },
      "Error404_S3zYo4x5Yh": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.5.4",
          "title": "Not Found",
          "status": 404
        }
      },
      "Error422_IlLazHKtXi": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc4918#section-11.2",
          "title": "Unprocessable Entity",
          "status": 422,
          "detail": "{ A description of the business rules that prevented the request being processed. }",
          "errorCode": "{ An error code that is used to uniquely identify the error type within the application. }"
        }
      },
      "Error500_XISYCPQuI7": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.6.1",
          "title": "Internal Server Error",
          "status": 500
        }
      },
      "Error503_XYCGd7baT2": {
        "value": {
          "type": "https://datatracker.ietf.org/doc/html/rfc7231#section-6.6.4",
          "title": "Service Unavailable",
          "status": 503
        }
      }
    },
    "schemas": {
      "ApplicationMessage": {
        "title": "ApplicationMessage",
        "description": "Each ApplicationProblem object can be associated with an array of error messages, represented by ApplicationMessage objects.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "identifier": {
            "title": "IdentifierType",
            "description": "A unique, application-specific identification of the message.",
            "example": "VAL01",
            "type": "string"
          },
          "code": {
            "title": "CodeListCodeType",
            "description": "An application-specific message code.",
            "example": "PARAM_CONFLICT",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "content": {
                "title": "NormalizedString",
                "type": "string"
              },
              "_codeListName": {
                "title": "NormalizedString",
                "type": "string"
              },
              "_codeListVersion": {
                "title": "NormalizedString",
                "type": "string"
              }
            },
            "required": [
              "content"
            ]
          },
          "text": {
            "title": "TextType",
            "description": "Provides a detailed description of the error.",
            "example": "Parameters A and B can not occur at the same time.",
            "type": "string"
          }
        },
        "required": [
          "text"
        ]
      },
      "ApplicationProblem": {
        "title": "ApplicationProblem",
        "description": "The ApplicationProblem object provides an extension mechanism for the definition of more complex, structured error messages. It defines an array of error messages associated with a severity- and application-specific error code.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "categoryCode": {
            "title": "CodeListCodeType",
            "description": "An application-specific error category code.",
            "example": "PARAMETER_VALIDATION_ERROR",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "content": {
                "title": "NormalizedString",
                "type": "string"
              },
              "_codeListName": {
                "title": "NormalizedString",
                "type": "string"
              },
              "_codeListVersion": {
                "title": "NormalizedString",
                "type": "string"
              }
            },
            "required": [
              "content"
            ]
          },
          "severityCode": {
            "title": "ProblemSeverityCodeType",
            "description": "Identifies the severity of the error.",
            "example": "ERROR",
            "type": "string",
            "default": "ERROR",
            "enum": [
              "INFORMATION",
              "WARNING",
              "ERROR",
              "CRITICAL_ERROR"
            ]
          },
          "message": {
            "title": "ApplicationMessage",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationMessage"
            }
          }
        },
        "required": [
          "categoryCode",
          "severityCode"
        ]
      },
      "Filters": {
        "title": "Filters",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "abortedActivities": {
            "title": "TrueFalseType",
            "description": "By default, aborted activities (those planned to start but never became active) are excluded from the result set, displaying only active, relevant activities. Setting this to true includes these aborted activities in the results, even those with the same start and end date. This setting provides flexibility to include or exclude inactive or canceled activities as needed.\n\nOne of:\n- TRUE\n- FALSE",
            "type": "boolean",
            "default": false
          }
        },
        "required": [
          "abortedActivities"
        ]
      },
      "FilterServiceCategory": {
        "title": "FilterServiceCategory",
        "description": "Provided service information.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "serviceCategoryKind": {
            "title": "ServiceCategoryKindCode",
            "description": "Services are categorized in logical groups (e.g. Congestion Management, Metering, ...). The service category kind returns an encoding of the category associated with the returned service kind.\nValue must be one of:\nE01 - Congestion management;\nE02 - Energy supply;\nE03 - Metering;\nE04 - Balancing;",
            "example": "E01",
            "type": "string",
            "enum": [
              "C01",
              "C02",
              "C03",
              "C04",
              "C05"
            ]
          },
          "serviceKind": {
            "title": "ServiceKindCode",
            "description": "Type of service performed by a market participant, such as metering, energy delivery (supply and return), balancing responsibility, capacity restriction, redispatch, FCR, aFRR, emergency power provision, and MARI products.\nValue must be one of:\nE01 - Redispatch;\nE02 - Capacity limitation;\nE03 - Metering;\nE04 - Supply / Feed-in;\nE05 - Balancing responsibility;\nE06 - Frequency containment reserve;\nE07 - Automatic frequency restoration reserve;\nE08 - Manual activated reserves initiative;\nE09 - Emergency power;",
            "example": "E03",
            "type": "string",
            "enum": [
              "S01",
              "S02",
              "S03",
              "S04",
              "S05",
              "S06",
              "S07",
              "S08",
              "S09"
            ]
          }
        }
      },
      "LegacyProcessInformation": {
        "title": "LegacyProcessInformation",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "processCode": {
            "title": "_255charactersType",
            "description": "SOAP-process identifier.",
            "example": "EOSUPPLY",
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "transactionDossierId": {
            "title": "IdType",
            "description": "This field provides a ID for tracking process history. \nIt ensures traceability by providing a unique transaction dossier number in each event.",
            "example": "10000000",
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          }
        }
      },
      "MarketActivityRecord": {
        "title": "MarketActivityRecord",
        "description": "Definition\n\nThe provision of a service by a market participant at a connection or allocation point.\n\nBasis\n\n2.1 Information code electricity and gas",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "mrid": {
            "title": "UuidType",
            "description": "This mRID is issued by the market activity register.",
            "example": "f65fa4cf-1d55-4033-b54c-b0ad9863ced4",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"
          },
          "referencedUsagePoint": {
            "$ref": "#/components/schemas/ReferencedUsagePoint"
          },
          "subUnitMarketParticipant": {
            "$ref": "#/components/schemas/ReferencedSubUnitMarketParticipant"
          },
          "serviceCategory": {
            "$ref": "#/components/schemas/ServiceCategory"
          },
          "validity": {
            "$ref": "#/components/schemas/Validity"
          },
          "registration": {
            "$ref": "#/components/schemas/Registration"
          },
          "legacyProcessInformation": {
            "$ref": "#/components/schemas/LegacyProcessInformation"
          }
        },
        "required": [
          "mrid",
          "referencedUsagePoint",
          "subUnitMarketParticipant",
          "serviceCategory",
          "validity",
          "registration"
        ]
      },
      "ProblemDetails": {
        "title": "ProblemDetails",
        "description": "The ProblemDetails error response object represents an application error that is compliant with the RFC9457 Problem Details specification.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "title": "NormalizedString",
            "description": "The type member is a JSON string containing a URI reference that identifies the problem type. Consumers MUST use the type URI (after resolution, if necessary) as the problem type's primary identifier.\n\nWhen this member is not present, its value is assumed to be about:blank.\n\nIf the type URI is a locator (e.g., those with an http or https scheme), dereferencing it SHOULD provide human-readable documentation for the problem type (e.g., using HTML). However, consumers SHOULD NOT automatically dereference the type URI, unless they do so when providing information to developers (e.g., when a debugging tool is in use).",
            "example": "https://standards.edsn.nl/REST/error-catalogue/user-errors/parameter-validation",
            "type": "string"
          },
          "title": {
            "title": "NameType",
            "description": "The title member is a JSON string containing a short, human-readable summary of the problem type.\n\nIt SHOULD NOT change from occurrence to occurrence of the problem, except for localization (e.g., using proactive content negotiation).",
            "example": "One or more parameters did not validate correctly",
            "type": "string"
          },
          "status": {
            "title": "IntegerType",
            "description": "The status member is a JSON number indicating the HTTP status code generated by the origin server for this occurrence of the problem.\n\nThe status member conveys the HTTP status code used for the convenience of the consumer. Generators MUST use the same status code in the actual HTTP response, to assure that generic HTTP software that does not understand this format still behaves correctly.\n\nConsumers can use the status member to determine what the original status code used by the generator was when it has been changed (e.g., by an intermediary or cache) and when a message's content is persisted without HTTP information. Generic HTTP software will still use the HTTP status code.",
            "example": 400,
            "type": "integer"
          },
          "detail": {
            "title": "TextType",
            "description": "The detail member is a JSON string containing a human-readable explanation specific to this occurrence of the problem.\n\nThe detail string, if present, ought to focus on helping the client correct the problem, rather than giving debugging information.\n\nConsumers SHOULD NOT parse the detail member for information; extensions are more suitable and less error-prone ways to obtain such information.",
            "example": "Conflicting parameters are: A, B, C, D",
            "type": "string"
          },
          "instance": {
            "title": "TextType",
            "description": "The instance member is a JSON string containing a URI reference that identifies the specific occurrence of the problem.\nWhen the instance URI is dereferenceable, the problem details object can be fetched from it. It might also return information about the problem occurrence in other formats through use of proactive content negotiation.\nWhen the instance URI is not dereferenceable, it serves as a unique identifier for the problem occurrence that may be of significance to the server but is opaque to the client.",
            "example": "urn:uuid:4017fabc-1b28-11e8-accf-0ed5f89f718b",
            "type": "string"
          },
          "traceId": {
            "title": "IdentifierType",
            "description": "This field provides an OpenTelemetry compliant trace identifier that can be used to correlate related (error) messages. The field is constructed as follows:\n{version}-{trace_id}-{span_id}-{trace_flags}\nIn which:\nversion = version of this trace;\ntrace-id = identification of a single trace (i.e. associated series of messages);\nspan-id = identification of a series of correlated messages within a single trace;\ntrace-flags = additional information.",
            "example": "00-80e1afed08e019fc1110464cfa66635c-7a085853722dc6d2-01",
            "type": "string"
          },
          "applicationProblem": {
            "title": "ApplicationProblem",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationProblem"
            }
          }
        },
        "required": [
          "type",
          "title",
          "status"
        ]
      },
      "ReferencedSubUnitMarketParticipant": {
        "title": "ReferencedSubUnitMarketParticipant",
        "description": "Unique identification to a Organizational unit (SubUnitMarketParticipant).",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "mrid": {
            "title": "Ean13Type",
            "description": "Unique identification to a Organizational unit (SubUnitMarketParticipant) in the AdministerMarketparties domain.",
            "example": "9780201379624",
            "type": "string",
            "pattern": "^[0-9]{13}$"
          }
        },
        "required": [
          "mrid"
        ]
      },
      "ReferencedUsagePoint": {
        "title": "ReferencedUsagePoint",
        "description": "Reference to a UsagePoint (AccountingPoint OR MarketEvaluationPoint).",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "mrid": {
            "title": "Ean18Type",
            "description": "EAN18 code of the (primary or secondary) Allocation Point (AccountingPoint) OR the Connection (MarketEvaluationPoint) in the connections register.",
            "example": "001234560000000018",
            "type": "string",
            "pattern": "^[0-9]{18}$"
          },
          "typeCode": {
            "title": "UsagePointType",
            "description": "TypeCode for the EAN18 type.",
            "example": "MARKETEVALUATIONPOINT",
            "type": "string",
            "enum": [
              "MARKETEVALUATIONPOINT",
              "ACCOUNTINGPOINT"
            ]
          }
        },
        "required": [
          "mrid",
          "typeCode"
        ]
      },
      "Registration": {
        "title": "Registration",
        "description": "The Registration object captures the timeline of an entity's registration within the system. It includes details about when the registration started and, if applicable, when it ended. Based on NEN 3610.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "registrationDate": {
            "title": "DateTimeType",
            "description": "The date and time when the entity's registration began. This field indicates when the entity was first recorded in the system in ISO 8601 format.",
            "example": "2024-05-25T00:00:00Z",
            "type": "string",
            "format": "date-time"
          },
          "endRegistration": {
            "title": "DateTimeType",
            "description": "The date and time when the entity's registration ended, if applicable. This field, indicating the end of the registration period based on ISO 8601 format.",
            "example": "2024-06-25T00:00:00Z",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "registrationDate"
        ]
      },
      "RelatedInfo": {
        "title": "RelatedInfo",
        "description": "Represents all information related to the consumer's own (or retrieved) market activity. This includes all data the consumer is entitled to access based on their market activity.\nFor example: If a supplier performs, has planned, or has executed a delivery on a connection during a specific period, this grants the right to view CSP activities on the same connection within the same period.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "relatedRdpMarketActivityRecord": {
            "title": "RelatedRdpMarketActivityRecord",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelatedRdpMarketActivityRecord"
            }
          }
        }
      },
      "RelatedRdpMarketActivityRecord": {
        "title": "RelatedRdpMarketActivityRecord",
        "description": "All Redispatch (RDP) market activity information related to the consumer's own (or retrieved) market activity.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "mrid": {
            "title": "UuidType",
            "description": "This mRID is issued by the market activity register.",
            "example": "f65fa4cf-1d55-4033-b54c-b0ad9863ced4",
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"
          },
          "referencedSubUnitMarketParticipant": {
            "$ref": "#/components/schemas/ReferencedSubUnitMarketParticipant"
          },
          "referencedUsagePoint": {
            "$ref": "#/components/schemas/ReferencedUsagePoint"
          },
          "serviceCategory": {
            "$ref": "#/components/schemas/ServiceCategory"
          },
          "validity": {
            "$ref": "#/components/schemas/Validity"
          }
        },
        "required": [
          "referencedUsagePoint",
          "serviceCategory"
        ]
      },
      "Search": {
        "title": "Search",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "filters": {
            "$ref": "#/components/schemas/Filters"
          },
          "referencedUsagePoint": {
            "$ref": "#/components/schemas/ReferencedUsagePoint"
          },
          "subUnitMarketParticipant": {
            "$ref": "#/components/schemas/ReferencedSubUnitMarketParticipant"
          },
          "serviceCategory": {
            "$ref": "#/components/schemas/FilterServiceCategory"
          },
          "validity": {
            "$ref": "#/components/schemas/Validity"
          }
        },
        "required": [
          "filters",
          "referencedUsagePoint"
        ]
      },
      "ServiceCategory": {
        "title": "ServiceCategory",
        "description": "Provided service information.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "serviceCategoryKind": {
            "title": "ServiceCategoryKindCode",
            "description": "Services are categorized in logical groups (e.g. Congestion Management, Metering, ...). The service category kind returns an encoding of the category associated with the returned service kind.\nValue must be one of:\nC01 - Congestion management;\nC02 - Energy supply;\nC03 - Metering;\nC04 - Balance responsible;\nC05 - Balance management;",
            "example": "C01",
            "type": "string",
            "enum": [
              "C01",
              "C02",
              "C03",
              "C04",
              "C05"
            ]
          },
          "serviceKind": {
            "title": "ServiceKindCode",
            "description": "Type of service performed by a market participant, such as metering, energy delivery (supply and return), balancing responsibility, capacity restriction, redispatch, FCR, aFRR, emergency power provision, and MARI products.\nValue must be one of:\nS01 - Redispatch;\nS02 - Capacity limitation;\nS03 - Metering;\nS04 - Supply / Feed-in;\nS05 - Balancing responsibility;\nS06 - Frequency containment reserve;\nS07 - Automatic frequency restoration reserve;\nS08 - Manual activated reserves initiative;\nS09 - Emergency power;",
            "example": "S03",
            "type": "string",
            "enum": [
              "S01",
              "S02",
              "S03",
              "S04",
              "S05",
              "S06",
              "S07",
              "S08",
              "S09"
            ]
          }
        },
        "required": [
          "serviceCategoryKind",
          "serviceKind"
        ]
      },
      "Validity": {
        "title": "Validity",
        "description": "The Validity object captures the validity period of an entity. It includes information on when the entity's validity starts and, if applicable, ends. Based on NEN 3610.",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "beginDate": {
            "title": "DateType",
            "description": "The start date of the entity's validity period. This field indicates when the entity becomes/became valid in ISO 8601 format. \nWhen a search is performed based on a start date, only activities valid on the specified day will be retrieved (activities valid on that day).",
            "example": "2024-06-25",
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "title": "DateType",
            "description": "The end date of the entity's validity period, if applicable. This field indicates when the entity's validity expires in ISO 8601 format.",
            "example": "2024-06-25",
            "type": "string",
            "format": "date"
          }
        },
        "required": [
          "beginDate"
        ]
      }
    }
  }
}