From 896fbce405147fbec0da2e17a1035cd799a48efc Mon Sep 17 00:00:00 2001 From: Donald Coffin Date: Sun, 8 Feb 2026 12:40:53 -0500 Subject: [PATCH] feat: separate customer resources into individual tag sections Replace single "Customer Resources" tag with 9 individual tags to match the energy section organization: **New Tags:** - Customer - Organizations receiving services - CustomerAccount - Billing and payment information - CustomerAgreement - Service terms at specific locations - ServiceLocation - Physical premises where service is provided - ServiceSupplier - Utility or energy service providers - EndDevice - Metering and load management devices - Meter - Physical metering assets at usage points - Statement - Billing statements for services - ProgramDateIdMappings - Energy efficiency program enrollments **Updated:** - 18 path files to use specific tags instead of generic "Customer Resources" - x-tagGroups to list all 9 customer resource tags individually - Tag descriptions to clarify each resource type's purpose This makes customer resources appear as separate sections in Redocly and Swagger UI documentation, matching the organization of energy resources (UsagePoint, MeterReading, IntervalBlock, etc.). Co-Authored-By: Claude Sonnet 4.5 --- openapi/openapi.yaml | 48 +++++++++++++++++-- openapi/paths/Customer.yaml | 2 +- openapi/paths/CustomerAccount.yaml | 2 +- .../CustomerAccount_{customerAccountId}.yaml | 2 +- openapi/paths/CustomerAgreement.yaml | 2 +- ...stomerAgreement_{customerAgreementId}.yaml | 2 +- openapi/paths/Customer_{customerId}.yaml | 2 +- openapi/paths/EndDevice.yaml | 2 +- openapi/paths/EndDevice_{endDeviceId}.yaml | 2 +- openapi/paths/Meter.yaml | 2 +- openapi/paths/Meter_{meterId}.yaml | 2 +- openapi/paths/ProgramDateIdMappings.yaml | 2 +- ...eIdMappings_{programDateIdMappingsId}.yaml | 2 +- openapi/paths/ServiceLocation.yaml | 2 +- .../ServiceLocation_{serviceLocationId}.yaml | 2 +- openapi/paths/ServiceSupplier.yaml | 2 +- .../ServiceSupplier_{serviceSupplierId}.yaml | 2 +- openapi/paths/Statement.yaml | 2 +- openapi/paths/Statement_{statementId}.yaml | 2 +- 19 files changed, 62 insertions(+), 22 deletions(-) diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 6e643f8..9d4fd34 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -117,10 +117,42 @@ tags: description: >- Operations for checking the current status of the Data Custodian Resource Server. - - name: Customer Resources + - name: Customer description: >- - Operations for accessing customer and billing information resources - (PII-containing). Uses the http://naesb.org/espi/customer namespace. + Operations for accessing Customer resources, which represent organizations + receiving services from a service supplier (PII-containing). + - name: CustomerAccount + description: >- + Operations for accessing Customer Account resources, which contain billing + and payment information (PII-containing). + - name: CustomerAgreement + description: >- + Operations for accessing Customer Agreement resources, which define service + terms at specific locations (PII-containing). + - name: ServiceLocation + description: >- + Operations for accessing Service Location resources, which represent physical + premises where service is provided (PII-containing). + - name: ServiceSupplier + description: >- + Operations for accessing Service Supplier resources, which represent utility + or energy service providers. + - name: EndDevice + description: >- + Operations for accessing End Device resources, which represent metering and + load management devices. + - name: Meter + description: >- + Operations for accessing Meter resources, which represent physical metering + assets at usage points. + - name: Statement + description: >- + Operations for accessing Statement resources, which represent billing + statements for services provided (PII-containing). + - name: ProgramDateIdMappings + description: >- + Operations for accessing Program Date ID Mappings, which contain customer + energy efficiency program enrollments. x-tagGroups: - name: OAuth Resources tags: @@ -145,7 +177,15 @@ x-tagGroups: - ServiceStatus - name: Customer Data tags: - - Customer Resources + - Customer + - CustomerAccount + - CustomerAgreement + - ServiceLocation + - ServiceSupplier + - EndDevice + - Meter + - Statement + - ProgramDateIdMappings servers: - url: https://sandbox.greenbuttonalliance.org:8443/DataCustodian description: Green Button Alliance Sandbox Server diff --git a/openapi/paths/Customer.yaml b/openapi/paths/Customer.yaml index 5632910..92a28e3 100644 --- a/openapi/paths/Customer.yaml +++ b/openapi/paths/Customer.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - Customer summary: Retrieve all Customers [FB_50] description: >- Returns an Atom feed containing all Customer resources within the Data diff --git a/openapi/paths/CustomerAccount.yaml b/openapi/paths/CustomerAccount.yaml index 123e63e..fc19054 100644 --- a/openapi/paths/CustomerAccount.yaml +++ b/openapi/paths/CustomerAccount.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - CustomerAccount summary: Retrieve all Customer Accounts [FB_51] description: >- Returns an Atom feed containing all CustomerAccount resources within the Data diff --git a/openapi/paths/CustomerAccount_{customerAccountId}.yaml b/openapi/paths/CustomerAccount_{customerAccountId}.yaml index 40f2c9e..52184fa 100644 --- a/openapi/paths/CustomerAccount_{customerAccountId}.yaml +++ b/openapi/paths/CustomerAccount_{customerAccountId}.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - CustomerAccount summary: Retrieve a specific Customer Account [FB_51] description: >- Returns an Atom entry containing a single CustomerAccount resource identified by diff --git a/openapi/paths/CustomerAgreement.yaml b/openapi/paths/CustomerAgreement.yaml index b34ba39..fb46ac4 100644 --- a/openapi/paths/CustomerAgreement.yaml +++ b/openapi/paths/CustomerAgreement.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - CustomerAgreement summary: Retrieve all Customer Agreements [FB_52] description: >- Returns an Atom feed containing all CustomerAgreement resources within the Data diff --git a/openapi/paths/CustomerAgreement_{customerAgreementId}.yaml b/openapi/paths/CustomerAgreement_{customerAgreementId}.yaml index ce962a0..c9875ee 100644 --- a/openapi/paths/CustomerAgreement_{customerAgreementId}.yaml +++ b/openapi/paths/CustomerAgreement_{customerAgreementId}.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - CustomerAgreement summary: Retrieve a specific Customer Agreement [FB_52] description: >- Returns an Atom entry containing a single CustomerAgreement resource identified by diff --git a/openapi/paths/Customer_{customerId}.yaml b/openapi/paths/Customer_{customerId}.yaml index 39132cc..73b45fd 100644 --- a/openapi/paths/Customer_{customerId}.yaml +++ b/openapi/paths/Customer_{customerId}.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - Customer summary: Retrieve a specific Customer [FB_50] description: >- Returns an Atom entry containing a single Customer resource identified by diff --git a/openapi/paths/EndDevice.yaml b/openapi/paths/EndDevice.yaml index b377f19..e211a1d 100644 --- a/openapi/paths/EndDevice.yaml +++ b/openapi/paths/EndDevice.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - EndDevice summary: Retrieve all End Devices [FB_54] description: >- Returns an Atom feed containing all EndDevice resources within the Data diff --git a/openapi/paths/EndDevice_{endDeviceId}.yaml b/openapi/paths/EndDevice_{endDeviceId}.yaml index 28f0697..e3794ab 100644 --- a/openapi/paths/EndDevice_{endDeviceId}.yaml +++ b/openapi/paths/EndDevice_{endDeviceId}.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - EndDevice summary: Retrieve a specific End Device [FB_54] description: >- Returns an Atom entry containing a single EndDevice resource identified by diff --git a/openapi/paths/Meter.yaml b/openapi/paths/Meter.yaml index 1212147..fe7e381 100644 --- a/openapi/paths/Meter.yaml +++ b/openapi/paths/Meter.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - Meter summary: Retrieve all Meters [FB_55] description: >- Returns an Atom feed containing all Meter resources within the Data diff --git a/openapi/paths/Meter_{meterId}.yaml b/openapi/paths/Meter_{meterId}.yaml index 93176f3..2f04cc0 100644 --- a/openapi/paths/Meter_{meterId}.yaml +++ b/openapi/paths/Meter_{meterId}.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - Meter summary: Retrieve a specific Meter [FB_55] description: >- Returns an Atom entry containing a single Meter resource identified by diff --git a/openapi/paths/ProgramDateIdMappings.yaml b/openapi/paths/ProgramDateIdMappings.yaml index 5afe89c..9f00f9c 100644 --- a/openapi/paths/ProgramDateIdMappings.yaml +++ b/openapi/paths/ProgramDateIdMappings.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - ProgramDateIdMappings summary: Retrieve all Program Date ID Mappings [FB_58] description: >- Returns an Atom feed containing all ProgramDateIdMappings resources within the Data diff --git a/openapi/paths/ProgramDateIdMappings_{programDateIdMappingsId}.yaml b/openapi/paths/ProgramDateIdMappings_{programDateIdMappingsId}.yaml index 18c7cbe..255a3eb 100644 --- a/openapi/paths/ProgramDateIdMappings_{programDateIdMappingsId}.yaml +++ b/openapi/paths/ProgramDateIdMappings_{programDateIdMappingsId}.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - ProgramDateIdMappings summary: Retrieve specific Program Date ID Mappings [FB_58] description: >- Returns an Atom entry containing a single ProgramDateIdMappings resource identified by diff --git a/openapi/paths/ServiceLocation.yaml b/openapi/paths/ServiceLocation.yaml index e37e147..c778ba9 100644 --- a/openapi/paths/ServiceLocation.yaml +++ b/openapi/paths/ServiceLocation.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - ServiceLocation summary: Retrieve all Service Locations [FB_53] description: >- Returns an Atom feed containing all ServiceLocation resources within the Data diff --git a/openapi/paths/ServiceLocation_{serviceLocationId}.yaml b/openapi/paths/ServiceLocation_{serviceLocationId}.yaml index 77edc24..5058350 100644 --- a/openapi/paths/ServiceLocation_{serviceLocationId}.yaml +++ b/openapi/paths/ServiceLocation_{serviceLocationId}.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - ServiceLocation summary: Retrieve a specific Service Location [FB_53] description: >- Returns an Atom entry containing a single ServiceLocation resource identified by diff --git a/openapi/paths/ServiceSupplier.yaml b/openapi/paths/ServiceSupplier.yaml index 6d3f37b..5ca4eaf 100644 --- a/openapi/paths/ServiceSupplier.yaml +++ b/openapi/paths/ServiceSupplier.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - ServiceSupplier summary: Retrieve all Service Suppliers [FB_56] description: >- Returns an Atom feed containing all ServiceSupplier resources within the Data diff --git a/openapi/paths/ServiceSupplier_{serviceSupplierId}.yaml b/openapi/paths/ServiceSupplier_{serviceSupplierId}.yaml index cb98474..d3d97a2 100644 --- a/openapi/paths/ServiceSupplier_{serviceSupplierId}.yaml +++ b/openapi/paths/ServiceSupplier_{serviceSupplierId}.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - ServiceSupplier summary: Retrieve a specific Service Supplier [FB_56] description: >- Returns an Atom entry containing a single ServiceSupplier resource identified by diff --git a/openapi/paths/Statement.yaml b/openapi/paths/Statement.yaml index e9fc080..9ad2fab 100644 --- a/openapi/paths/Statement.yaml +++ b/openapi/paths/Statement.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - Statement summary: Retrieve all Statements [FB_57] description: >- Returns an Atom feed containing all Statement resources within the Data diff --git a/openapi/paths/Statement_{statementId}.yaml b/openapi/paths/Statement_{statementId}.yaml index 269638e..16dcbdf 100644 --- a/openapi/paths/Statement_{statementId}.yaml +++ b/openapi/paths/Statement_{statementId}.yaml @@ -1,6 +1,6 @@ get: tags: - - Customer Resources + - Statement summary: Retrieve a specific Statement [FB_57] description: >- Returns an Atom entry containing a single Statement resource identified by