nex providers
This commit is contained in:
11
README.md
11
README.md
@@ -69,11 +69,18 @@ The specification is expected to support provider capability discovery instead o
|
|||||||
| Google Travel Impact Model (various versions) | ✅ | ❌ | ❌ | ❌ | ❌ |
|
| Google Travel Impact Model (various versions) | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||||
| myclimate Flight Calculator V1 & V2 | ✅ | ❌ | ❌ | ❌ | ❌ |
|
| myclimate Flight Calculator V1 & V2 | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||||
| myclimate Bulk Flight Calculator | ✅ | ❌ | ❌ | ❌ | ❌ |
|
| myclimate Bulk Flight Calculator | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||||
| GoClimate Flight Footprint | ✅ | ✅ | ✅ | ✅ | ❌ |
|
|
||||||
| C-Level Carbon Balance API | ✅ | ❌ | ❌ | ❌ | ❌ |
|
| C-Level Carbon Balance API | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||||
| KlimaLink API | ✅ | ❌ | ❌ | ❌ | ❌ |
|
| KlimaLink API | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||||
| KlimAPI Calculation & Compensation API (v1 & v2) | ✅ | ❌ | ❌ | ❌ | ❌ |
|
| KlimAPI Calculation & Compensation API (v1 & v2) | ✅ | ✅ | ✅ | ❌ | ❌ |
|
||||||
| calco2la.to | ✅ | ✅ | ✅ | ✅ | ✅ |
|
| calco2la.to | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||||
|
| GoClimate Flight Footprint | ✅ | ✅ | ✅ | ✅ | ❌ |
|
||||||
|
| Climatiq | ✅ | ✅ | ✅ | ❌ | ❌ |
|
||||||
|
| Carbon Interface | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||||
|
| TravelCO2 | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||||
|
| Sustainable Travel International (STI) | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||||
|
| CarbonTracer (Uni Graz) | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||||
|
| IBM Environmental Intelligence Suite (EIS) | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||||
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
291
providers.xml
291
providers.xml
@@ -156,6 +156,121 @@
|
|||||||
</operation>
|
</operation>
|
||||||
</operations>
|
</operations>
|
||||||
</provider>
|
</provider>
|
||||||
|
<provider id="carboninterface">
|
||||||
|
<name>Carbon Interface</name>
|
||||||
|
<baseUrl>https://www.carboninterface.com/api/v1</baseUrl>
|
||||||
|
<auth type="bearer">
|
||||||
|
<envKey>CARBONINTERFACE_API_KEY</envKey>
|
||||||
|
</auth>
|
||||||
|
<operations>
|
||||||
|
<operation id="travel.flight.estimate_emissions">
|
||||||
|
<http method="POST" path="/estimates" />
|
||||||
|
<requestBody format="json">
|
||||||
|
{
|
||||||
|
"type": "flight",
|
||||||
|
"passengers": ${request.passengers},
|
||||||
|
"legs": [
|
||||||
|
#for leg in request.legs
|
||||||
|
{
|
||||||
|
"departure_airport": "${leg.origin_iata}",
|
||||||
|
"destination_airport": "${leg.destination_iata}"
|
||||||
|
}#sep,
|
||||||
|
#end
|
||||||
|
]
|
||||||
|
}
|
||||||
|
</requestBody>
|
||||||
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||||
|
<constant target="EmissionCalculationResult.provider" value="carboninterface" />
|
||||||
|
<constant target="EmissionCalculationResult.domain" value="travel.flight" />
|
||||||
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions" />
|
||||||
|
<field source="$.data.attributes.carbon_kg" target="EmissionCalculationResult.total.co2eKg" />
|
||||||
|
<field source="$.data.attributes.carbon_mt" target="EmissionCalculationResult.total.co2eTonnes" />
|
||||||
|
<constant target="EmissionCalculationResult.total.unit" value="kg" />
|
||||||
|
<constant target="EmissionCalculationResult.total.per" value="request" />
|
||||||
|
<field source="$.data.id" target="EmissionCalculationResult.quote.id" />
|
||||||
|
<field source="$.data.attributes.passengers" target="EmissionCalculationResult.passengerCount" />
|
||||||
|
<field source="$.data.attributes.distance_value" target="EmissionCalculationResult.distance.value" />
|
||||||
|
<field source="$.data.attributes.distance_unit" target="EmissionCalculationResult.distance.unit" />
|
||||||
|
<field source="$.data.attributes.estimated_at" target="EmissionCalculationResult.methodology.datasetVersion" />
|
||||||
|
<constant target="EmissionCalculationResult.methodology.vendor" value="Carbon Interface" />
|
||||||
|
<list source="$.data.attributes.legs[*]" target="EmissionCalculationResult.segments" itemType="SegmentEmissionResult">
|
||||||
|
<field source="$.departure_airport" target="SegmentEmissionResult.origin.iata" />
|
||||||
|
<field source="$.destination_airport" target="SegmentEmissionResult.destination.iata" />
|
||||||
|
<field source="$" target="SegmentEmissionResult.vendorRaw" />
|
||||||
|
</list>
|
||||||
|
<field source="$" target="EmissionCalculationResult.vendorRaw" />
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
</operations>
|
||||||
|
</provider>
|
||||||
|
<provider id="carbontracer">
|
||||||
|
<name>CarbonTracer Uni Graz</name>
|
||||||
|
<baseUrl>https://api.carbontracer.uni-graz.at</baseUrl>
|
||||||
|
<auth type="pathApiKey">
|
||||||
|
<envKey>CARBONTRACER_API_KEY</envKey>
|
||||||
|
<placeholder>apikey</placeholder>
|
||||||
|
</auth>
|
||||||
|
<operations>
|
||||||
|
<operation id="travel.flight.estimate_emissions">
|
||||||
|
<http method="GET" path="/routing/${env.CARBONTRACER_API_KEY}/${request.vendor_options.carbontracer_type}/${request.legs[0].origin_iata}/${request.legs[0].destination_iata}/options=airports" />
|
||||||
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||||
|
<constant target="EmissionCalculationResult.provider" value="carbontracer" />
|
||||||
|
<constant target="EmissionCalculationResult.domain" value="travel.flight" />
|
||||||
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions" />
|
||||||
|
<field source="$.response.success" target="EmissionCalculationResult.vendorRaw.success" />
|
||||||
|
<field source="$.response.warning" target="EmissionCalculationResult.vendorRaw.warning" />
|
||||||
|
<field source="$.response.errors" target="EmissionCalculationResult.errors" />
|
||||||
|
<field source="$.response.data.co2eq_occupancy" target="EmissionCalculationResult.total.co2eKg" />
|
||||||
|
<field source="$.response.data.unitco2eq" target="EmissionCalculationResult.total.unit" />
|
||||||
|
<constant target="EmissionCalculationResult.total.per" value="passenger" />
|
||||||
|
<field source="$.response.data.distanceRoute" target="EmissionCalculationResult.distance.value" />
|
||||||
|
<field source="$.response.data.unitdistance" target="EmissionCalculationResult.distance.unit" />
|
||||||
|
<field source="$.response.data.startLocation.label" target="EmissionCalculationResult.segments[0].origin.name" />
|
||||||
|
<field source="$.response.data.startLocation.country" target="EmissionCalculationResult.segments[0].origin.country" />
|
||||||
|
<field source="$.response.data.startLocation.Longitude" target="EmissionCalculationResult.segments[0].origin.lon" />
|
||||||
|
<field source="$.response.data.startLocation.latitute" target="EmissionCalculationResult.segments[0].origin.lat" />
|
||||||
|
<field source="$.response.data.endLocation.label" target="EmissionCalculationResult.segments[0].destination.name" />
|
||||||
|
<field source="$.response.data.endLocation.country" target="EmissionCalculationResult.segments[0].destination.country" />
|
||||||
|
<field source="$.response.data.endLocation.Longitude" target="EmissionCalculationResult.segments[0].destination.lon" />
|
||||||
|
<field source="$.response.data.endLocation.latitute" target="EmissionCalculationResult.segments[0].destination.lat" />
|
||||||
|
<field source="$.response.data.requestType" target="EmissionCalculationResult.segments[0].type" />
|
||||||
|
<field source="$.response.data.co2eq" target="EmissionCalculationResult.segments[0].emissions.co2eKg" />
|
||||||
|
<field source="$.response.data.occupancy" target="EmissionCalculationResult.segments[0].passengerCount" />
|
||||||
|
<field source="$.response.data.distanceRoute" target="EmissionCalculationResult.segments[0].distance.value" />
|
||||||
|
<field source="$.response.data.unitdistance" target="EmissionCalculationResult.segments[0].distance.unit" />
|
||||||
|
<field source="$" target="EmissionCalculationResult.vendorRaw" />
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
<operation id="travel.flight.estimate_emissions.distance">
|
||||||
|
<http method="GET" path="/co2only/${env.CARBONTRACER_API_KEY}/${request.vendor_options.carbontracer_type}/${request.legs[0].distance_km}" />
|
||||||
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||||
|
<constant target="EmissionCalculationResult.provider" value="carbontracer" />
|
||||||
|
<constant target="EmissionCalculationResult.domain" value="travel.flight" />
|
||||||
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions.distance" />
|
||||||
|
<field source="$.response.success" target="EmissionCalculationResult.vendorRaw.success" />
|
||||||
|
<field source="$.response.warning" target="EmissionCalculationResult.vendorRaw.warning" />
|
||||||
|
<field source="$.response.errors" target="EmissionCalculationResult.errors" />
|
||||||
|
<field source="$.response.data.co2eq" target="EmissionCalculationResult.total.co2eKg" />
|
||||||
|
<field source="$.response.data.unitco2eq" target="EmissionCalculationResult.total.unit" />
|
||||||
|
<field source="$.response.data.distance" target="EmissionCalculationResult.distance.value" />
|
||||||
|
<field source="$.response.data.unitdistance" target="EmissionCalculationResult.distance.unit" />
|
||||||
|
<field source="$.response.data.requestType" target="EmissionCalculationResult.segments[0].type" />
|
||||||
|
<field source="$" target="EmissionCalculationResult.vendorRaw" />
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
<operation id="travel.location.search">
|
||||||
|
<http method="GET" path="/location/${env.CARBONTRACER_API_KEY}/${request.query}" />
|
||||||
|
<responseMapping mode="single" rootType="LocationRef">
|
||||||
|
<field source="$.response.data.country" target="LocationRef.country" />
|
||||||
|
<field source="$.response.data.city" target="LocationRef.city" />
|
||||||
|
<field source="$.response.data.label" target="LocationRef.name" />
|
||||||
|
<field source="$.response.data.Longitude" target="LocationRef.lon" />
|
||||||
|
<field source="$.response.data.latitute" target="LocationRef.lat" />
|
||||||
|
<field source="$" target="LocationRef.vendorRaw" />
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
</operations>
|
||||||
|
</provider>
|
||||||
<provider id="clevel">
|
<provider id="clevel">
|
||||||
<name>C-Level Carbon Balance API</name>
|
<name>C-Level Carbon Balance API</name>
|
||||||
<baseUrl>https://api.c-level.earth</baseUrl>
|
<baseUrl>https://api.c-level.earth</baseUrl>
|
||||||
@@ -205,6 +320,57 @@
|
|||||||
</operation>
|
</operation>
|
||||||
</operations>
|
</operations>
|
||||||
</provider>
|
</provider>
|
||||||
|
<provider id="climatiq_travel_preview3">
|
||||||
|
<name>Climatiq Travel v1-preview3</name>
|
||||||
|
<baseUrl>https://preview.api.climatiq.io</baseUrl>
|
||||||
|
<auth type="bearer">
|
||||||
|
<envKey>CLIMATIQ_API_KEY</envKey>
|
||||||
|
</auth>
|
||||||
|
<operations>
|
||||||
|
<operation id="travel.flight.estimate_emissions">
|
||||||
|
<http method="POST" path="/travel/v1-preview3/distance" />
|
||||||
|
<requestBody format="json">
|
||||||
|
{
|
||||||
|
"travel_mode": "air",
|
||||||
|
"origin": {
|
||||||
|
"iata": "${request.legs[0].origin_iata}"
|
||||||
|
},
|
||||||
|
"destination": {
|
||||||
|
"iata": "${request.legs[0].destination_iata}"
|
||||||
|
},
|
||||||
|
"year": ${request.vendor_options.climatiq_year},
|
||||||
|
"distance_km": ${request.legs[0].distance_km},
|
||||||
|
"air_details": ${request.vendor_options.climatiq_air_details}
|
||||||
|
}
|
||||||
|
</requestBody>
|
||||||
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||||
|
<constant target="EmissionCalculationResult.provider" value="climatiq_travel_preview3" />
|
||||||
|
<constant target="EmissionCalculationResult.domain" value="travel.flight" />
|
||||||
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions" />
|
||||||
|
<field source="$.co2e" target="EmissionCalculationResult.total.co2eKg" />
|
||||||
|
<field source="$.co2e_unit" target="EmissionCalculationResult.total.unit" />
|
||||||
|
<constant target="EmissionCalculationResult.total.per" value="passenger" />
|
||||||
|
<field source="$.distance_km" target="EmissionCalculationResult.distance.value" />
|
||||||
|
<constant target="EmissionCalculationResult.distance.unit" value="km" />
|
||||||
|
<field source="$.co2e_calculation_method" target="EmissionCalculationResult.methodology.methodName" />
|
||||||
|
<constant target="EmissionCalculationResult.methodology.vendor" value="Climatiq" />
|
||||||
|
<constant target="EmissionCalculationResult.methodology.documentationUrl" value="https://www.climatiq.io/docs/api-reference/travel" />
|
||||||
|
<field source="$.origin.name" target="EmissionCalculationResult.segments[0].origin.name" />
|
||||||
|
<field source="$.origin.latitude" target="EmissionCalculationResult.segments[0].origin.lat" />
|
||||||
|
<field source="$.origin.longitude" target="EmissionCalculationResult.segments[0].origin.lon" />
|
||||||
|
<field source="$.destination.name" target="EmissionCalculationResult.segments[0].destination.name" />
|
||||||
|
<field source="$.destination.latitude" target="EmissionCalculationResult.segments[0].destination.lat" />
|
||||||
|
<field source="$.destination.longitude" target="EmissionCalculationResult.segments[0].destination.lon" />
|
||||||
|
<field source="$.direct_emissions.co2e" target="EmissionCalculationResult.segments[0].emissions.co2eKg" />
|
||||||
|
<field source="$.direct_emissions.co2e_unit" target="EmissionCalculationResult.segments[0].emissions.unit" />
|
||||||
|
<field source="$.indirect_emissions.co2e" target="EmissionCalculationResult.segments[0].vendorRaw.indirectEmissionsKg" />
|
||||||
|
<field source="$.notices" target="EmissionCalculationResult.metadata.notices" />
|
||||||
|
<field source="$.source_trail" target="EmissionCalculationResult.metadata.sourceTrail" />
|
||||||
|
<field source="$" target="EmissionCalculationResult.vendorRaw" />
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
</operations>
|
||||||
|
</provider>
|
||||||
<provider id="goclimate">
|
<provider id="goclimate">
|
||||||
<name>GoClimate Flight Footprint</name>
|
<name>GoClimate Flight Footprint</name>
|
||||||
<baseUrl>https://api.goclimate.com</baseUrl>
|
<baseUrl>https://api.goclimate.com</baseUrl>
|
||||||
@@ -289,6 +455,72 @@
|
|||||||
</operation>
|
</operation>
|
||||||
</operations>
|
</operations>
|
||||||
</provider>
|
</provider>
|
||||||
|
<provider id="ibm_eis_transport">
|
||||||
|
<name>IBM Environmental Intelligence Suite - Carbon Accounting Transport</name>
|
||||||
|
<baseUrl>https://foundation.agtech.ibm.com/v2/carbon</baseUrl>
|
||||||
|
<auth type="bearer">
|
||||||
|
<envKey>IBM_EIS_BEARER_TOKEN</envKey>
|
||||||
|
</auth>
|
||||||
|
<operations>
|
||||||
|
<operation id="travel.flight.estimate_emissions.distance">
|
||||||
|
<http method="POST" path="/carbon/transportation_and_distribution" />
|
||||||
|
<requestBody format="json">
|
||||||
|
{
|
||||||
|
"customID": {
|
||||||
|
"id": "${request.reference}"
|
||||||
|
},
|
||||||
|
"onBehalfOfClient": {
|
||||||
|
"companyId": "${request.vendor_options.ibm_company_id}",
|
||||||
|
"companyName": "${request.vendor_options.ibm_company_name}"
|
||||||
|
},
|
||||||
|
"organisation": {
|
||||||
|
"departmentId": "${request.vendor_options.ibm_department_id}",
|
||||||
|
"departmentName": "${request.vendor_options.ibm_department_name}"
|
||||||
|
},
|
||||||
|
"requestType": "${request.vendor_options.ibm_request_type}",
|
||||||
|
"location": {
|
||||||
|
"country": "${request.vendor_options.ibm_country}",
|
||||||
|
"stateProvince": "${request.vendor_options.ibm_state_province}",
|
||||||
|
"zipPostCode": "${request.vendor_options.ibm_zip_post_code}",
|
||||||
|
"city": "${request.vendor_options.ibm_city}"
|
||||||
|
},
|
||||||
|
"site": {
|
||||||
|
"siteId": "${request.vendor_options.ibm_site_id}",
|
||||||
|
"siteName": "${request.vendor_options.ibm_site_name}",
|
||||||
|
"buildingId": "${request.vendor_options.ibm_building_id}",
|
||||||
|
"buildingName": "${request.vendor_options.ibm_building_name}"
|
||||||
|
},
|
||||||
|
"timePeriod": {
|
||||||
|
"year": ${request.vendor_options.ibm_year},
|
||||||
|
"month": ${request.vendor_options.ibm_month}
|
||||||
|
},
|
||||||
|
"activityData": {
|
||||||
|
"typeOfActivityData": "Passenger distance",
|
||||||
|
"vehicleType": "${request.vendor_options.ibm_vehicle_type}",
|
||||||
|
"distanceTravelled": "${request.legs[0].distance_km}",
|
||||||
|
"numberOfPassengers": ${request.passengers},
|
||||||
|
"unitOfMeasurement": "passenger kilometer",
|
||||||
|
"fuelUsed": "",
|
||||||
|
"fuelAmount": "",
|
||||||
|
"unitOfFuelAmount": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</requestBody>
|
||||||
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||||
|
<constant target="EmissionCalculationResult.provider" value="ibm_eis_transport" />
|
||||||
|
<constant target="EmissionCalculationResult.domain" value="travel.flight" />
|
||||||
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions.distance" />
|
||||||
|
<constant target="EmissionCalculationResult.methodology.vendor" value="IBM Environmental Intelligence Suite" />
|
||||||
|
<constant target="EmissionCalculationResult.methodology.documentationUrl" value="https://foundation.agtech.ibm.com/v2/docs/" />
|
||||||
|
<field source="$.co2e" target="EmissionCalculationResult.total.co2eKg" />
|
||||||
|
<field source="$.co2e_kg" target="EmissionCalculationResult.total.co2eKg" />
|
||||||
|
<field source="$.emissions.co2e" target="EmissionCalculationResult.total.co2eKg" />
|
||||||
|
<field source="$.result.co2e" target="EmissionCalculationResult.total.co2eKg" />
|
||||||
|
<field source="$" target="EmissionCalculationResult.vendorRaw" />
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
</operations>
|
||||||
|
</provider>
|
||||||
<provider id="klimalink">
|
<provider id="klimalink">
|
||||||
<name>KlimaLink API</name>
|
<name>KlimaLink API</name>
|
||||||
<baseUrl>https://api.dev.klimalink.org</baseUrl>
|
<baseUrl>https://api.dev.klimalink.org</baseUrl>
|
||||||
@@ -692,4 +924,63 @@
|
|||||||
</operation>
|
</operation>
|
||||||
</operations>
|
</operations>
|
||||||
</provider>
|
</provider>
|
||||||
|
<provider id="travelco2">
|
||||||
|
<name>TravelCO2 Transport API</name>
|
||||||
|
<baseUrl>https://travelco2.com</baseUrl>
|
||||||
|
<auth type="bearer">
|
||||||
|
<envKey>TRAVELCO2_API_KEY</envKey>
|
||||||
|
</auth>
|
||||||
|
<operations>
|
||||||
|
<operation id="travel.flight.estimate_emissions.distance">
|
||||||
|
<http method="POST" path="/api/v1/transport" />
|
||||||
|
<headers>
|
||||||
|
<header name="Accept" value="application/json" />
|
||||||
|
<header name="Content-Type" value="application/json" />
|
||||||
|
</headers>
|
||||||
|
<requestBody format="json">
|
||||||
|
{
|
||||||
|
"vehicle": {
|
||||||
|
"type": "${request.vendor_options.travelco2_vehicle_type}",
|
||||||
|
"fuel": {
|
||||||
|
"type": "${request.vendor_options.travelco2_fuel_type}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"distance": ${request.legs[0].distance_m},
|
||||||
|
"people": ${request.passengers},
|
||||||
|
"language": "${request.vendor_options.travelco2_language}"
|
||||||
|
}
|
||||||
|
</requestBody>
|
||||||
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||||
|
<constant target="EmissionCalculationResult.provider" value="travelco2" />
|
||||||
|
<constant target="EmissionCalculationResult.domain" value="travel.flight" />
|
||||||
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions.distance" />
|
||||||
|
<field source="$.co2e" target="EmissionCalculationResult.total.co2eKg" />
|
||||||
|
<constant target="EmissionCalculationResult.total.unit" value="kg" />
|
||||||
|
<constant target="EmissionCalculationResult.total.per" value="request" />
|
||||||
|
<field source="$.co2e_pp" target="EmissionCalculationResult.perPassenger.co2eKg" />
|
||||||
|
<constant target="EmissionCalculationResult.perPassenger.unit" value="kg" />
|
||||||
|
<constant target="EmissionCalculationResult.perPassenger.per" value="passenger" />
|
||||||
|
<field source="$.distance" target="EmissionCalculationResult.distance.value" />
|
||||||
|
<constant target="EmissionCalculationResult.distance.unit" value="m" />
|
||||||
|
<field source="$.people" target="EmissionCalculationResult.passengerCount" />
|
||||||
|
<field source="$.ways" target="EmissionCalculationResult.vendorRaw.ways" />
|
||||||
|
<field source="$.type" target="EmissionCalculationResult.segments[0].type" />
|
||||||
|
<field source="$.title" target="EmissionCalculationResult.description" />
|
||||||
|
<field source="$.vehicle.type" target="EmissionCalculationResult.segments[0].vendorRaw.vehicleType" />
|
||||||
|
<field source="$.vehicle.title" target="EmissionCalculationResult.segments[0].vendorRaw.vehicleTitle" />
|
||||||
|
<field source="$.vehicle.vehicle_count" target="EmissionCalculationResult.segments[0].vendorRaw.vehicleCount" />
|
||||||
|
<field source="$.vehicle.fuel.type" target="EmissionCalculationResult.segments[0].vendorRaw.fuelType" />
|
||||||
|
<field source="$.vehicle.fuel.title" target="EmissionCalculationResult.segments[0].vendorRaw.fuelTitle" />
|
||||||
|
<field source="$.co2e" target="EmissionCalculationResult.segments[0].emissions.co2eKg" />
|
||||||
|
<field source="$.co2e_pp" target="EmissionCalculationResult.segments[0].vendorRaw.co2ePerPersonKg" />
|
||||||
|
<field source="$.distance" target="EmissionCalculationResult.segments[0].distance.value" />
|
||||||
|
<constant target="EmissionCalculationResult.segments[0].distance.unit" value="m" />
|
||||||
|
<constant target="EmissionCalculationResult.methodology.vendor" value="TravelCO2" />
|
||||||
|
<constant target="EmissionCalculationResult.methodology.methodName" value="TravelCO2 Transport API" />
|
||||||
|
<constant target="EmissionCalculationResult.methodology.documentationUrl" value="https://travelco2.com/documentation" />
|
||||||
|
<field source="$" target="EmissionCalculationResult.vendorRaw" />
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
</operations>
|
||||||
|
</provider>
|
||||||
</providers>
|
</providers>
|
||||||
50
providers/carboninterface/carboninterface.xml
Normal file
50
providers/carboninterface/carboninterface.xml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<providers xmlns="https://calco2la.to/schema/providers/v1">
|
||||||
|
<provider id="carboninterface">
|
||||||
|
<name>Carbon Interface</name>
|
||||||
|
<baseUrl>https://www.carboninterface.com/api/v1</baseUrl>
|
||||||
|
<auth type="bearer">
|
||||||
|
<envKey>CARBONINTERFACE_API_KEY</envKey>
|
||||||
|
</auth>
|
||||||
|
<operations>
|
||||||
|
<operation id="travel.flight.estimate_emissions">
|
||||||
|
<http method="POST" path="/estimates"/>
|
||||||
|
<requestBody format="json">
|
||||||
|
{
|
||||||
|
"type": "flight",
|
||||||
|
"passengers": ${request.passengers},
|
||||||
|
"legs": [
|
||||||
|
#for leg in request.legs
|
||||||
|
{
|
||||||
|
"departure_airport": "${leg.origin_iata}",
|
||||||
|
"destination_airport": "${leg.destination_iata}"
|
||||||
|
}#sep,
|
||||||
|
#end
|
||||||
|
]
|
||||||
|
}
|
||||||
|
</requestBody>
|
||||||
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||||
|
<constant target="EmissionCalculationResult.provider" value="carboninterface"/>
|
||||||
|
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
|
||||||
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions"/>
|
||||||
|
<field source="$.data.attributes.carbon_kg" target="EmissionCalculationResult.total.co2eKg"/>
|
||||||
|
<field source="$.data.attributes.carbon_mt" target="EmissionCalculationResult.total.co2eTonnes"/>
|
||||||
|
<constant target="EmissionCalculationResult.total.unit" value="kg"/>
|
||||||
|
<constant target="EmissionCalculationResult.total.per" value="request"/>
|
||||||
|
<field source="$.data.id" target="EmissionCalculationResult.quote.id"/>
|
||||||
|
<field source="$.data.attributes.passengers" target="EmissionCalculationResult.passengerCount"/>
|
||||||
|
<field source="$.data.attributes.distance_value" target="EmissionCalculationResult.distance.value"/>
|
||||||
|
<field source="$.data.attributes.distance_unit" target="EmissionCalculationResult.distance.unit"/>
|
||||||
|
<field source="$.data.attributes.estimated_at" target="EmissionCalculationResult.methodology.datasetVersion"/>
|
||||||
|
<constant target="EmissionCalculationResult.methodology.vendor" value="Carbon Interface"/>
|
||||||
|
<list source="$.data.attributes.legs[*]" target="EmissionCalculationResult.segments" itemType="SegmentEmissionResult">
|
||||||
|
<field source="$.departure_airport" target="SegmentEmissionResult.origin.iata"/>
|
||||||
|
<field source="$.destination_airport" target="SegmentEmissionResult.destination.iata"/>
|
||||||
|
<field source="$" target="SegmentEmissionResult.vendorRaw"/>
|
||||||
|
</list>
|
||||||
|
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
</operations>
|
||||||
|
</provider>
|
||||||
|
</providers>
|
||||||
71
providers/carbontracer/carbontracer.xml
Normal file
71
providers/carbontracer/carbontracer.xml
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<providers xmlns="https://calco2la.to/schema/providers/v1">
|
||||||
|
<provider id="carbontracer">
|
||||||
|
<name>CarbonTracer Uni Graz</name>
|
||||||
|
<baseUrl>https://api.carbontracer.uni-graz.at</baseUrl>
|
||||||
|
<auth type="pathApiKey">
|
||||||
|
<envKey>CARBONTRACER_API_KEY</envKey>
|
||||||
|
<placeholder>apikey</placeholder>
|
||||||
|
</auth>
|
||||||
|
<operations>
|
||||||
|
<operation id="travel.flight.estimate_emissions">
|
||||||
|
<http method="GET" path="/routing/${env.CARBONTRACER_API_KEY}/${request.vendor_options.carbontracer_type}/${request.legs[0].origin_iata}/${request.legs[0].destination_iata}/options=airports"/>
|
||||||
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||||
|
<constant target="EmissionCalculationResult.provider" value="carbontracer"/>
|
||||||
|
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
|
||||||
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions"/>
|
||||||
|
<field source="$.response.success" target="EmissionCalculationResult.vendorRaw.success"/>
|
||||||
|
<field source="$.response.warning" target="EmissionCalculationResult.vendorRaw.warning"/>
|
||||||
|
<field source="$.response.errors" target="EmissionCalculationResult.errors"/>
|
||||||
|
<field source="$.response.data.co2eq_occupancy" target="EmissionCalculationResult.total.co2eKg"/>
|
||||||
|
<field source="$.response.data.unitco2eq" target="EmissionCalculationResult.total.unit"/>
|
||||||
|
<constant target="EmissionCalculationResult.total.per" value="passenger"/>
|
||||||
|
<field source="$.response.data.distanceRoute" target="EmissionCalculationResult.distance.value"/>
|
||||||
|
<field source="$.response.data.unitdistance" target="EmissionCalculationResult.distance.unit"/>
|
||||||
|
<field source="$.response.data.startLocation.label" target="EmissionCalculationResult.segments[0].origin.name"/>
|
||||||
|
<field source="$.response.data.startLocation.country" target="EmissionCalculationResult.segments[0].origin.country"/>
|
||||||
|
<field source="$.response.data.startLocation.Longitude" target="EmissionCalculationResult.segments[0].origin.lon"/>
|
||||||
|
<field source="$.response.data.startLocation.latitute" target="EmissionCalculationResult.segments[0].origin.lat"/>
|
||||||
|
<field source="$.response.data.endLocation.label" target="EmissionCalculationResult.segments[0].destination.name"/>
|
||||||
|
<field source="$.response.data.endLocation.country" target="EmissionCalculationResult.segments[0].destination.country"/>
|
||||||
|
<field source="$.response.data.endLocation.Longitude" target="EmissionCalculationResult.segments[0].destination.lon"/>
|
||||||
|
<field source="$.response.data.endLocation.latitute" target="EmissionCalculationResult.segments[0].destination.lat"/>
|
||||||
|
<field source="$.response.data.requestType" target="EmissionCalculationResult.segments[0].type"/>
|
||||||
|
<field source="$.response.data.co2eq" target="EmissionCalculationResult.segments[0].emissions.co2eKg"/>
|
||||||
|
<field source="$.response.data.occupancy" target="EmissionCalculationResult.segments[0].passengerCount"/>
|
||||||
|
<field source="$.response.data.distanceRoute" target="EmissionCalculationResult.segments[0].distance.value"/>
|
||||||
|
<field source="$.response.data.unitdistance" target="EmissionCalculationResult.segments[0].distance.unit"/>
|
||||||
|
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
<operation id="travel.flight.estimate_emissions.distance">
|
||||||
|
<http method="GET" path="/co2only/${env.CARBONTRACER_API_KEY}/${request.vendor_options.carbontracer_type}/${request.legs[0].distance_km}"/>
|
||||||
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||||
|
<constant target="EmissionCalculationResult.provider" value="carbontracer"/>
|
||||||
|
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
|
||||||
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions.distance"/>
|
||||||
|
<field source="$.response.success" target="EmissionCalculationResult.vendorRaw.success"/>
|
||||||
|
<field source="$.response.warning" target="EmissionCalculationResult.vendorRaw.warning"/>
|
||||||
|
<field source="$.response.errors" target="EmissionCalculationResult.errors"/>
|
||||||
|
<field source="$.response.data.co2eq" target="EmissionCalculationResult.total.co2eKg"/>
|
||||||
|
<field source="$.response.data.unitco2eq" target="EmissionCalculationResult.total.unit"/>
|
||||||
|
<field source="$.response.data.distance" target="EmissionCalculationResult.distance.value"/>
|
||||||
|
<field source="$.response.data.unitdistance" target="EmissionCalculationResult.distance.unit"/>
|
||||||
|
<field source="$.response.data.requestType" target="EmissionCalculationResult.segments[0].type"/>
|
||||||
|
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
<operation id="travel.location.search">
|
||||||
|
<http method="GET" path="/location/${env.CARBONTRACER_API_KEY}/${request.query}"/>
|
||||||
|
<responseMapping mode="single" rootType="LocationRef">
|
||||||
|
<field source="$.response.data.country" target="LocationRef.country"/>
|
||||||
|
<field source="$.response.data.city" target="LocationRef.city"/>
|
||||||
|
<field source="$.response.data.label" target="LocationRef.name"/>
|
||||||
|
<field source="$.response.data.Longitude" target="LocationRef.lon"/>
|
||||||
|
<field source="$.response.data.latitute" target="LocationRef.lat"/>
|
||||||
|
<field source="$" target="LocationRef.vendorRaw"/>
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
</operations>
|
||||||
|
</provider>
|
||||||
|
</providers>
|
||||||
54
providers/climatiq/climatiq.xml
Normal file
54
providers/climatiq/climatiq.xml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<providers xmlns="https://calco2la.to/schema/providers/v1">
|
||||||
|
<provider id="climatiq_travel_preview3">
|
||||||
|
<name>Climatiq Travel v1-preview3</name>
|
||||||
|
<baseUrl>https://preview.api.climatiq.io</baseUrl>
|
||||||
|
<auth type="bearer">
|
||||||
|
<envKey>CLIMATIQ_API_KEY</envKey>
|
||||||
|
</auth>
|
||||||
|
<operations>
|
||||||
|
<operation id="travel.flight.estimate_emissions">
|
||||||
|
<http method="POST" path="/travel/v1-preview3/distance"/>
|
||||||
|
<requestBody format="json">
|
||||||
|
{
|
||||||
|
"travel_mode": "air",
|
||||||
|
"origin": {
|
||||||
|
"iata": "${request.legs[0].origin_iata}"
|
||||||
|
},
|
||||||
|
"destination": {
|
||||||
|
"iata": "${request.legs[0].destination_iata}"
|
||||||
|
},
|
||||||
|
"year": ${request.vendor_options.climatiq_year},
|
||||||
|
"distance_km": ${request.legs[0].distance_km},
|
||||||
|
"air_details": ${request.vendor_options.climatiq_air_details}
|
||||||
|
}
|
||||||
|
</requestBody>
|
||||||
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||||
|
<constant target="EmissionCalculationResult.provider" value="climatiq_travel_preview3"/>
|
||||||
|
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
|
||||||
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions"/>
|
||||||
|
<field source="$.co2e" target="EmissionCalculationResult.total.co2eKg"/>
|
||||||
|
<field source="$.co2e_unit" target="EmissionCalculationResult.total.unit"/>
|
||||||
|
<constant target="EmissionCalculationResult.total.per" value="passenger"/>
|
||||||
|
<field source="$.distance_km" target="EmissionCalculationResult.distance.value"/>
|
||||||
|
<constant target="EmissionCalculationResult.distance.unit" value="km"/>
|
||||||
|
<field source="$.co2e_calculation_method" target="EmissionCalculationResult.methodology.methodName"/>
|
||||||
|
<constant target="EmissionCalculationResult.methodology.vendor" value="Climatiq"/>
|
||||||
|
<constant target="EmissionCalculationResult.methodology.documentationUrl" value="https://www.climatiq.io/docs/api-reference/travel"/>
|
||||||
|
<field source="$.origin.name" target="EmissionCalculationResult.segments[0].origin.name"/>
|
||||||
|
<field source="$.origin.latitude" target="EmissionCalculationResult.segments[0].origin.lat"/>
|
||||||
|
<field source="$.origin.longitude" target="EmissionCalculationResult.segments[0].origin.lon"/>
|
||||||
|
<field source="$.destination.name" target="EmissionCalculationResult.segments[0].destination.name"/>
|
||||||
|
<field source="$.destination.latitude" target="EmissionCalculationResult.segments[0].destination.lat"/>
|
||||||
|
<field source="$.destination.longitude" target="EmissionCalculationResult.segments[0].destination.lon"/>
|
||||||
|
<field source="$.direct_emissions.co2e" target="EmissionCalculationResult.segments[0].emissions.co2eKg"/>
|
||||||
|
<field source="$.direct_emissions.co2e_unit" target="EmissionCalculationResult.segments[0].emissions.unit"/>
|
||||||
|
<field source="$.indirect_emissions.co2e" target="EmissionCalculationResult.segments[0].vendorRaw.indirectEmissionsKg"/>
|
||||||
|
<field source="$.notices" target="EmissionCalculationResult.metadata.notices"/>
|
||||||
|
<field source="$.source_trail" target="EmissionCalculationResult.metadata.sourceTrail"/>
|
||||||
|
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
</operations>
|
||||||
|
</provider>
|
||||||
|
</providers>
|
||||||
70
providers/ibm_eis/ibm_eis.xml
Normal file
70
providers/ibm_eis/ibm_eis.xml
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<providers xmlns="https://calco2la.to/schema/providers/v1">
|
||||||
|
<provider id="ibm_eis_transport">
|
||||||
|
<name>IBM Environmental Intelligence Suite - Carbon Accounting Transport</name>
|
||||||
|
<baseUrl>https://foundation.agtech.ibm.com/v2/carbon</baseUrl>
|
||||||
|
<auth type="bearer">
|
||||||
|
<envKey>IBM_EIS_BEARER_TOKEN</envKey>
|
||||||
|
</auth>
|
||||||
|
<operations>
|
||||||
|
<operation id="travel.flight.estimate_emissions.distance">
|
||||||
|
<http method="POST" path="/carbon/transportation_and_distribution"/>
|
||||||
|
<requestBody format="json">
|
||||||
|
{
|
||||||
|
"customID": {
|
||||||
|
"id": "${request.reference}"
|
||||||
|
},
|
||||||
|
"onBehalfOfClient": {
|
||||||
|
"companyId": "${request.vendor_options.ibm_company_id}",
|
||||||
|
"companyName": "${request.vendor_options.ibm_company_name}"
|
||||||
|
},
|
||||||
|
"organisation": {
|
||||||
|
"departmentId": "${request.vendor_options.ibm_department_id}",
|
||||||
|
"departmentName": "${request.vendor_options.ibm_department_name}"
|
||||||
|
},
|
||||||
|
"requestType": "${request.vendor_options.ibm_request_type}",
|
||||||
|
"location": {
|
||||||
|
"country": "${request.vendor_options.ibm_country}",
|
||||||
|
"stateProvince": "${request.vendor_options.ibm_state_province}",
|
||||||
|
"zipPostCode": "${request.vendor_options.ibm_zip_post_code}",
|
||||||
|
"city": "${request.vendor_options.ibm_city}"
|
||||||
|
},
|
||||||
|
"site": {
|
||||||
|
"siteId": "${request.vendor_options.ibm_site_id}",
|
||||||
|
"siteName": "${request.vendor_options.ibm_site_name}",
|
||||||
|
"buildingId": "${request.vendor_options.ibm_building_id}",
|
||||||
|
"buildingName": "${request.vendor_options.ibm_building_name}"
|
||||||
|
},
|
||||||
|
"timePeriod": {
|
||||||
|
"year": ${request.vendor_options.ibm_year},
|
||||||
|
"month": ${request.vendor_options.ibm_month}
|
||||||
|
},
|
||||||
|
"activityData": {
|
||||||
|
"typeOfActivityData": "Passenger distance",
|
||||||
|
"vehicleType": "${request.vendor_options.ibm_vehicle_type}",
|
||||||
|
"distanceTravelled": "${request.legs[0].distance_km}",
|
||||||
|
"numberOfPassengers": ${request.passengers},
|
||||||
|
"unitOfMeasurement": "passenger kilometer",
|
||||||
|
"fuelUsed": "",
|
||||||
|
"fuelAmount": "",
|
||||||
|
"unitOfFuelAmount": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</requestBody>
|
||||||
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||||
|
<constant target="EmissionCalculationResult.provider" value="ibm_eis_transport"/>
|
||||||
|
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
|
||||||
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions.distance"/>
|
||||||
|
<constant target="EmissionCalculationResult.methodology.vendor" value="IBM Environmental Intelligence Suite"/>
|
||||||
|
<constant target="EmissionCalculationResult.methodology.documentationUrl" value="https://foundation.agtech.ibm.com/v2/docs/"/>
|
||||||
|
<!-- TODO: replace once real response schema / sample response is available. -->
|
||||||
|
<field source="$.co2e" target="EmissionCalculationResult.total.co2eKg"/>
|
||||||
|
<field source="$.co2e_kg" target="EmissionCalculationResult.total.co2eKg"/>
|
||||||
|
<field source="$.emissions.co2e" target="EmissionCalculationResult.total.co2eKg"/>
|
||||||
|
<field source="$.result.co2e" target="EmissionCalculationResult.total.co2eKg"/>
|
||||||
|
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
</operations>
|
||||||
|
</provider>
|
||||||
|
</providers>
|
||||||
62
providers/travelco2/travelco2.xml
Normal file
62
providers/travelco2/travelco2.xml
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<providers xmlns="https://calco2la.to/schema/providers/v1">
|
||||||
|
<provider id="travelco2">
|
||||||
|
<name>TravelCO2 Transport API</name>
|
||||||
|
<baseUrl>https://travelco2.com</baseUrl>
|
||||||
|
<auth type="bearer">
|
||||||
|
<envKey>TRAVELCO2_API_KEY</envKey>
|
||||||
|
</auth>
|
||||||
|
<operations>
|
||||||
|
<operation id="travel.flight.estimate_emissions.distance">
|
||||||
|
<http method="POST" path="/api/v1/transport"/>
|
||||||
|
<headers>
|
||||||
|
<header name="Accept" value="application/json"/>
|
||||||
|
<header name="Content-Type" value="application/json"/>
|
||||||
|
</headers>
|
||||||
|
<requestBody format="json">
|
||||||
|
{
|
||||||
|
"vehicle": {
|
||||||
|
"type": "${request.vendor_options.travelco2_vehicle_type}",
|
||||||
|
"fuel": {
|
||||||
|
"type": "${request.vendor_options.travelco2_fuel_type}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"distance": ${request.legs[0].distance_m},
|
||||||
|
"people": ${request.passengers},
|
||||||
|
"language": "${request.vendor_options.travelco2_language}"
|
||||||
|
}
|
||||||
|
</requestBody>
|
||||||
|
<responseMapping mode="single" rootType="EmissionCalculationResult">
|
||||||
|
<constant target="EmissionCalculationResult.provider" value="travelco2"/>
|
||||||
|
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
|
||||||
|
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions.distance"/>
|
||||||
|
<field source="$.co2e" target="EmissionCalculationResult.total.co2eKg"/>
|
||||||
|
<constant target="EmissionCalculationResult.total.unit" value="kg"/>
|
||||||
|
<constant target="EmissionCalculationResult.total.per" value="request"/>
|
||||||
|
<field source="$.co2e_pp" target="EmissionCalculationResult.perPassenger.co2eKg"/>
|
||||||
|
<constant target="EmissionCalculationResult.perPassenger.unit" value="kg"/>
|
||||||
|
<constant target="EmissionCalculationResult.perPassenger.per" value="passenger"/>
|
||||||
|
<field source="$.distance" target="EmissionCalculationResult.distance.value"/>
|
||||||
|
<constant target="EmissionCalculationResult.distance.unit" value="m"/>
|
||||||
|
<field source="$.people" target="EmissionCalculationResult.passengerCount"/>
|
||||||
|
<field source="$.ways" target="EmissionCalculationResult.vendorRaw.ways"/>
|
||||||
|
<field source="$.type" target="EmissionCalculationResult.segments[0].type"/>
|
||||||
|
<field source="$.title" target="EmissionCalculationResult.description"/>
|
||||||
|
<field source="$.vehicle.type" target="EmissionCalculationResult.segments[0].vendorRaw.vehicleType"/>
|
||||||
|
<field source="$.vehicle.title" target="EmissionCalculationResult.segments[0].vendorRaw.vehicleTitle"/>
|
||||||
|
<field source="$.vehicle.vehicle_count" target="EmissionCalculationResult.segments[0].vendorRaw.vehicleCount"/>
|
||||||
|
<field source="$.vehicle.fuel.type" target="EmissionCalculationResult.segments[0].vendorRaw.fuelType"/>
|
||||||
|
<field source="$.vehicle.fuel.title" target="EmissionCalculationResult.segments[0].vendorRaw.fuelTitle"/>
|
||||||
|
<field source="$.co2e" target="EmissionCalculationResult.segments[0].emissions.co2eKg"/>
|
||||||
|
<field source="$.co2e_pp" target="EmissionCalculationResult.segments[0].vendorRaw.co2ePerPersonKg"/>
|
||||||
|
<field source="$.distance" target="EmissionCalculationResult.segments[0].distance.value"/>
|
||||||
|
<constant target="EmissionCalculationResult.segments[0].distance.unit" value="m"/>
|
||||||
|
<constant target="EmissionCalculationResult.methodology.vendor" value="TravelCO2"/>
|
||||||
|
<constant target="EmissionCalculationResult.methodology.methodName" value="TravelCO2 Transport API"/>
|
||||||
|
<constant target="EmissionCalculationResult.methodology.documentationUrl" value="https://travelco2.com/documentation"/>
|
||||||
|
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
|
||||||
|
</responseMapping>
|
||||||
|
</operation>
|
||||||
|
</operations>
|
||||||
|
</provider>
|
||||||
|
</providers>
|
||||||
163
scheme.json
163
scheme.json
@@ -1,76 +1,21 @@
|
|||||||
{
|
{
|
||||||
"FlightLeg": {
|
|
||||||
"origin_iata": "string",
|
|
||||||
"destination_iata": "string",
|
|
||||||
"departure_time": "optional ISO-8601 datetime",
|
|
||||||
"marketing_carrier": "optional string",
|
|
||||||
"operating_carrier": "optional string",
|
|
||||||
"flight_number": "optional string"
|
|
||||||
},
|
|
||||||
"FlightRequest": {
|
"FlightRequest": {
|
||||||
"legs": ["FlightLeg"],
|
|
||||||
"cabin_class": "economy | premium_economy | business | first | unknown",
|
|
||||||
"passengers": "integer >= 1",
|
|
||||||
"roundtrip": "boolean",
|
|
||||||
"include_non_co2": "boolean",
|
|
||||||
"currency": "optional ISO 4217 code"
|
|
||||||
},
|
|
||||||
"EmissionEstimate": {
|
|
||||||
"co2_kg": "number or null",
|
|
||||||
"co2e_kg": "number or null",
|
|
||||||
"non_co2_multiplier": "number or null",
|
|
||||||
"breakdown": {
|
|
||||||
"ch4_kg": "number or null",
|
|
||||||
"n2o_kg": "number or null"
|
|
||||||
},
|
|
||||||
"methodology": {
|
|
||||||
"method_name": "string or null",
|
|
||||||
"method_version": "string or null",
|
|
||||||
"dataset_version": "string or null",
|
|
||||||
"vendor": "string or null",
|
|
||||||
"standard": "string or null",
|
|
||||||
"documentation_url": "string or null"
|
|
||||||
},
|
|
||||||
"vendor_raw": "opaque vendor-specific JSON/XML"
|
|
||||||
},
|
|
||||||
"AirportSearchRequest": {
|
|
||||||
"query": "string",
|
|
||||||
"limit": "optional integer",
|
|
||||||
"country_filter": "optional ISO 3166 code",
|
|
||||||
"languages": ["optional ISO 639 code"]
|
|
||||||
},
|
|
||||||
"AirportInfo": {
|
|
||||||
"iata_code": "string",
|
|
||||||
"icao_code": "string",
|
|
||||||
"name": "string",
|
|
||||||
"localized_name": ["LocalizedString"],
|
|
||||||
"country": "ISO 3166 code",
|
|
||||||
"continent": "string",
|
|
||||||
"latitude": "double",
|
|
||||||
"longitude": "double"
|
|
||||||
},
|
|
||||||
"LocalizedString": {
|
|
||||||
"lang": "ISO 639 code",
|
|
||||||
"name": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
"FlightCalculationRequest": {
|
|
||||||
"api_key": "optional string",
|
"api_key": "optional string",
|
||||||
"provider": "optional string",
|
"provider": "string",
|
||||||
"operation": "optional string",
|
"operation": "string",
|
||||||
|
"calculationRequest": "FlightCalculationRequest"
|
||||||
|
},
|
||||||
|
"FlightCalculationRequest": {
|
||||||
"departure_date": "optional ISO-8601 date",
|
"departure_date": "optional ISO-8601 date",
|
||||||
"rfi": "optional number",
|
"rfi": "optional number",
|
||||||
"price_per_ton": "optional number",
|
"price_per_ton": "optional number",
|
||||||
"currency": "optional ISO 4217 code",
|
|
||||||
"roundtrip": "optional boolean",
|
"roundtrip": "optional boolean",
|
||||||
"passengers": "optional integer >= 1",
|
"passengers": "optional integer >= 1",
|
||||||
"cabin_class": "economy | premium_economy | business | first | unknown",
|
"cabin_class": "economy | premium_economy | business | first | unknown",
|
||||||
"calculation_method": "optional string",
|
"calculation_method": "optional string",
|
||||||
"reference": "optional string",
|
"reference": "optional string",
|
||||||
"legs": ["FlightLeg"],
|
"legs": ["FlightLeg"],
|
||||||
"iata_path": ["string"],
|
"include_non_co2": "boolean",
|
||||||
"currencies": ["optional ISO 4217 code"],
|
"currencies": ["optional ISO 4217 code"],
|
||||||
"vendor_options": "object"
|
"vendor_options": "object"
|
||||||
},
|
},
|
||||||
@@ -81,7 +26,6 @@
|
|||||||
"destination_iata": "optional string",
|
"destination_iata": "optional string",
|
||||||
"origin": "optional LocationRef",
|
"origin": "optional LocationRef",
|
||||||
"destination": "optional LocationRef",
|
"destination": "optional LocationRef",
|
||||||
"departure_date": "optional ISO-8601 date",
|
|
||||||
"departure_time": "optional ISO-8601 datetime",
|
"departure_time": "optional ISO-8601 datetime",
|
||||||
"flight_number": "optional string",
|
"flight_number": "optional string",
|
||||||
"marketing_carrier": "optional string",
|
"marketing_carrier": "optional string",
|
||||||
@@ -96,7 +40,7 @@
|
|||||||
"distance_km": "optional number",
|
"distance_km": "optional number",
|
||||||
"vendor_options": "object"
|
"vendor_options": "object"
|
||||||
},
|
},
|
||||||
"EmissionCalculationResult": {
|
"FlightCalculationResult": {
|
||||||
"provider": "string",
|
"provider": "string",
|
||||||
"domain": "string",
|
"domain": "string",
|
||||||
"operation": "string",
|
"operation": "string",
|
||||||
@@ -149,14 +93,57 @@
|
|||||||
"EmissionAmount": {
|
"EmissionAmount": {
|
||||||
"co2_kg": "number or null",
|
"co2_kg": "number or null",
|
||||||
"co2e_kg": "number or null",
|
"co2e_kg": "number or null",
|
||||||
"co2e_tonnes": "number or null",
|
"non_co2_multiplier": "number or null",
|
||||||
|
"breakdown": {
|
||||||
|
"ch4_kg": "number or null",
|
||||||
|
"n2o_kg": "number or null"
|
||||||
|
},
|
||||||
"wtw_kg": "number or null",
|
"wtw_kg": "number or null",
|
||||||
"ttw_kg": "number or null",
|
"ttw_kg": "number or null",
|
||||||
"wtt_kg": "number or null",
|
"wtt_kg": "number or null",
|
||||||
"non_co2_multiplier": "number or null",
|
|
||||||
"unit": "kg | tonnes | grams | null",
|
"unit": "kg | tonnes | grams | null",
|
||||||
"per": "request | passenger | segment | null"
|
"per": "request | passenger | segment | null",
|
||||||
|
"vendor_raw": "opaque vendor-specific JSON/XML"
|
||||||
},
|
},
|
||||||
|
"MethodologyMeta": {
|
||||||
|
"method_name": "string or null",
|
||||||
|
"method_version": "string or null",
|
||||||
|
"dataset_version": "string or null",
|
||||||
|
"vendor": "string or null",
|
||||||
|
"standard": "string or null",
|
||||||
|
"documentation_url": "string or null",
|
||||||
|
"non_co2_treatment": "none | included | partial | unknown"
|
||||||
|
},
|
||||||
|
|
||||||
|
"AirportRequest": {
|
||||||
|
"api_key": "optional string",
|
||||||
|
"provider": "string",
|
||||||
|
"operation": "string",
|
||||||
|
"calculationRequest": "AirportSearchRequest"
|
||||||
|
},
|
||||||
|
"AirportSearchRequest": {
|
||||||
|
"query": "string",
|
||||||
|
"limit": "optional integer",
|
||||||
|
"country_filter": "optional ISO 3166 code",
|
||||||
|
"languages": ["optional ISO 639 code"]
|
||||||
|
},
|
||||||
|
"AirportInfo": {
|
||||||
|
"iata_code": "string",
|
||||||
|
"icao_code": "string",
|
||||||
|
"name": "string",
|
||||||
|
"localized_name": ["LocalizedString"],
|
||||||
|
"country": "ISO 3166 code",
|
||||||
|
"continent": "string",
|
||||||
|
"latitude": "double",
|
||||||
|
"longitude": "double"
|
||||||
|
},
|
||||||
|
"LocalizedString": {
|
||||||
|
"lang": "ISO 639 code",
|
||||||
|
"name": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
"CabinClassEmissionSet": {
|
"CabinClassEmissionSet": {
|
||||||
"economy_kg": "number or null",
|
"economy_kg": "number or null",
|
||||||
"premium_economy_kg": "number or null",
|
"premium_economy_kg": "number or null",
|
||||||
@@ -183,15 +170,7 @@
|
|||||||
"id": "string or null",
|
"id": "string or null",
|
||||||
"expires_at": "ISO-8601 datetime or null"
|
"expires_at": "ISO-8601 datetime or null"
|
||||||
},
|
},
|
||||||
"MethodologyMeta": {
|
|
||||||
"method_name": "string or null",
|
|
||||||
"method_version": "string or null",
|
|
||||||
"dataset_version": "string or null",
|
|
||||||
"vendor": "string or null",
|
|
||||||
"standard": "string or null",
|
|
||||||
"documentation_url": "string or null",
|
|
||||||
"non_co2_treatment": "none | included | partial | unknown"
|
|
||||||
},
|
|
||||||
"ProviderError": {
|
"ProviderError": {
|
||||||
"code": "string or null",
|
"code": "string or null",
|
||||||
"message": "string",
|
"message": "string",
|
||||||
@@ -209,24 +188,20 @@
|
|||||||
"lon": "number or null",
|
"lon": "number or null",
|
||||||
"coord": "string or null"
|
"coord": "string or null"
|
||||||
},
|
},
|
||||||
"AirportSearchRequest": {
|
|
||||||
"query": "string",
|
}
|
||||||
"limit": "optional integer",
|
|
||||||
"country_filter": "optional ISO 3166 code",
|
{
|
||||||
"languages": ["optional ISO 639 code"]
|
"FlightCalculationRequest.vendor_options": {
|
||||||
},
|
"climatiq_year": "integer",
|
||||||
"AirportInfo": {
|
"climatiq_air_details": "object",
|
||||||
"iata_code": "string",
|
"carbontracer_type": "flight-economy | flight-business | flight-firstclass",
|
||||||
"icao_code": "string",
|
"travelco2_vehicle_key": "flight-regular-economy | flight-regular-business | ...",
|
||||||
"name": "string",
|
"travelco2_fuel_key": "jetfuel | bio-fuel",
|
||||||
"localized_name": ["LocalizedString"],
|
"ibm_request_type": "ACTUAL | SIMULATED",
|
||||||
"country": "ISO 3166 code",
|
"ibm_vehicle_type": "string",
|
||||||
"continent": "string",
|
"ibm_country": "string",
|
||||||
"latitude": "double",
|
"ibm_year": "integer",
|
||||||
"longitude": "double"
|
"ibm_month": "integer"
|
||||||
},
|
|
||||||
"LocalizedString": {
|
|
||||||
"lang": "ISO 639 code",
|
|
||||||
"name": "string"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user