openapi: 3.2.0 info: title: Green Button API Documentation Authorization API description: Green Button API - ESPI 4.0 version: 1.0.0 contact: name: Green Button Alliance url: https://www.greenbuttonalliance.org license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html servers: - url: https://sandbox.greenbuttonalliance.org:8443/DataCustodian description: GBA Green Button Sandbox security: - oauth2: [] tags: - name: Authorization description: Authorization endpoints paths: /espi/1_1/resource/Authorization: get: tags: - Authorization summary: Find all Authorizations [FB_3] operationId: findAuthorizations parameters: - name: published-max in: query description: Maximum publication date (RFC 3339 instant) schema: type: string format: date - name: published-min in: query description: Minimum publication date (RFC 3339 instant) schema: type: string format: date - name: updated-max in: query description: Maximum update date (RFC 3339 instant) schema: type: string format: date - name: updated-min in: query description: Minimum update date (RFC 3339 instant) schema: type: string format: date - name: max-results in: query description: Maximum number of results to return schema: type: integer format: int64 - name: start-index in: query description: Index of first result (1-indexed) schema: type: integer format: int64 - name: depth in: query description: Response depth control schema: type: integer format: int64 responses: '200': description: OK content: application/atom+xml: schema: $ref: '#/components/schemas/AtomFeed' '202': description: Accepted content: application/atom+xml: schema: $ref: '#/components/schemas/AtomFeed' '400': description: Bad Request '403': description: Forbidden /espi/1_1/resource/Authorization/{authorizationId}: get: tags: - Authorization summary: Retrieve Authorization by Id [FB_3] operationId: getAuthorization parameters: - name: authorizationId in: path required: true description: Unique identifier for the Authorization resource schema: type: string - name: published-max in: query description: Maximum publication date (RFC 3339 instant) schema: type: string format: date - name: published-min in: query description: Minimum publication date (RFC 3339 instant) schema: type: string format: date - name: updated-max in: query description: Maximum update date (RFC 3339 instant) schema: type: string format: date - name: updated-min in: query description: Minimum update date (RFC 3339 instant) schema: type: string format: date - name: max-results in: query description: Maximum number of results to return schema: type: integer format: int64 - name: start-index in: query description: Index of first result (1-indexed) schema: type: integer format: int64 - name: depth in: query description: Response depth control schema: type: integer format: int64 responses: '200': description: OK content: application/atom+xml: schema: $ref: '#/components/schemas/Authorization' '202': description: Accepted content: application/atom+xml: schema: $ref: '#/components/schemas/Authorization' '400': description: Bad Request '403': description: Forbidden components: schemas: AtomEntry: type: object description: Atom feed entry (RFC 4287) containing ESPI resource xml: name: entry namespace: http://www.w3.org/2005/Atom properties: id: type: string format: uri description: Unique entry identifier title: type: string description: Entry title published: type: string format: date-time description: ISO 8601 publication timestamp updated: type: string format: date-time description: ISO 8601 last update timestamp link: type: array items: $ref: '#/components/schemas/AtomLink' description: Entry links (minimum 2 required per Atom spec) content: $ref: '#/components/schemas/AtomContent' Authorization: type: object description: Represents a permission granted by an owner for access to a resource xml: name: Authorization namespace: http://naesb.org/espi properties: status: type: integer description: Status of the authorization (0=Revoked, 1=Active, 2=Denied) expires_at: type: integer format: int64 description: Expiration period for the access token (Unix timestamp) grant_type: type: string description: Type of grant being negotiated scope: type: string description: Negotiated scope of the authorization token_type: type: string description: Type of token (Bearer) resourceURI: type: string format: uri description: URI to access the authorized resource authorizationURI: type: string format: uri description: URI to update or delete this authorization customerResourceURI: type: string format: uri description: URI to access PII data authorized for this customer AtomContent: type: object description: Atom content element containing ESPI resource (RFC 4287) xml: name: content namespace: http://www.w3.org/2005/Atom properties: type: type: string description: Content media type (typically 'application/xml') AtomLink: type: object description: Atom link element (RFC 4287) xml: name: link namespace: http://www.w3.org/2005/Atom properties: href: type: string format: uri description: Link URI rel: type: string description: Link relationship type (e.g., 'self', 'up') type: type: string description: Media type (e.g., 'application/atom+xml') AtomFeed: type: object description: Atom Feed (RFC 4287) containing ESPI resources xml: name: feed namespace: http://www.w3.org/2005/Atom properties: id: type: string format: uri description: Feed identifier title: type: string description: Feed title updated: type: string format: date-time description: ISO 8601 timestamp of last feed update link: type: array items: $ref: '#/components/schemas/AtomLink' description: Feed links (minimum 1 required per Atom spec) entry: type: array items: $ref: '#/components/schemas/AtomEntry' description: Feed entries containing ESPI resources securitySchemes: oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://sandbox.greenbuttonalliance.org:8443/oauth/authorize tokenUrl: https://sandbox.greenbuttonalliance.org:8443/oauth/token scopes: {} clientCredentials: tokenUrl: https://sandbox.greenbuttonalliance.org:8443/oauth/token scopes: {}