--- openapi: "3.0.3" info: title: "FIAM – Eneco Data Products" description: "Eneco DataShare APIs" contact: name: "Eneco Integration Team" url: "https://developer.enecogroup.com" email: "FM_BTO_Integration_Team@eneco.com" version: "1.0.1" servers: - url: "https://api-acc.enecogroup.com/" - url: "https://api.enecogroup.com/" paths: /datashare/v1/{businessUnit}/{label}/dataconsumer/{dataOwnerId}/{productType}/usages: get: tags: - "DataConsumer" summary: "Get usages for data consumers" description: "Get usages for data consumers by validating contract via KPN FIAM" operationId: "Get usages for data consumers" parameters: - name: "businessUnit" in: "path" required: true schema: $ref: "#/components/schemas/BusinessUnitBinding" - name: "label" in: "path" required: true schema: $ref: "#/components/schemas/LabelBinding" - name: "dataOwnerId" in: "path" required: true schema: type: "string" format: "uuid" - name: "productType" in: "path" required: true schema: $ref: "#/components/schemas/ProductTypeBinding" - name: "endDate" in: "query" explode: false schema: type: "string" format: "date-time" - name: "x-request-id" in: "header" description: "Unique identifier of incoming call for tracing purposes" schema: type: "string" format: "uuid" responses: "200": description: "OK" content: application/json: schema: $ref: "#/components/schemas/UsagesResponse" "400": description: "Bad Request" content: application/json: schema: $ref: "#/components/schemas/ProblemDetails" "401": description: "Unauthorized" content: application/json: schema: $ref: "#/components/schemas/ProblemDetails" "429": description: "Too Many Requests" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/ProblemDetails" default: description: "Unexpected Error" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /datashare/v1/{businessUnit}/{label}/dataconsumer/{dataOwnerId}/{productType}/metadata: get: tags: - "DataConsumer" summary: "Get metadata of data owner for data consumers" description: "Get metadata of data owner for data consumers by validating contract\ \ via KPN" operationId: "Get metadata of data owner for data consumers" parameters: - name: "businessUnit" in: "path" required: true schema: $ref: "#/components/schemas/BusinessUnitBinding" - name: "label" in: "path" required: true schema: $ref: "#/components/schemas/LabelBinding" - name: "dataOwnerId" in: "path" required: true schema: type: "string" format: "uuid" - name: "productType" in: "path" required: true schema: $ref: "#/components/schemas/ProductTypeBinding" - name: "x-request-id" in: "header" description: "Unique identifier of incoming call for tracing purposes" schema: type: "string" format: "uuid" responses: "200": description: "OK" content: application/json: schema: $ref: "#/components/schemas/UsagesResponse" "400": description: "Bad Request" content: application/json: schema: $ref: "#/components/schemas/ProblemDetails" "401": description: "Unauthorized" content: application/json: schema: $ref: "#/components/schemas/ProblemDetails" "429": description: "Too Many Requests" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/ProblemDetails" default: description: "Unexpected Error" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /datashare/v1/{businessUnit}/{label}/dataconsumer/demo/{dataOwnerId}/{productType}/consumers: get: tags: - "DataConsumerDemo" summary: "Get demo data consumers" description: "Get all data consumers for a given customer for demo purposes.\ \ The response is decorated with consent information for the given customer" operationId: "GetDemoDataConsumers" parameters: - name: "businessUnit" in: "path" required: true schema: $ref: "#/components/schemas/BusinessUnitBinding" - name: "label" in: "path" required: true schema: $ref: "#/components/schemas/LabelBinding" - name: "dataOwnerId" in: "path" required: true schema: type: "string" format: "uuid" - name: "productType" in: "path" required: true schema: $ref: "#/components/schemas/ProductTypeBinding" - name: "x-request-id" in: "header" description: "Unique identifier of incoming call for tracing purposes" schema: type: "string" format: "uuid" responses: "200": description: "OK" content: application/json: schema: $ref: "#/components/schemas/DemoResponseDtoOfDemoConsumersResponse" "400": description: "Bad Request" content: application/json: schema: $ref: "#/components/schemas/ProblemDetails" "401": description: "Unauthorized" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "429": description: "Too Many Requests" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/ProblemDetails" default: description: "Unexpected Error" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /datashare/v1/{businessUnit}/{label}/dataconsumer/demo/{dataOwnerId}/{productType}/setConsent: post: tags: - "DataConsumerDemo" summary: "Set demo consent" description: "Set consent for the given customer for demo purposes. This will\ \ create or delete a contract in KPN FIAM depending on the consent value" operationId: "SetDemoConsent" parameters: - name: "businessUnit" in: "path" required: true schema: $ref: "#/components/schemas/BusinessUnitBinding" - name: "label" in: "path" required: true schema: $ref: "#/components/schemas/LabelBinding" - name: "dataOwnerId" in: "path" required: true schema: type: "string" format: "uuid" - name: "productType" in: "path" required: true schema: $ref: "#/components/schemas/ProductTypeBinding" - name: "x-request-id" in: "header" description: "Unique identifier of incoming call for tracing purposes" schema: type: "string" format: "uuid" requestBody: content: application/json: schema: $ref: "#/components/schemas/SetDemoConsentRequest" required: true responses: "400": description: "Bad Request" content: application/json: schema: $ref: "#/components/schemas/ProblemDetails" "401": description: "Unauthorized" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/ProblemDetails" "415": description: "Unsupported Media Type" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "429": description: "Too Many Requests" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/ProblemDetails" default: description: "Unexpected Error" content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" components: schemas: BusinessUnitBinding: enum: - "nl" - "be" - "uk" type: "object" properties: value: $ref: "#/components/schemas/BusinessUnit" LabelBinding: enum: - "default" - "eneco" - "oxxio" - "woonenergie" type: "object" properties: value: $ref: "#/components/schemas/Label" ProductTypeBinding: enum: - "heat" type: "object" properties: value: $ref: "#/components/schemas/ProductType" UsagesResponse: required: - "startDate" - "endDate" - "usageChannels" type: "object" properties: startDate: type: "string" format: "date-time" endDate: type: "string" format: "date-time" usageChannels: type: "array" items: $ref: "#/components/schemas/UsageChannel" ProblemDetails: type: "object" properties: type: type: "string" nullable: true title: type: "string" nullable: true status: pattern: "^-?(?:0|[1-9]\\d*)$" format: "int32" nullable: true detail: type: "string" nullable: true instance: type: "string" nullable: true ErrorResponse: type: "object" properties: errors: type: "array" items: type: "object" properties: code: type: "string" message: type: "string" DemoResponseDtoOfDemoConsumersResponse: required: - "data" type: "object" properties: data: type: "object" oneOf: - $ref: "#/components/schemas/DemoConsumersResponse" nullable: true SetDemoConsentRequest: required: - "consumerId" - "isConsent" type: "object" properties: consumerId: type: "string" isConsent: type: "boolean" BusinessUnit: enum: - "nl" - "be" - "uk" Label: enum: - "default" - "eneco" - "oxxio" - "woonenergie" ProductType: enum: - "heat" UsageChannel: required: - "channelId" - "unit" - "usageRecords" type: "object" properties: channelId: type: "string" unit: $ref: "#/components/schemas/Units" usageRecords: type: "array" items: $ref: "#/components/schemas/UsageRecord" DemoConsumersResponse: required: - "consumers" type: "object" properties: consumers: type: "array" items: $ref: "#/components/schemas/DemoConsumerResponse" Units: enum: - "Centigrade" - "KiloWattHour" - "CubicMeter" UsageRecord: required: - "amount" - "timestamp" type: "object" properties: amount: pattern: "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$" format: "double" timestamp: type: "string" format: "date-time" DemoConsumerResponse: required: - "name" - "consumerId" - "isConsent" type: "object" properties: name: type: "string" consumerId: type: "string" isConsent: type: "boolean" securitySchemes: apikey: type: "apiKey" description: "Apigee API key" name: "apikey" in: "header" security: - apikey: []