|
इस दस्तावेज़ में, वाहन से जुड़े उन अहम फ़ील्ड के बारे में बताया गया है जिन्हें वाहन बनाते और मैनेज करते समय अपडेट किया जा सकता है.
|
वाहन से जुड़े फ़ील्ड की पूरी सूची देखने के लिए, ये लेख पढ़ें:
|
वाहन की स्थिति का फ़ील्ड
आपका सिस्टम, वाहन की स्थिति को OFFLINE या ONLINE पर सेट कर सकता है. उदाहरण के लिए, हो सकता है कि आपको हर दिन सुबह 9 बजे वाहन की स्थिति ONLINE और हर दिन शाम 5 बजे OFFLINE पर सेट करनी हो.
| ऑफ़लाइन मोड | ऑनलाइन मोड |
|---|---|
`OFFLINE` का इस्तेमाल करके यह बताया जा सकता है कि कोई वाहन नई यात्राएं स्वीकार नहीं कर रहा है. ध्यान दें कि इस स्थिति में भी, वाहन को असाइन की गई यात्राएं पूरी की जा सकती हैं. |
|
वाहन के एट्रिब्यूट का फ़ील्ड
वाहन के attributes फ़ील्ड का इस्तेमाल करके, अपनी ज़रूरत के मुताबिक शर्तें बनाएं. इससे आपके ग्राहक या फ़्लीट ऑपरेटर, खोज के अलग-अलग मानदंडों के हिसाब से, आपकी फ़्लीट में मौजूद वाहन ढूंढ पाएंगे. इससे आपके ऐप्लिकेशन की क्षमता बढ़ती है. साथ ही, यह सिर्फ़ वाहन के अन्य फ़ील्ड के आधार पर खोज के मानदंड इस्तेमाल करने के मुकाबले, बेहतर वाहन मैच उपलब्ध कराता है. हर वाहन के लिए ज़्यादा से ज़्यादा 100 एट्रिब्यूट हो सकते हैं. साथ ही, हर एट्रिब्यूट के लिए एक यूनीक कुंजी होनी चाहिए. वैल्यू, स्ट्रिंग, बूलियन या संख्याएं हो सकती हैं.
उदाहरण के लिए, राइडशेयर करने वाले वाहनों को अलग-अलग क्लास लेवल के हिसाब से दिखाने के लिए, class नाम का एक कस्टम एट्रिब्यूट तय किया जा सकता है. वाहन के क्लास लेवल को दिखाने के लिए, इन स्ट्रिंग वैल्यू का इस्तेमाल किया जा सकता है: ECONOMY, STANDARD और LUXURY.
हालांकि, कस्टम एट्रिब्यूट की वैल्यू यूनीक नहीं होनी चाहिए. आप _पालतू जानवर के साथ यात्रा करने की अनुमति_, _धूम्रपान की अनुमति नहीं_ और _लंबी यात्राएं करने की अनुमति_ जैसे मानदंड इस्तेमाल किए जा सकते हैं. इनमें से हर एक, बूलियन वैल्यू का इस्तेमाल करने वाला एक अलग कस्टम एट्रिब्यूट हो सकता है. किसी वाहन को ये तीनों कस्टम एट्रिब्यूट असाइन किए जा सकते हैं. साथ ही, class कस्टम एट्रिब्यूट को सही स्ट्रिंग वैल्यू पर सेट किया जा सकता है.
एट्रिब्यूट का इस तरह इस्तेमाल करने से, आपको कई ऐसी सुविधाएं मिल सकती हैं जो खास ज़रूरतों वाली यात्राओं के लिए वाहन ढूंढने में काम आ सकती हैं. क्वेरी फ़िल्टर के तौर पर कस्टम एट्रिब्यूट का इस्तेमाल करने के तरीके के बारे में जानने के लिए, वाहन ढूंढना लेख पढ़ें.
वाहन के एट्रिब्यूट अपडेट करना
UpdateVehicle या
UpdateVehicleAttributes का इस्तेमाल करके, वाहन के एट्रिब्यूट अपडेट किए जा सकते हैं. attributes की हर कुंजी के लिए, हर वाहन के लिए सिर्फ़ एक वैल्यू हो सकती है. फ़ील्ड मास्क में attributes का इस्तेमाल करके, वाहन के कस्टम एट्रिब्यूट तय किए जा सकते हैं. इसके बाद, नीचे दिए गए तरीके के हिसाब से वैल्यू दी जा सकती हैं.
UpdateVehicle |
UpdateVehicleAttributes |
|
|---|---|---|
इस एपीआई से, सिर्फ़ एक एट्रिब्यूट को अपडेट नहीं किया जा सकता. इस तरीके का इस्तेमाल करते समय, फ़ील्ड मास्क में attributes फ़ील्ड का इस्तेमाल करने पर, वाहन के एट्रिब्यूट का पूरा सेट फिर से तय किया जाता है. इससे, पहले से मौजूद कोई भी ऐसा एट्रिब्यूट मिट जाता है जिसे फ़ील्ड मास्क में शामिल नहीं किया गया है. अगर इस तरीके का इस्तेमाल करके, कोई नया कस्टम एट्रिब्यूट तय किया जाता है,
आपको हर उस कस्टम एट्रिब्यूट को फिर से तय करना होगा जिसे वाहन के लिए बनाए रखना है. अगर फ़ील्ड मास्क में attributes को शामिल नहीं किया जाता है, तो इस तरीके से, वाहन के लिए पहले से तय किए गए कस्टम एट्रिब्यूट में कोई बदलाव नहीं होता. अगर फ़ील्ड मास्क में attributes का इस्तेमाल किया जाता है, लेकिन वैल्यू सेट नहीं की जाती हैं, तो इसका मतलब है कि वाहन से सभी कस्टम एट्रिब्यूट हटा दिए गए हैं.
|
इस तरीके में, अपडेट किए जाने वाले एट्रिब्यूट की खास सूची स्वीकार की जाती है. अनुरोध में, सिर्फ़ उन एट्रिब्यूट को अपडेट या जोड़ा जाता है जो फ़ील्ड मास्क में तय किए गए हैं. पहले से मौजूद ऐसे एट्रिब्यूट में कोई बदलाव नहीं होता जिन्हें तय नहीं किया गया है. |
वाहन के फ़ील्ड अपडेट करने का उदाहरण
इस सेक्शन में, UpdateVehicleRequest का इस्तेमाल करके, वाहन के फ़ील्ड अपडेट करने का तरीका बताया गया है. इसमें, यह बताने के लिए update_mask शामिल है कि किन फ़ील्ड को अपडेट करना है. ज़्यादा जानकारी के लिए, फ़ील्ड मास्क पर
Protocol Buffers का दस्तावेज़ देखें.
last_location के अलावा अन्य फ़ील्ड में अपडेट करने के लिए, Fleet Engine On-demand Admin की अनुमतियां ज़रूरी होती हैं.
उदाहरण: नए ट्रिप टाइप और कस्टम एट्रिब्यूट को चालू करना
इस उदाहरण में, वाहन के लिए back_to_back ट्रिप चालू की गई हैं. साथ ही, एक नया एट्रिब्यूट तय किया गया है: class. जैसा कि पहले वाहन के एट्रिब्यूट अपडेट करना में बताया गया है,
इस तरीके का इस्तेमाल करके attributes फ़ील्ड को अपडेट करने के लिए, आपको उन सभी
कस्टम एट्रिब्यूट के बारे में बताना होगा जिन्हें बनाए रखना है. इसलिए, उदाहरण में cash_only वैल्यू दिखाई गई है, ताकि अपडेट की प्रोसेस के दौरान, attributes फ़ील्ड तय करने पर यह वैल्यू मिट न जाए.
सिर्फ़ एक कुंजी-वैल्यू एट्रिब्यूट पेयर की वैल्यू अपडेट करने के लिए,
UpdateVehicleAttributes तरीके का इस्तेमाल करें. साथ ही, attribute फ़ील्ड
को UpdateVehicle अनुरोध के लिए फ़ील्ड मास्क में शामिल न करें.
providers.vehicles.update रेफ़रंस के लिए, gRPC और REST देखें.
gRPC
static final String PROJECT_ID = "project-id";
static final String VEHICLE_ID = "vid-8241890";
VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);
String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
Vehicle updatedVehicle = Vehicle.newBuilder()
.setVehicleState(VehicleState.ONLINE)
.addAllAttributes(ImmutableList.of(
VehicleAttribute.newBuilder().setKey("class").setValue("ECONOMY").build(),
VehicleAttribute.newBuilder().setKey("cash_only").setValue("false").build()))
.setBackToBackEnabled(true)
.build();
UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
.setName(vehicleName)
.setVehicle(updatedVehicle)
.setUpdateMask(FieldMask.newBuilder()
.addPaths("vehicle_state")
.addPaths("attributes")
.addPaths("back_to_back_enabled"))
.build();
try {
Vehicle updatedVehicle =
vehicleService.updateVehicle(updateVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
// Most implementations will call CreateVehicle in this case
break;
case PERMISSION_DENIED:
break;
}
return;
}
// If no Exception, Vehicle updated successfully.
REST
curl -X PUT \
"https://fleetengine.googleapis.com/v1/providers/project-id/vehicles/vid-8241890?updateMask=vehicle_state,attributes,back_to_back_enabled" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
--data-binary @- << EOM
{
"vehicleState": "ONLINE",
"attributes": [
{"key": "class", "value": "LUXURY"},
{"key": "cash_only", "value": "false"}
],
"backToBackEnabled": true
}
EOM