Ergon Energy Retail CDR Discovery API

Ergon Energy Retail's own registered Consumer Data Right public base URI, serving the two unauthenticated Data Holder Operations endpoints of the Consumer Data Standards CDR Common API - Get Status and Get Outages. This is the only anonymously callable API surface hosted on an Energy Queensland controlled domain. Confirmed live 2026-07-27: GET /cds-au/v1/discovery/status with header x-v 1 returned HTTP 200 and the CDS envelope {"data":{"status":"OK","updateTime": "2026-07-27T12:08:30Z","explanation":"All services operational"},"links":{...},"meta":{}}, and GET /cds-au/v1/discovery/outages returned HTTP 200 with an empty outages array. The base URI serves nothing else anonymously - /cds-au/v1/energy/plans, the site root and /.well-known/openid-configuration all return an nginx HTTP 404.

OpenAPI Specification

energy-queensland-cds-common-openapi.yml Raw ↑
# Provenance: This is the shared DSB Consumer Data Standards "CDR Common API"
# (cds_common) v1.36.0, harvested verbatim on 2026-07-27 from the Data Standards
# Body at https://consumerdatastandardsaustralia.github.io/standards/includes/swagger/cds_common.json
# (HTTP 200). NOT an Energy-Queensland-proprietary specification.
#
# Ergon Energy Retail's registered CDR public base URI, https://public.cdr.ergonretail.com.au
# (recorded on the ACCC CDR Register), serves the two unauthenticated Data Holder
# Operations paths from this document - CONFIRMED LIVE 2026-07-27:
#   GET https://public.cdr.ergonretail.com.au/cds-au/v1/discovery/status (HTTP 200, x-v: 1,
#       {"status":"OK","explanation":"All services operational"})
#   GET https://public.cdr.ergonretail.com.au/cds-au/v1/discovery/outages (HTTP 200, x-v: 1,
#       empty outages array)
# The /common/customer and /common/customer/detail paths are consumer-authorised and
# accredited-only; they were NOT called. The same host returns nginx HTTP 404 for
# /cds-au/v1/energy/plans, / and /.well-known/openid-configuration.
components:
  headers:
    XFAPIInteractionId:
      description: An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder **MUST**
        play back this value in the _x-fapi-interaction-id_ response header. If not provided a **[[RFC4122]](#nref-RFC4122)**
        UUID value is required to be provided in the response header to track the interaction.
      explode: false
      required: true
      schema:
        type: string
      style: simple
    XV:
      description: The [payload version](#response-headers) that the endpoint has responded with.
      explode: false
      required: true
      schema:
        type: string
      style: simple
  parameters:
    HeaderXCDSClientHeaders:
      description: The customer's original standard http headers [Base64](#common-field-types) encoded, including the original
        User-Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer
        present calls. Not required for unattended or unauthenticated calls.
      explode: false
      in: header
      name: x-cds-client-headers
      required: false
      schema:
        type: string
      style: simple
      x-cds-type: Base64
      x-conditional: true
    HeaderXFAPIAuthDate:
      description: The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-1.0-Baseline]](#nref-FAPI-1-0-Baseline)**.
        Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.
      explode: false
      in: header
      name: x-fapi-auth-date
      required: false
      schema:
        type: string
      style: simple
      x-conditional: true
    HeaderXFAPICustomerIPAddress:
      description: The customer's original IP address if the customer is currently logged in to the Data Recipient Software
        Product. The presence of this header indicates that the API is being called in a customer present context. Not to
        be included for unauthenticated calls.
      explode: false
      in: header
      name: x-fapi-customer-ip-address
      required: false
      schema:
        type: string
      style: simple
    HeaderXFAPIInteractionId:
      description: An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder **MUST**
        play back this value in the _x-fapi-interaction-id_ response header. If not provided a **[[RFC4122]](#nref-RFC4122)**
        UUID value is required to be provided in the response header to track the interaction.
      explode: false
      in: header
      name: x-fapi-interaction-id
      required: false
      schema:
        type: string
      style: simple
    HeaderXMinV:
      description: Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided.
        The endpoint should respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers).
        If all versions requested are not supported then the endpoint **MUST** respond with a `406 Not Acceptable`.
      explode: false
      in: header
      name: x-min-v
      required: false
      schema:
        type: string
      style: simple
    HeaderXV:
      description: Version of the API endpoint requested by the client. Must be set to a positive integer. The endpoint should
        respond with the highest supported version between [_x-min-v_](#request-headers) and [_x-v_](#request-headers). If
        the value of [_x-min-v_](#request-headers) is equal to or higher than the value of [_x-v_](#request-headers) then
        the [_x-min-v_](#request-headers) header should be treated as absent. If all versions requested are not supported
        then the endpoint **MUST** respond with a `406 Not Acceptable`. See [HTTP Headers](#request-headers).
      explode: false
      in: header
      name: x-v
      required: true
      schema:
        type: string
      style: simple
  responses:
    GetCustomer200:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseCommonCustomer'
      description: Successful response
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/XFAPIInteractionId'
        x-v:
          $ref: '#/components/headers/XV'
    GetCustomer400:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseErrorListV2'
      description: The following error codes **MUST** be supported:<br/><ul class="error-code-list"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400
        - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/XFAPIInteractionId'
    GetCustomer406:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseErrorListV2'
      description: The following error codes **MUST** be supported:<br/><ul class="error-code-list"><li>[406 - Unsupported
        Version](#error-406-header-unsupported-version)</li></ul>
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/XFAPIInteractionId'
    GetCustomerDetail200:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseCommonCustomerDetailV2'
      description: Successful response
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/XFAPIInteractionId'
        x-v:
          $ref: '#/components/headers/XV'
    GetCustomerDetail400:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseErrorListV2'
      description: The following error codes **MUST** be supported:<br/><ul class="error-code-list"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400
        - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/XFAPIInteractionId'
    GetCustomerDetail406:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseErrorListV2'
      description: The following error codes **MUST** be supported:<br/><ul class="error-code-list"><li>[406 - Unsupported
        Version](#error-406-header-unsupported-version)</li></ul>
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/XFAPIInteractionId'
    GetOutages200:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseDiscoveryOutagesList'
      description: Successful response
      headers:
        x-v:
          $ref: '#/components/headers/XV'
    GetOutages400:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseErrorListV2'
      description: The following error codes **MUST** be supported:<br/><ul class="error-code-list"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400
        - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>
    GetOutages406:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseErrorListV2'
      description: The following error codes **MUST** be supported:<br/><ul class="error-code-list"><li>[406 - Unsupported
        Version](#error-406-header-unsupported-version)</li></ul>
    GetStatus200:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseCommonDiscoveryStatus'
      description: Successful response
      headers:
        x-v:
          $ref: '#/components/headers/XV'
    GetStatus400:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseErrorListV2'
      description: The following error codes **MUST** be supported:<br/><ul class="error-code-list"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400
        - Missing Required Field](#error-400-field-missing)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>
    GetStatus406:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ResponseErrorListV2'
      description: The following error codes **MUST** be supported:<br/><ul class="error-code-list"><li>[406 - Unsupported
        Version](#error-406-header-unsupported-version)</li></ul>
  schemas:
    CommonEmailAddress:
      properties:
        address:
          description: A correctly formatted email address, as defined by the addr-spec format in **[[RFC5322]](#nref-RFC5322)**.
          type: string
          x-cds-type: ExternalRef
        isPreferred:
          description: May be `true` for one and only one email record in the collection. Denotes the default email address.
          type: boolean
        purpose:
          description: The purpose for the email, as specified by the customer.
          enum:
          - HOME
          - OTHER
          - UNSPECIFIED
          - WORK
          type: string
      required:
      - address
      - purpose
      type: object
    CommonOrganisation:
      properties:
        abn:
          description: Australian Business Number for the organisation.
          type: string
        acn:
          description: Australian Company Number for the organisation. Required only if an ACN is applicable for the organisation
            type.
          type: string
        agentFirstName:
          description: The first name of the individual providing access on behalf of the organisation. For people with single
            names this field need not be present. The single name should be in the _lastName_ field.
          type: string
        agentLastName:
          description: The last name of the individual providing access on behalf of the organisation. For people with single
            names, the single name should be in this field.
          type: string
        agentRole:
          description: The role of the individual identified as the agent who is providing authorisation. Expected to be used
            for display. Default to "Unspecified" if the role is not known.
          type: string
        businessName:
          description: Name of the organisation.
          type: string
        establishmentDate:
          description: The date the organisation described was established.
          type: string
          x-cds-type: DateString
        industryCode:
          description: A valid [ANZSIC](http://www.abs.gov.au/ANZSIC) code for the organisation. If the industry code held
            by the data holder is not one of the supported [ANZSIC](http://www.abs.gov.au/ANZSIC) versions, then it must not
            be supplied.
          type: string
          x-cds-type: ExternalRef
        industryCodeVersion:
          default: ANZSIC_1292.0_2006_V2.0
          description: The applicable [ANZSIC](http://www.abs.gov.au/ANZSIC) release version of the industry code provided.
            Should only be supplied if _industryCode_ is also supplied. If _industryCode_ is supplied but _industryCodeVersion_
            is absent, default is `ANZSIC_1292.0_2006_V2.0`.
          enum:
          - ANZSIC_1292.0_2006_V1.0
          - ANZSIC_1292.0_2006_V2.0
          type: string
        isACNCRegistered:
          description: '`true` if registered with the ACNC. `false` if not. Absent or `null` if not confirmed.'
          type: boolean
        lastUpdateTime:
          description: The date and time that this record was last updated by the customer. If no update has occurred then
            this date should reflect the initial creation date for the data.
          type: string
          x-cds-type: DateTimeString
        legalName:
          description: Legal name, if different to the business name.
          type: string
        organisationType:
          description: Legal organisation type.
          enum:
          - COMPANY
          - GOVERNMENT_ENTITY
          - OTHER
          - PARTNERSHIP
          - SOLE_TRADER
          - TRUST
          type: string
        registeredCountry:
          default: AUS
          description: Enumeration with values from [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country
            codes. Assumed to be `AUS` if absent.
          type: string
          x-cds-type: ExternalRef
        shortName:
          description: Short name used for communication, if different to the business name.
          type: string
      required:
      - agentLastName
      - agentRole
      - businessName
      - organisationType
      type: object
      x-conditional:
      - industryCodeVersion
    CommonOrganisationDetailV2:
      allOf:
      - $ref: '#/components/schemas/CommonOrganisation'
      - $ref: '#/components/schemas/CommonOrganisationDetailV2_allOf'
    CommonOrganisationDetailV2_allOf:
      properties:
        physicalAddresses:
          description: Array is mandatory but may be empty if no valid addresses are held. One and only one address may have
            the purpose of `REGISTERED`. Zero or one, and no more than one, record may have the purpose of `MAIL`. If zero
            then the `REGISTERED` address is to be used for mail.
          items:
            $ref: '#/components/schemas/CommonPhysicalAddressWithPurpose'
          type: array
      required:
      - physicalAddresses
      type: object
    CommonPAFAddress:
      description: Australian address formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf).
        Required if _addressUType_ is set to `paf`.
      properties:
        buildingName1:
          description: Building/Property name 1.
          type: string
        buildingName2:
          description: Building/Property name 2.
          type: string
        dpid:
          description: Unique identifier for an address as defined by Australia Post. Also known as Delivery Point Identifier.
          type: string
        flatUnitNumber:
          description: Unit number (including suffix, if applicable).
          type: string
        flatUnitType:
          description: Type of flat or unit for the address.
          type: string
        floorLevelNumber:
          description: Floor or level number (including alpha characters).
          type: string
        floorLevelType:
          description: Type of floor or level for the address.
          type: string
        localityName:
          description: Full name of locality.
          type: string
        lotNumber:
          description: Allotment number for the address.
          type: string
        postalDeliveryNumber:
          description: Postal delivery number if the address is a postal delivery type.
          type: integer
          x-cds-type: PositiveInteger
        postalDeliveryNumberPrefix:
          description: Postal delivery number prefix related to the postal delivery number.
          type: string
        postalDeliveryNumberSuffix:
          description: Postal delivery number suffix related to the postal delivery number.
          type: string
        postalDeliveryType:
          description: Postal delivery type. (e.g., PO BOX). Valid enumeration defined by Australia Post PAF code file.
          type: string
        postcode:
          description: Postcode for the locality.
          type: string
        state:
          description: State in which the address belongs. Valid enumeration defined by Australia Post PAF code file [State
            Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf).
            `NSW`, `QLD`, `VIC`, `NT`, `WA`, `SA`, `TAS`, `ACT`, `AAT`.
          type: string
        streetName:
          description: The name of the street.
          type: string
        streetSuffix:
          description: The street type suffix. Valid enumeration defined by Australia Post PAF code file.
          type: string
        streetType:
          description: The street type. Valid enumeration defined by Australia Post PAF code file.
          type: string
        thoroughfareNumber1:
          description: Thoroughfare number for a property (first number in a property ranged address).
          type: integer
          x-cds-type: PositiveInteger
        thoroughfareNumber1Suffix:
          description: Suffix for the thoroughfare number. Only relevant if _thoroughfareNumber1_ is populated.
          type: string
        thoroughfareNumber2:
          description: Second thoroughfare number (only used if the property has a ranged address e.g., 23-25).
          type: integer
          x-cds-type: PositiveInteger
        thoroughfareNumber2Suffix:
          description: Suffix for the second thoroughfare number. Only relevant if _thoroughfareNumber2_ is populated.
          type: string
      required:
      - localityName
      - postcode
      - state
      type: object
    CommonPerson:
      properties:
        firstName:
          description: For people with single names this field need not be present. The single name should be in the _lastName_
            field. Where a data holder cannot determine first and middle names from a collection of given names, a single
            string representing all given names **MAY** be provided.
          type: string
        lastName:
          description: For people with single names, the single name should be in this field.
          type: string
        lastUpdateTime:
          description: The date and time that this record was last updated by the customer. If no update has occurred then
            this date should reflect the initial creation date for the data.
          type: string
          x-cds-type: DateTimeString
        middleNames:
          description: Field is mandatory but array may be empty.
          items:
            type: string
          type: array
        occupationCode:
          description: Value is a valid **[[ANZSCO]](#iref-ANZSCO)** Standard Occupation classification code. If the occupation
            code held by the data holder is not one of the supported **[[ANZSCO]](#iref-ANZSCO)** versions, then it must not
            be supplied.
          type: string
          x-cds-type: ExternalRef
        occupationCodeVersion:
          default: ANZSCO_1220.0_2013_V1.2
          description: The applicable **[[ANZSCO]](#iref-ANZSCO)** release version of the occupation code provided. Mandatory
            if an _occupationCode_ is supplied. If _occupationCode_ is supplied but _occupationCodeVersion_ is absent, default
            is `ANZSCO_1220.0_2013_V1.2`.
          enum:
          - ANZSCO_1220.0_2006_V1.0
          - ANZSCO_1220.0_2006_V1.1
          - ANZSCO_1220.0_2013_V1.2
          - ANZSCO_1220.0_2013_V1.3
          type: string
        prefix:
          description: Also known as title or salutation. The prefix to the name (e.g., Mr, Mrs, Ms, Miss, Sir, etc.)
          type: string
        suffix:
          description: Used for a trailing suffix to the name (e.g., Jr.)
          type: string
      required:
      - lastName
      - middleNames
      type: object
      x-conditional:
      - occupationCodeVersion
    CommonPersonDetailV2:
      allOf:
      - $ref: '#/components/schemas/CommonPerson'
      - $ref: '#/components/schemas/CommonPersonDetailV2_allOf'
    CommonPersonDetailV2_allOf:
      properties:
        emailAddresses:
          description: May be empty.
          items:
            $ref: '#/components/schemas/CommonEmailAddress'
          type: array
        phoneNumbers:
          description: Array is mandatory but may be empty if no phone numbers are held.
          items:
            $ref: '#/components/schemas/CommonPhoneNumber'
          type: array
        physicalAddresses:
          description: Array is mandatory but may be empty if no valid addresses are held. One and only one address may have
            the purpose of `REGISTERED`. Zero or one, and no more than one, record may have the purpose of `MAIL`. If zero
            then the `REGISTERED` address is to be used for mail.
          items:
            $ref: '#/components/schemas/CommonPhysicalAddressWithPurpose'
          type: array
      required:
      - emailAddresses
      - phoneNumbers
      - physicalAddresses
      type: object
    CommonPhoneNumber:
      properties:
        areaCode:
          description: Required for non Mobile Phones, if field is present and refers to Australian code - the leading `0`
            should be omitted.
          type: string
        countryCode:
          default: '+61'
          description: If absent, assumed to be Australia (`+61`). The `+` should be included.
          type: string
        extension:
          description: An extension number (if applicable).
          type: string
        fullNumber:
          description: Fully formatted phone number with country code, area code, number and extension incorporated. Formatted
            according to section 5.1.4. of **[[RFC3966]](#iref-RFC3966)**.
          type: string
          x-cds-type: ExternalRef
        isPreferred:
          default: false
          description: May be `true` for one and only one entry to indicate the preferred phone number. Assumed to be `false`
            if not present.
          type: boolean
        number:
          description: The actual phone number, with leading zeros as appropriate.
          type: string
        purpose:
          description: The purpose of the number as specified by the customer.
          enum:
          - HOME
          - INTERNATIONAL
          - MOBILE
          - OTHER
          - UNSPECIFIED
          - WORK
          type: string
      required:
      - fullNumber
      - number
      - purpose
      type: object
      x-conditional:
      - areaCode
    CommonPhysicalAddress:
      properties:
        addressUType:
          description: The type of address object present.
          enum:
          - paf
          - simple
          type: string
        paf:
          $ref: '#/components/schemas/CommonPAFAddress'
        simple:
          $ref: '#/components/schemas/CommonSimpleAddress'
      required:
      - addressUType
      type: object
      x-conditional:
      - simple
      - paf
    CommonPhysicalAddressWithPurpose:
      allOf:
      - $ref: '#/components/schemas/CommonPhysicalAddress'
      - $ref: '#/components/schemas/CommonPhysicalAddressWithPurpose_allOf'
    CommonPhysicalAddressWithPurpose_allOf:
      properties:
        purpose:
          description: Enumeration of values indicating the purpose of the physical address.
          enum:
          - MAIL
          - OTHER
          - PHYSICAL
          - REGISTERED
          - WORK
          type: string
      required:
      - purpose
      type: object
    CommonSimpleAddress:
      description: Required if _addressUType_ is set to `simple`.
      properties:
        addressLine1:
          description: First line of the standard address object.
          type: string
        addressLine2:
          description: Second line of the standard address object.
          type: string
        addressLine3:
          description: Third line of the standard address object.
          type: string
        city:
          description: Name of the city or locality.
          type: string
        country:
          default: AUS
          description: A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia
            (`AUS`) is assumed if country is not present.
          type: string
          x-cds-type: ExternalRef
        mailingName:
          description: Name of the individual or business formatted for inclusion in an address used for physical mail.
          type: string
        postcode:
          description: Mandatory for Australian addresses.
          type: string
        state:
          description: Free text if the country is not Australia. If country is Australia then must be one of the values defined
            by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf)
            in the PAF file format. `NSW`, `QLD`, `VIC`, `NT`, `WA`, `SA`, `TAS`, `ACT`, `AAT`.
          type: string
      required:
      - addressLine1
      - city
      - state
      type: object
      x-conditional:
      - postcode
    DiscoveryOutage:
      properties:
        duration:
          description: Planned duration of the outage. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations)
            (excludes recurrence syntax).
          type: string
          x-cds-type: ExternalRef
        explanation:
          description: Provides an explanation of the current outage that can be displayed to an end customer.
          type: string
        isPartial:
          description: Flag that indicates, if present and set to `true`, that the outage is only partial meaning that only
            a subset of normally available endpoints will be affected by the outage.
          type: boolean
        outageTime:
          description: Date and time that the outage is scheduled to begin.
          type: string
          x-cds-type: DateTimeString
      required:
      - duration
      - explanation
      - outageTime
      type: object
    ErrorV2:
      properties:
        code:
          description: The code of the error encountered. Where the error is specific to the respondent, an application-specific
            error code, expressed as a string value. If the error is application-specific, the URN code that the specific
            error extends must be provided in the _meta_ object. Otherwise, the value is the error code URN.
          type: string
        detail:
          description: A human-readable explanation specific to this occurrence of the problem.
          type: string
        meta:
          $ref: '#/components/schemas/ErrorV2_meta'
        title:
          description: A short, human-readable summary of the problem that **MUST NOT** change from occurrence to occurrence
            of the problem represented by the error code.
          type: string
      required:
      - code
      - detail
      - title
      type: object
      x-conditional:
      - meta
    ErrorV2_meta:
      description: Additional data for customised error codes.
      properties:
        urn:
          description: The CDR error code URN which the application-specific error code extends. Mandatory if the error _code_
            is an application-specific error rather than a standardised error code.
          type: string
      type: object
      x-conditional:
      - urn
    Links:
      properties:
        self:
          description: Fully qualified link that generated the current response document.
          type: string
          x-cds-type: URIString
      required:
      - self
      type: object
    Meta:
      type: object
    ResponseCommonCustomer:
      properties:
        data:
          $ref: '#/components/schemas/ResponseCommonCustomer_data'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      required:
      - data
      - links
      type: object
    ResponseCommonCustomerDetailV2:
      properties:
        data:
          $ref: '#/components/schemas/ResponseCommonCustomerDetailV2_data'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      required:
      - data
      - links
      type: object
    ResponseCommonCustomerDetailV2_data:
      properties:
        customerUType:
          description: The type of customer object that is present.
          enum:
          - organisation
          - person
          type: string
        organisation:
          $ref: '#/components/schemas/CommonOrganisationDetailV2'
        person:
          $ref: '#/components/schemas/CommonPersonDetailV2'
      required:
      - customerUType
      type: object
      x-conditional:
      - person
      - organisation
    ResponseCommonCustomer_data:
      properties:
        customerUType:
          description: The type of customer object that is present.
          enum:
          - organisation
          - person
          type: string
        organisation:
          $ref: '#/components/schemas/CommonOrganisation'
        person:
          $ref: '#/components/schemas/CommonPerson'
      required:
      - customerUType
      type: object
      x-conditional:
      - person
      - organisation
    ResponseCommonDiscoveryStatus:
      properties:
        data:
          $ref: '#/components/schemas/ResponseCommonDiscoveryStatus_data'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      required:
      - data
      - links
      type: object
    ResponseCommonDiscoveryStatus_data:
      properties:
        detectionTime:
          description: The date and time that the current outage was detected. Should only be present if the status property
            is `PARTIAL_FAILURE` or `UNAVAILABLE`.
          type: string
          x-cds-type: DateTimeString
        expectedResolutionTime:
          description: The date and time that full service is expected to resume (if known). Should not be present if the
            status property has a value of `OK`.
          type: string
          x-cds-type: DateTimeString
        explanation:
          description: Provides an explanation of the current outage that can be displayed to an end customer. Mandatory if
            the status property is any value other than `OK`.
          type: string
        status:
          description: 'Enumeration with values: <ul><li>`OK`: (implementation is fully functional).<li>`PARTIAL_FAILURE`:
            (one or more endpoints are unexpectedly unavailable).<li>`UNAVAILABLE`: (the full implementation is unexpectedly
            unavailable).<li>`SCHEDULED_OUTAGE`: (an advertised outage is in effect).</ul>'
          enum:
          - OK
          - PARTIAL_FAILURE
          - SCHEDULED_OUTAGE
          - UNAVAILABLE
          type: string
        updateTime:
          description: The date and time that this status was last updated by the Data Holder.
          type: string
          x-cds-type: DateTimeString
      required:
      - status
      - updateTime
      type: object
      x-conditional:
      - explanation
    ResponseDiscoveryOutagesList:
      properties:
        data:
          $ref: '#/components/schemas/ResponseDiscoveryOutagesList_data'
        links:
          $ref: '#/components/schemas/Links'
        meta:
          $ref: '#/components/schemas/Meta'
      required:
      - data
      - links
      type: object
    ResponseDiscoveryOutagesList_data:
      properties:
        outages:
          description: List of scheduled outages. Property is mandatory but may contain an empty list if no outages are scheduled.
          items:
            $ref: '#/components/schemas/DiscoveryOutage'
          type: array
      required:
      - outages
      t

# --- truncated at 32 KB (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/energy-queensland/refs/heads/main/openapi/energy-queensland-cds-common-openapi.yml