openapi: 3.1.1 info: title: EV Charging — Charging Service Attributes (v1) version: 1.0.0 x-profile-id: profiles/ev-charging/ev_charging/v1.0/charging-service description: > Attribute schemas for EV charging services (Item.attributes). These attributes are attached to Item.attributes to provide technical and contextual details of a charging connector or station including connector type, power capacity, socket count, reservation capability, and amenities. NOTES: • This pack only defines attributes that are NOT already modeled by core Beckn schemas. • Core fields (name/descriptor, images/URL, category, availableAt/location, validity windows, item availability window, offer price snapshot, eligibility, order state, fulfillment start/end times, etc.) should be taken from the core Beckn objects (Catalog/Item/Offer/Order/Fulfillment). • Where applicable, this pack REUSES core schemas via $ref to the forked specs you provided. components: schemas: ######################################################################## # ITEM.ATTRIBUTES — ChargingService (pruned; EV-specific only) ######################################################################## ChargingService: type: object additionalProperties: false required: - connectorType - maxPowerKW x-jsonld: "@context": ./context.jsonld "@type": ChargingService properties: evseId: type: string description: EVSE identifier (e.g., OCPI/Hubject style). example: "IN*ECO*01*CCS2*A" x-jsonld: { "@id": evseId } # EV-specific technicals connectorType: type: string enum: [CCS2, Type2, CHAdeMO, GB_T] description: Physical connector type supported by this EVSE. example: CCS2 x-jsonld: { "@id": connectorType } maxPowerKW: type: number minimum: 1 maximum: 500 description: Maximum output power of the connector (kW). example: 60 x-jsonld: { "@id": maxPowerKW } minPowerKW: type: number minimum: 0 maximum: 500 description: Minimum controllable power if throttling supported (kW). example: 5 x-jsonld: { "@id": minPowerKW } reservationSupported: type: boolean default: true description: Whether advance reservations are supported. x-jsonld: { "@id": reservationSupported } # Charging Station: Object containing station ID and location chargingStation: type: object description: Charging station information including station ID and location. x-jsonld: { "@id": chargingStation } properties: id: type: string description: Unique identifier for the charging station (chargingStationId). example: "IN-ECO-MDY-STATION-01" x-jsonld: { "@id": "beckn:id" } serviceLocation: allOf: - $ref: "https://raw.githubusercontent.com/beckn/protocol-specifications-v2/tags/core-2.0.0-rc-eos-release/schema/core/v2/attributes.yaml#/components/schemas/Location" - type: object description: Location of the charging site (reuses Beckn Location). x-jsonld: { "@id": serviceLocation } example: "@type": "beckn:Location" geo: type: "Point" coordinates: [77.6104, 12.9153] address: streetAddress: "EcoPower BTM Hub, 100 Ft Rd" addressLocality: "Bengaluru" addressRegion: "Karnataka" postalCode: "560076" addressCountry: "IN" example: id: "IN-ECO-MDY-STATION-01" serviceLocation: "@type": "beckn:Location" geo: type: "Point" coordinates: [77.6104, 12.9153] address: streetAddress: "EcoPower BTM Hub, 100 Ft Rd" addressLocality: "Bengaluru" addressRegion: "Karnataka" postalCode: "560076" addressCountry: "IN" amenityFeature: type: array items: type: string enum: ["RESTAURANT", "RESTROOM", "WI-FI", "PARKING"] description: Nearby amenities (e.g., Restaurant, Restroom, Wi-Fi). example: ["RESTAURANT", "RESTROOM"] x-jsonld: { "@id": amenityFeature } roamingNetwork: type: string description: Roaming network name if applicable. example: "GreenRoam" x-jsonld: { "@id": roamingNetwork } parkingType: type: string enum: [OnStreet, OffStreet, Basement, Mall, FuelStation, Office, Hotel] description: Parking context of the station. example: "Mall" x-jsonld: { "@id": parkingType } powerType: type: string enum: [AC_SINGLE_PHASE, AC_3_PHASE, DC] description: Electrical system type at the connector. example: "DC" x-jsonld: { "@id": powerType } connectorFormat: type: string enum: [SOCKET, CABLE] description: Whether the gun is tethered (CABLE) or socketed (SOCKET). example: "CABLE" x-jsonld: { "@id": connectorFormat } chargingSpeed: type: string enum: [SLOW, NORMAL, FAST, ULTRAFAST] description: Marketing band for comprehension. example: "FAST" x-jsonld: { "@id": chargingSpeed } vehicleType: type: string enum: ["2-WHEELER", "3-WHEELER", "4-WHEELER"] description: Type of vehicle that can use this charging service. example: "4-WHEELER" x-jsonld: { "@id": vehicleType }