- JSON काेड में दिखाना
- शिपमेंट
- VisitRequest
- LatLng
- वेपॉइंट
- जगह की जानकारी
- TimeWindow
- वाहन
- TravelMode
- UnloadingPolicy
- LoadLimit
- इंटरवल
- DurationLimit
- DistanceLimit
- BreakRule
- BreakRequest
- FrequencyConstraint
- DurationDistanceMatrix
- पंक्ति
- TransitionAttributes
- ShipmentTypeIncompatibility
- IncompatibilityMode
- ShipmentTypeRequirement
- RequirementMode
- PrecedenceRule
किसी शिपमेंट मॉडल में, शिपमेंट का एक सेट होता है. इसे वाहनों के एक सेट को पूरा करना होता है. हालांकि, कुल लागत को कम से कम किया जाता है, जो कि कुल कीमत होती है:
- वाहनों को रूट करने की लागत (कुल समय के हिसाब से लागत, यात्रा के समय के हिसाब से लागत, और सभी वाहनों के लिए तय लागत का योग).
- शिपमेंट न करने पर लगने वाले जुर्माने.
- शिपमेंट की पूरी अवधि के लिए खरीदार से लिया जाने वाला शुल्क
| JSON के काेड में दिखाना | 
|---|
| { "shipments": [ { object ( | 
| फ़ील्ड | |
|---|---|
| shipments[] | 
 मॉडल में की जाने वाली शिपिंग का सेट. | 
| vehicles[] | 
 वाहनों का सेट, जिसका इस्तेमाल विज़िट के लिए किया जा सकता है. | 
| globalStartTime | 
 मॉडल के शुरू और खत्म होने का ग्लोबल समय: इस सीमा से बाहर के किसी भी समय को मान्य नहीं माना जा सकता. मॉडल की समयावधि एक साल से कम होनी चाहिए. इसका मतलब है कि  
 आरएफ़सी3339 यूटीसी के "ज़ुलू" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंक हैं. उदाहरण के लिए:  | 
| globalEndTime | 
 अगर इसे सेट नहीं किया जाता है, तो 00:00:00 यूटीसी, 1 जनवरी, 1971 (जैसे कि सेकंड: 31536000, \nos: 0) का इस्तेमाल डिफ़ॉल्ट के तौर पर किया जाता है. आरएफ़सी3339 यूटीसी के "ज़ुलू" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंक हैं. उदाहरण के लिए:  | 
| globalDurationCostPerHour | 
 पूरे प्लान की "दुनिया भर में लगने वाला समय", सभी वाहनों के शुरू होने के समय और खत्म होने के नए समय के बीच का अंतर होता है. उदाहरण के लिए, उपयोगकर्ता उस संख्या के लिए हर घंटे की लागत असाइन कर सकते हैं, ताकि जॉब को जल्द से जल्द पूरा करने के लिए उसे ऑप्टिमाइज़ किया जा सके. यह लागत  | 
| durationDistanceMatrices[] | 
 मॉडल में इस्तेमाल की गई अवधि और दूरी की मैट्रिक के बारे में बताता है. अगर यह फ़ील्ड खाली है, तो  इस्तेमाल के उदाहरण: 
 
  | 
| durationDistanceMatrixSrcTags[] | 
 ये टैग, कुल समय और दूरी की मैट्रिक के सोर्स की जानकारी देते हैं.  टैग  | 
| durationDistanceMatrixDstTags[] | 
 अवधि और दूरी के आव्यूहों की मंज़िल तय करने वाले टैग;  टैग  | 
| transitionAttributes[] | 
 मॉडल में ट्रांज़िशन एट्रिब्यूट जोड़े गए. | 
| shipmentTypeIncompatibilities[] | 
 ऐसे शिपमेंट_types के सेट जो काम नहीं करते हैं ( | 
| shipmentTypeRequirements[] | 
 
 | 
| precedenceRules[] | 
 प्राथमिकता के नियमों का सेट, जिसे मॉडल में लागू किया जाना चाहिए. | 
| maxActiveVehicles | 
 यह चालू वाहनों की ज़्यादा से ज़्यादा संख्या को सीमित करता है. अगर किसी वाहन के रूट से कम से कम एक शिपमेंट पूरा किया जाता है, तो उसे चालू कर दिया जाता है. इसका इस्तेमाल, ऐसे मामलों में रास्तों की संख्या को सीमित करने के लिए किया जा सकता है जहां वाहनों के मुकाबले कम ड्राइवर हैं और वाहनों का बेड़ा अलग है. इसके बाद, ऑप्टिमाइज़ेशन की मदद से वाहनों का वह सबसेट चुना जा सकेगा जिसे इस्तेमाल करना है. पूरी तरह सकारात्मक होना चाहिए. | 
शिपमेंट
किसी एक आइटम को पिकअप करने से लेकर डिलीवरी करने तक की प्रोसेस. शिपमेंट को पूरा होने के तौर पर तब ही माना जाएगा, जब कोई यूनीक वाहन पिकअप करने की जगहों में से किसी एक पर जाए (और उसी हिसाब से अपनी स्पेयर कैपेसिटी कम करे) और बाद में डिलीवरी करने की जगहों में से किसी एक पर जाए (और उसी हिसाब से अपनी स्पेयर कैपेसिटी फिर से बढ़ाए).
| JSON के काेड में दिखाना | 
|---|
| { "displayName": string, "pickups": [ { object ( | 
| फ़ील्ड | |
|---|---|
| displayName | 
 शिपमेंट का डिसप्ले नेम, जिसे उपयोगकर्ता ने तय किया है. इसमें ज़्यादा से ज़्यादा 63 वर्ण हो सकते हैं और इसमें UTF-8 वर्णों का इस्तेमाल किया जा सकता है. | 
| pickups[] | 
 शिपमेंट से जुड़े पिकअप के विकल्पों का सेट. अगर इस बारे में नहीं बताया गया है, तो वाहन को सिर्फ़ उस जगह पर जाना होगा जहां डिलीवरी की जा रही है. | 
| deliveries[] | 
 शिपमेंट से जुड़े डिलीवरी के विकल्पों का सेट. अगर इसके लिए जानकारी नहीं दी गई है, तो वाहन को सिर्फ़ पिक अप के लिए इस्तेमाल की जाने वाली जगह पर जाना होगा. | 
| loadDemands | 
 शिपमेंट से जुड़ी जानकारी लोड करना. उदाहरण के लिए, वज़न, वॉल्यूम, पैलेट की संख्या वगैरह. मैप में मौजूद कुंजियां, ऐसे आइडेंटिफ़ायर होने चाहिए जो इससे जुड़े लोड के टाइप की जानकारी देते हों. खास तौर पर, इनमें इकाइयां भी शामिल होनी चाहिए. उदाहरण के लिए: "weight_kg", "quantity_gallons", "pallet_count", वगैरह. अगर कोई कुंजी मैप पर नहीं दिखती है, तो उससे जुड़ा लोड शून्य के तौर पर माना जाता है. एक ऑब्जेक्ट, जिसमें  | 
| allowedVehicleIndices[] | 
 वाहनों का वह सेट जो इस शिपमेंट की डिलीवरी कर सकता है. अगर इसे खाली छोड़ा जाता है, तो सभी वाहन ऐसा कर सकते हैं.  | 
| costsPerVehicle[] | 
 इससे पता चलता है कि हर वाहन से इस शिपमेंट की डिलीवरी करने पर, कितनी लागत आएगी. अगर इसकी वैल्यू दी गई है, तो इसमें इनमें से कोई एक होना चाहिए: 
 ये लागतें  | 
| costsPerVehicleIndices[] | 
 उन वाहनों के इंडेक्स जिन पर  | 
| pickupToDeliveryAbsoluteDetourLimit | 
 यह पिकअप से डिलीवरी तक के सबसे छोटे रास्ते की तुलना में, सबसे लंबे रास्ते पर लगने वाले समय की जानकारी देता है. अगर बताया गया है, तो यह ज़रूरी नहीं है कि यह नेगेटिव में हो. साथ ही, शिपमेंट में पिक अप और डिलीवरी की जानकारी होनी चाहिए. उदाहरण के लिए, मान लें कि पिक अप के चुने गए विकल्प से, डिलीवरी के चुने गए विकल्प तक, सीधे पहुंचने में कम से कम समय लगता है. इसके बाद,  अगर एक ही शिपमेंट के लिए, रिलेटिव और एब्सोल्यूट, दोनों तरह की सीमाएं तय की गई हैं, तो पिकअप/डिलीवरी के हर संभावित पेयर के लिए, ज़्यादा पाबंदी वाली सीमा का इस्तेमाल किया जाता है. अक्टूबर 2017 से, यात्रा में लगने वाला समय वाहनों पर निर्भर न होने पर ही, रास्ते में आने वाली रुकावटों की जानकारी दी जा सकती है. सेकंड में एक अवधि, जिसमें ज़्यादा से ज़्यादा नौ दशमलव अंक होते हैं और जो ' | 
| pickupToDeliveryTimeLimit | 
 इससे किसी शिपमेंट की डिलीवरी शुरू होने से लेकर, उसकी डिलीवरी शुरू होने तक की ज़्यादा से ज़्यादा अवधि की जानकारी मिलती है. अगर यह जानकारी दी गई है, तो यह संख्या 0 से बड़ी होनी चाहिए. साथ ही, शिपमेंट में कम से कम एक पिकअप और एक डिलीवरी शामिल होनी चाहिए. यह इस बात पर निर्भर नहीं करता कि पिकअप और डिलीवरी के लिए कौनसे विकल्प चुने गए हैं. यह वाहन की स्पीड पर भी निर्भर नहीं करता. इसे ज़्यादा से ज़्यादा डेटूर कंस्ट्रेंट के साथ तय किया जा सकता है: समाधान दोनों स्पेसिफ़िकेशन के हिसाब से काम करेगा. सेकंड में एक अवधि, जिसमें ज़्यादा से ज़्यादा नौ दशमलव अंक होते हैं और जो ' | 
| shipmentType | 
 इस शिपमेंट के लिए "टाइप" बताने वाली स्ट्रिंग खाली नहीं है. इस सुविधा का इस्तेमाल,  एक विज़िट के लिए तय की गई  | 
| label | 
 इस शिपमेंट के लिए लेबल तय करता है. इस लेबल की जानकारी, जवाब में मौजूद  | 
| ignore | 
 अगर सही है, तो इस शिपमेंट को छोड़ें, लेकिन  अगर मॉडल में कोई  
 | 
| penaltyCost | 
 अगर शिपमेंट पूरा नहीं होता है, तो यह जुर्माना, रूट की कुल कीमत में जोड़ दिया जाता है. किसी शिपमेंट को तब ही पूरा माना जाता है, जब उसके पिकअप और डिलीवरी के किसी विकल्प का इस्तेमाल किया जाता है. लागत को उसी इकाई में दिखाया जा सकता है जिसका इस्तेमाल मॉडल में अन्य सभी लागत-संबंधी फ़ील्ड के लिए किया जाता है और यह धनात्मक होनी चाहिए. अहम जानकारी: अगर इस जुर्माने की जानकारी नहीं दी गई है, तो इसे अनलिमिटेड माना जाता है. इसका मतलब है कि शिपमेंट पूरा करना ज़रूरी है. | 
| pickupToDeliveryRelativeDetourLimit | 
 इससे यह जानकारी मिलती है कि पिकअप से डिलीवरी तक के सबसे छोटे पाथ की तुलना में, ज़्यादा से ज़्यादा कितना समय घूमता है. अगर बताया गया है, तो यह ज़रूरी नहीं है कि यह नेगेटिव में हो. साथ ही, शिपमेंट में पिक अप और डिलीवरी की जानकारी होनी चाहिए. उदाहरण के लिए, मान लें कि t, पिकअप के चुने गए विकल्प से सीधे डिलीवरी के चुने गए विकल्प पर जाने में लगने वाला कम से कम समय है. इसके बाद,  अगर एक ही शिपमेंट पर संबंधित और कुल सीमाएं, दोनों की जानकारी दी गई है, तो हर संभावित पिकअप/डिलीवरी पेयर के लिए ज़्यादा सीमा का इस्तेमाल किया जाता है. 2017/10 से, चक्कर लगाने की सुविधा सिर्फ़ तब काम करती है, जब यात्रा का समय वाहनों पर निर्भर न हो. | 
VisitRequest
वाहन से की जाने वाली विज़िट का अनुरोध: इसमें एक या दो जगह की जानकारी (नीचे देखें), खुलने और बंद होने का समय, और सेवा की अवधि (सामान लेने या छोड़ने के लिए वाहन के पहुंचने के बाद लगने वाला समय) शामिल है.
| JSON के काेड में दिखाना | 
|---|
| { "arrivalLocation": { object ( | 
| फ़ील्ड | |
|---|---|
| arrivalLocation | 
 वह जगह जहां से  | 
| arrivalWaypoint | 
 वह वेपॉइंट जहां यह  | 
| departureLocation | 
 वह भौगोलिक जगह जहां इस  | 
| departureWaypoint | 
 वह वेपॉइंट जहां यह  | 
| tags[] | 
 विज़िट के अनुरोध से जुड़े टैग की जानकारी देता है. खाली या डुप्लीकेट स्ट्रिंग की अनुमति नहीं है. | 
| timeWindows[] | 
 ऐसी टाइम विंडो जो किसी विज़िट के आने के समय को सीमित करती हैं. ध्यान दें कि कोई वाहन, पहुंचने के समय की विंडो के बाहर जा सकता है. इसका मतलब है कि पहुंचने का समय + कुल समय, समय की विंडो में होना ज़रूरी नहीं है. इस वजह से, अगर वाहन  
 टाइम विंडो एक-दूसरे से अलग होनी चाहिए.इसका मतलब है कि कोई भी टाइम विंडो, किसी दूसरी टाइम विंडो के साथ ओवरलैप नहीं करनी चाहिए या एक-दूसरे के बगल में होनी चाहिए. साथ ही, टाइम विंडो बढ़ते क्रम में होनी चाहिए. 
 | 
| duration | 
 विज़िट की अवधि, यानी वाहन के आने और जाने के बीच का समय. इसे इंतज़ार के संभावित समय में जोड़ना होगा.  सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि ' | 
| cost | 
 वाहन के रास्ते के लिए, यात्रा के इस अनुरोध को पूरा करने में लगने वाला शुल्क. इसका इस्तेमाल, शिपमेंट के पिकअप या डिलीवरी के हर विकल्प के लिए अलग-अलग शुल्क चुकाने के लिए किया जा सकता है. यह कीमत,  | 
| loadDemands | 
 इस विज़िट के अनुरोध की मांगें लोड करें. यह  ऐसा ऑब्जेक्ट जिसमें  | 
| visitTypes[] | 
 विज़िट के टाइप की जानकारी देता है. इसका इस्तेमाल, इस विज़िट को पूरा करने में किसी वाहन को लगने वाला अतिरिक्त समय देने के लिए किया जा सकता है ( टाइप सिर्फ़ एक बार दिख सकता है. | 
| label | 
 इस  | 
| avoidUTurns | 
 इससे पता चलता है कि इस जगह पर ड्राइविंग के लिए, यू-टर्न लेने से बचना चाहिए या नहीं. यू-टर्न से बचने की कोशिश की जाएगी, लेकिन इसकी कोई गारंटी नहीं है कि यू-टर्न से पूरी तरह बचा जा सकेगा. इस सुविधा को फ़िलहाल आज़माया जा रहा है. इसमें बदलाव हो सकता है. | 
LatLng
ऐसा ऑब्जेक्ट जो अक्षांश/देशांतर की जोड़ी को दिखाता है. डिग्री अक्षांश और डिग्री देशांतर को दिखाने के लिए, इसे डबल के जोड़े के तौर पर दिखाया जाता है. अगर इस बारे में अलग से जानकारी नहीं दी गई है, तो यह ऑब्जेक्ट WGS84 स्टैंडर्ड के मुताबिक होना चाहिए. वैल्यू, सामान्य सीमा के अंदर होनी चाहिए.
| JSON के काेड में दिखाना | 
|---|
| { "latitude": number, "longitude": number } | 
| फ़ील्ड | |
|---|---|
| latitude | 
 डिग्री में अक्षांश. यह [-90.0, +90.0] की रेंज में होना चाहिए. | 
| longitude | 
 डिग्री में देशांतर. यह [-180.0, +180.0] की रेंज में होना चाहिए. | 
वेपॉइंट
वेपॉइंट को एनकैप्सुलेट करता है. वेपॉइंट, visitRequests के आने और जाने की जगहों को मार्क करते हैं. साथ ही, वाहनों के शुरू और खत्म होने की जगह की जानकारी भी देते हैं.
| JSON के काेड में दिखाना | 
|---|
| { "sideOfRoad": boolean, // Union field | 
| फ़ील्ड | |
|---|---|
| sideOfRoad | 
 ज़रूरी नहीं. यह बताता है कि इस वेपॉइंट की जगह को प्राथमिकता दी गई है, ताकि वाहन को सड़क के किसी खास तरफ़ रोका जा सके. जब आप यह मान सेट करते हैं, तो मार्ग उस स्थान से गुजरेगा ताकि वाहन सड़क के उस किनारे पर रूक सके जहां स्थान का झुकाव सड़क के केंद्र से है. यह विकल्प, 'पैदल चलना' यात्रा मोड के लिए काम नहीं करता. | 
| यूनियन फ़ील्ड location_type. किसी जगह को दिखाने के अलग-अलग तरीके.location_typeइनमें से सिर्फ़ एक हो सकता है: | |
| location | 
 भौगोलिक निर्देशांक का इस्तेमाल करके तय किया गया पॉइंट, जिसमें एक वैकल्पिक शीर्षक भी शामिल होता है. | 
| placeId | 
 वेपॉइंट से जुड़ा लोकप्रिय जगह का आईडी. | 
जगह
जगह को इनकैप्सुलेट करता है (भौगोलिक पॉइंट और वैकल्पिक हेडिंग).
| JSON के काेड में दिखाना | 
|---|
| {
  "latLng": {
    object ( | 
| फ़ील्ड | |
|---|---|
| latLng | 
 वेपॉइंट के भौगोलिक निर्देशांक. | 
| heading | 
 ट्रैफ़िक के फ़्लो की दिशा से जुड़ी कम्पास हेडिंग. इस मान का उपयोग सड़क के उस किनारे को बताने के लिए किया जाता है, जिसका उपयोग पिकअप और ड्रॉप-ऑफ़ के लिए किया जाता है. शीर्षक का मान 0 से 360 तक हो सकता है, जहां 0 उत्तर की ओर देय शीर्षक को तय करता है, 90 पूर्व दिशा के शीर्षक को तय करता है, वगैरह. | 
TimeWindow
टाइम विंडो, किसी इवेंट के समय को सीमित कर देती हैं, जैसे कि विज़िट के समय पहुंचने का समय या वाहन के शुरू और खत्म होने का समय.
टाइम विंडो की सीमाएं, startTime और endTime, इवेंट के शुरू और खत्म होने के समय को तय करती हैं, जैसे कि startTime <= event_time <=
          endTime. सॉफ्ट टाइम विंडो की निचली सीमा, softStartTime, यह बताती है कि इवेंट softStartTime पर या उसके बाद होना चाहिए. इसके लिए, इवेंट के शुरू होने से सॉफ्टStartTime के बीच के समय के हिसाब से लागत लगाई जाती है. सॉफ़्ट टाइम विंडो की ऊपरी सीमा, softEndTime, इवेंट को softEndTime को या उससे पहले होने देने को प्राथमिकता देती है. इसके लिए, इस बात पर ध्यान दिया जाता है कि इवेंट softEndTime के बाद कितने समय बाद होगा. startTime, endTime, softStartTime, और softEndTime वैल्यू, ग्लोबल टाइमसीमा के अंदर होनी चाहिए (ShipmentModel.global_start_time और ShipmentModel.global_end_time देखें). साथ ही, ये वैल्यू इन बातों का ध्यान रखनी चाहिए:
  0 <= `startTime` <= `endTime` and
  0 <= `startTime` <= `softStartTime` and
  0 <= `softEndTime` <= `endTime`.
| JSON के काेड में दिखाना | 
|---|
| { "startTime": string, "endTime": string, "softStartTime": string, "softEndTime": string, "costPerHourBeforeSoftStartTime": number, "costPerHourAfterSoftEndTime": number } | 
| फ़ील्ड | |
|---|---|
| startTime | 
 'रिलीज़ की समयसीमा' की शुरुआत का समय. अगर इसे सेट नहीं किया गया है, तो इसे  आरएफ़सी3339 यूटीसी के "ज़ुलू" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंक हैं. उदाहरण:  | 
| endTime | 
 हार्ड टाइम विंडो खत्म होने का समय. अगर इसे सेट नहीं किया गया है, तो इसे  आरएफ़सी3339 यूटीसी के "Zulu" फ़ॉर्मैट में एक टाइमस्टैंप, नैनोसेकंड रिज़ॉल्यूशन और नौ दशमलव अंकों के साथ. उदाहरण के लिए:  | 
| softStartTime | 
 समयावधि के शुरू होने का समय. आरएफ़सी3339 यूटीसी के "ज़ुलू" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंक हैं. उदाहरण:  | 
| softEndTime | 
 समयसीमा खत्म होने का अनुमानित समय. आरएफ़सी3339 यूटीसी के "Zulu" फ़ॉर्मैट में एक टाइमस्टैंप, नैनोसेकंड रिज़ॉल्यूशन और नौ दशमलव अंकों के साथ. उदाहरण:  | 
| costPerHourBeforeSoftStartTime | 
 अगर इवेंट, softStartTime से पहले होता है, तो मॉडल में अन्य लागतों के साथ हर घंटे की लागत जोड़ी जाती है. इसे इस तरह से कैलकुलेट किया जाता है: यह लागत पॉज़िटिव होनी चाहिए. साथ ही, फ़ील्ड को सिर्फ़ तब सेट किया जा सकता है, जब softStartTime सेट किया गया हो. | 
| costPerHourAfterSoftEndTime | 
 अगर इवेंट  यह लागत पॉज़िटिव होनी चाहिए. साथ ही, फ़ील्ड को सिर्फ़ तब सेट किया जा सकता है, जब  | 
वाहन
शिपिंग में समस्या वाले वाहन का मॉडल. शिपमेंट से जुड़ी समस्या हल करने पर, इस वाहन के लिए एक रास्ता, startLocation से शुरू होगा और endLocation पर खत्म होगा. रास्ता, विज़िट का क्रम होता है (ShipmentRoute देखें).
| JSON के काेड में दिखाना | 
|---|
| { "displayName": string, "travelMode": enum ( | 
| फ़ील्ड | |
|---|---|
| displayName | 
 वाहन का डिसप्ले नेम, जिसे उपयोगकर्ता ने तय किया है. इसमें ज़्यादा से ज़्यादा 63 वर्ण हो सकते हैं और इसमें UTF-8 वर्णों का इस्तेमाल किया जा सकता है. | 
| travelMode | 
 यात्रा का मोड, जिससे वाहन के लिए इस्तेमाल की जा सकने वाली सड़कों और उसकी स्पीड पर असर पड़ता है.  | 
| startLocation | 
 वह भौगोलिक जगह जहां से सामान पिक अप करने से पहले वाहन शुरू होता है. अगर जानकारी नहीं दी जाती है, तो वाहन पहले पिक अप पर शुरू हो जाएगा. अगर शिपमेंट मॉडल में कुल समय और दूरी के मैट्रिक हैं, तो  | 
| startWaypoint | 
 वह वेपॉइंट जो किसी भौगोलिक जगह को दिखाता है. वाहन, शिपमेंट लेने से पहले यहां से शुरू होता है. अगर  | 
| endLocation | 
 वह भौगोलिक जगह जहां वाहन, आखिरी  | 
| endWaypoint | 
 उस भौगोलिक जगह को दिखाने वाला वेपॉइंट जहां आखिरी  | 
| startTags[] | 
 वाहन के रास्ते की शुरुआत में जोड़े गए टैग की जानकारी देता है. खाली या डुप्लीकेट स्ट्रिंग की अनुमति नहीं है. | 
| endTags[] | 
 वाहन के रूट के आखिर में जोड़े गए टैग की जानकारी देता है. खाली या डुप्लीकेट स्ट्रिंग की अनुमति नहीं है. | 
| startTimeWindows[] | 
 टाइम विंडो, जिस दौरान वाहन अपनी शुरुआती जगह से निकल सकता है. ये समयसीमाएं, ग्लोबल समयसीमाओं के अंदर होनी चाहिए ( बार-बार होने वाले एक ही फ़ील्ड की टाइम विंडो अलग-अलग होनी चाहिए. इसका मतलब है कि कोई भी टाइम विंडो, किसी दूसरी टाइम विंडो के साथ ओवरलैप नहीं हो सकती या उसके बगल में नहीं हो सकती. साथ ही, वे टाइम विंडो, समय के हिसाब से क्रम में होनी चाहिए. 
 | 
| endTimeWindows[] | 
 टाइम विंडो, जिस दौरान वाहन अपनी मंज़िल तक पहुंच सकता है. ये समयसीमाएं, ग्लोबल समयसीमाओं के अंदर होनी चाहिए ( बार-बार होने वाले एक ही फ़ील्ड की टाइम विंडो अलग-अलग होनी चाहिए. इसका मतलब है कि कोई भी टाइम विंडो, किसी दूसरी टाइम विंडो के साथ ओवरलैप नहीं हो सकती या उसके बगल में नहीं हो सकती. साथ ही, वे टाइम विंडो, समय के हिसाब से क्रम में होनी चाहिए. 
 | 
| unloadingPolicy | 
 वाहन पर लागू की गई, सामान उतारने की नीति. | 
| loadLimits | 
 वाहन की क्षमताएं (उदाहरण के लिए, वज़न, वॉल्यूम, पैलेट की संख्या). मैप में मौजूद कुंजियां, लोड के टाइप के आइडेंटिफ़ायर होती हैं. ये कुंजियां,  ऐसा ऑब्जेक्ट जिसमें  | 
| costPerHour | 
 वाहन के लिए शुल्क: इसमें बताई गई कुल कीमत,  वाहन के रास्ते की हर घंटे की कीमत. यह कीमत, रास्ते में लगने वाले कुल समय के हिसाब से लागू होती है. इसमें, यात्रा में लगने वाला समय, इंतज़ार का समय, और विज़िट का समय शामिल है. सिर्फ़  | 
| costPerTraveledHour | 
 वाहन के रास्ते पर, हर घंटे की यात्रा की लागत. यह शुल्क, यात्रा में लगने वाले समय के लिए ही है.जैसे, रास्ते में लगने वाला समय (यानी कि  | 
| costPerKilometer | 
 वाहन के रास्ते में प्रति किलोमीटर का शुल्क. यह कीमत,  | 
| fixedCost | 
 अगर इस वाहन का इस्तेमाल शिपमेंट को मैनेज करने के लिए किया जाता है, तो तय की गई कीमत लागू होती है. | 
| usedIfRouteIsEmpty | 
 यह फ़ील्ड वाहनों पर सिर्फ़ तब लागू होता है, जब उनके रास्ते पर कोई शिपमेंट नहीं भेजा जाता. इससे पता चलता है कि इस मामले में, गाड़ी को इस्तेमाल की गई गाड़ी माना जाना चाहिए या नहीं. अगर सही है, तो वाहन अपने शुरू से आखिरी जगह तक चला जाता है, भले ही वह कोई भी शिपमेंट सेवा न देता हो. साथ ही, इसके शुरू होने से लगने वाले समय और दूरी की लागत को ध्यान में रखा जाता है. ऐसा नहीं करने पर, यह अपनी शुरुआत से अपनी जगह तक नहीं पहुंचेगा. साथ ही, इस वाहन के लिए,  | 
| routeDurationLimit | 
 यह सीमा, वाहन के रास्ते की कुल अवधि पर लागू होती है. किसी  | 
| travelDurationLimit | 
 यह सीमा, वाहन के रास्ते की यात्रा में लगने वाले समय पर लागू होती है. किसी  | 
| routeDistanceLimit | 
 यह सीमा, वाहन के रास्ते की कुल दूरी पर लागू होती है. दिए गए  | 
| extraVisitDurationForVisitType | 
 visitTypes स्ट्रिंग से अवधि तक के मैप की जानकारी देता है. बताए गए  अगर विज़िट का अनुरोध कई तरह के हैं, तो मैप में हर तरह के लिए एक अवधि जोड़ दी जाएगी. ऐसा ऑब्जेक्ट जिसमें  | 
| breakRule | 
 इस वाहन पर ब्रेक के लिए तय किए गए शेड्यूल के बारे में जानकारी देता है. अगर यह खाली है, तो इस वाहन के लिए कोई ब्रेक शेड्यूल नहीं किया जाएगा. | 
| label | 
 इस वाहन के लिए एक लेबल तय करता है. जवाब में इस लेबल को, इससे जुड़े  | 
| ignore | 
 अगर सही है, तो  अगर  अगर  | 
| travelDurationMultiple | 
 यह एक मल्टीप्लायर फ़ैक्टर होता है. इसका इस्तेमाल, इस वाहन के यात्रा के समय को बढ़ाने या घटाने के लिए किया जा सकता है. उदाहरण के लिए, इसे 2.0 पर सेट करने का मतलब है कि यह वाहन धीमा है और यात्रा में लगने वाला समय, स्टैंडर्ड वाहनों के मुकाबले दोगुना है. इस मल्टीपल का असर, विज़िट के कुल समय पर नहीं पड़ता. अगर  चेतावनी: इस मल्टीपल को लागू करने के बाद, यात्रा के समय को निकटतम सेकंड में बदल दिया जाएगा, लेकिन कोई भी संख्यात्मक संक्रिया करने से पहले, यात्रा के समय की गणना सटीक नहीं होगी. नीचे  | 
TravelMode
यात्रा के ऐसे तरीके जिनका इस्तेमाल वाहनों से किया जा सकता है.
ये, Google Maps Platform Routes Preferred API के यात्रा के मोड के सबसेट होने चाहिए. ज़्यादा जानकारी के लिए, https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode पर जाएं.
| Enums | |
|---|---|
| TRAVEL_MODE_UNSPECIFIED | यात्रा के मोड की जानकारी नहीं दी गई है. यह DRIVINGके बराबर है. | 
| DRIVING | ड्राइविंग दिशा निर्देशों के लिए यात्रा मोड (कार, ...). | 
| WALKING | पैदल चलने की दिशा के लिए यात्रा का मोड. | 
UnloadingPolicy
वाहन को अनलोड करने के तरीके से जुड़ी नीति. यह सिर्फ़ उन शिपमेंट पर लागू होता है जिनके लिए पिक अप और डिलीवरी, दोनों मौजूद हैं.
unloadingPolicy के अलावा, अन्य शिपमेंट के लिए, रूट पर कहीं भी शिपिंग की जा सकती है.
| Enums | |
|---|---|
| UNLOADING_POLICY_UNSPECIFIED | सामान उतारने की कोई नीति नहीं दी गई है. डिलीवरी, पिकअप के बाद ही होनी चाहिए. | 
| LAST_IN_FIRST_OUT | डिलीवरी, पिकअप के उलटे क्रम में होनी चाहिए | 
| FIRST_IN_FIRST_OUT | डिलीवरी उसी क्रम में होनी चाहिए जिस क्रम में पिकअप की सुविधा है | 
LoadLimit
इससे किसी वाहन पर लागू होने वाली लोड सीमा के बारे में पता चलता है. उदाहरण के लिए, "इस ट्रक में सिर्फ़ 3,500 किलो तक का सामान लाया जा सकता है". loadLimits देखें.
| JSON के काेड में दिखाना | 
|---|
| { "softMaxLoad": string, "costPerUnitAboveSoftMax": number, "startLoadInterval": { object ( | 
| फ़ील्ड | |
|---|---|
| softMaxLoad | 
 लोड की एक सामान्य सीमा.  | 
| costPerUnitAboveSoftMax | 
 अगर इस वाहन के रास्ते पर लोड कभी भी  | 
| startLoadInterval | 
 रूट की शुरुआत में वाहन का लोड होने में लगने वाला समय. | 
| endLoadInterval | 
 रूट के अंत में वाहन का लोड होने का मंज़ूर किया जाने वाला इंटरवल. | 
| maxLoad | 
 लोड की ज़्यादा से ज़्यादा अनुमति वाली रकम. | 
इंटरवल
स्वीकार की जाने वाली लोड रकम का इंटरवल.
| JSON के काेड में दिखाना | 
|---|
| { "min": string, "max": string } | 
| फ़ील्ड | |
|---|---|
| min | 
 कम से कम स्वीकार किया जाने वाला लोड. यह वैल्यू 0 से ज़्यादा होनी चाहिए. अगर दोनों की जानकारी दी गई है, तो  | 
| max | 
 ज़्यादा से ज़्यादा लोड. यह वैल्यू 0 से ज़्यादा होनी चाहिए. अगर यह नहीं बताया गया है, तो ज़्यादा से ज़्यादा लोड पर इस मैसेज का असर नहीं होगा. अगर दोनों की जानकारी दी गई है, तो  | 
DurationLimit
वाहन के रूट की ज़्यादा से ज़्यादा अवधि तय करने वाली सीमा. यह कठोर या मुलायम हो सकता है.
जब सॉफ्ट लिमिट फ़ील्ड तय किया जाता है, तो सॉफ्ट मैक्स थ्रेशोल्ड और उससे जुड़ी लागत, दोनों को एक साथ तय करना ज़रूरी है.
| JSON के काेड में दिखाना | 
|---|
| { "maxDuration": string, "softMaxDuration": string, "quadraticSoftMaxDuration": string, "costPerHourAfterSoftMax": number, "costPerSquareHourAfterQuadraticSoftMax": number } | 
| फ़ील्ड | |
|---|---|
| maxDuration | 
 यह एक तय सीमा है, जो वीडियो की अवधि को ज़्यादा से ज़्यादा maxDuration तक सीमित करती है. सेकंड में एक अवधि, जिसमें ज़्यादा से ज़्यादा नौ दशमलव अंक होते हैं और जो ' | 
| softMaxDuration | 
 अस्थायी सीमा, अधिकतम अवधि सीमा लागू नहीं करती, लेकिन उल्लंघन करने पर रूट के लिए शुल्क देना पड़ता है. यह लागत, मॉडल में बताई गई अन्य लागतों के साथ जोड़ दी जाती है. इन सभी लागतों की इकाई एक ही होती है. अगर  सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि ' | 
| quadraticSoftMaxDuration | 
 यह एक सॉफ़्ट सीमा है, जो गतिविधि की ज़्यादा से ज़्यादा अवधि को लागू नहीं करती. हालांकि, इस सीमा का उल्लंघन करने पर, रास्ते की लागत बढ़ जाती है. यह लागत, गतिविधि की अवधि के हिसाब से बढ़ती है. यह लागत, उसी इकाई के साथ मॉडल में तय की गई अन्य लागतों को जोड़ देती है. अगर तय किया गया हो, तो  
 सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि ' | 
| costPerHourAfterSoftMax | 
 
 कीमत नेगेटिव नहीं होनी चाहिए. | 
| costPerSquareHourAfterQuadraticSoftMax | 
 
 अगर अवधि, थ्रेशोल्ड से कम है, तो अतिरिक्त लागत 0 होगी. ऐसा न होने पर, लागत इस तरह की अवधि पर निर्भर करती है: लागत गैर-ऋणात्मक होनी चाहिए. | 
DistanceLimit
यह एक सीमा है, जो तय करती है कि कितनी दूरी तक यात्रा की जा सकती है. यह हार्ड या सॉफ़्ट हो सकता है.
अगर सॉफ़्ट लिमिट तय की गई है, तो softMaxMeters और costPerKilometerAboveSoftMax, दोनों एट्रिब्यूट की वैल्यू दी जानी चाहिए. साथ ही, वैल्यू शून्य से कम होनी चाहिए.
| JSON के काेड में दिखाना | 
|---|
| { "maxMeters": string, "softMaxMeters": string, "costPerKilometerAboveSoftMax": number } | 
| फ़ील्ड | |
|---|---|
| maxMeters | 
 यह एक तय सीमा है, जो दूरी को ज़्यादा से ज़्यादा maxMeters तक सीमित करती है. सीमा, नेगेटिव नहीं होनी चाहिए. | 
| softMaxMeters | 
 सॉफ्ट लिमिट, तय की गई दूरी की सीमा को लागू नहीं करती. हालांकि, इसकी सीमा का उल्लंघन करने पर, मॉडल में तय की गई अन्य लागतों के साथ एक ही यूनिट में लागत जुड़ जाती है. अगर softMaxMeters तय किया गया है, तो यह maxMeters से कम होना चाहिए और यह नॉन-नेगेटिव होना चाहिए. | 
| costPerKilometerAboveSoftMax | 
 दूरी  लागत गैर-ऋणात्मक होनी चाहिए. | 
BreakRule
वाहन के लिए टाइम ब्रेक जनरेट करने के नियम. जैसे, लंच ब्रेक. ब्रेक, लगातार चलने वाली वह अवधि होती है जिसमें वाहन अपनी मौजूदा जगह पर कोई गतिविधि नहीं करता. साथ ही, वह किसी भी जगह विज़िट नहीं कर सकता. ब्रेक इन स्थितियों में हो सकता है:
- दो विज़िट के बीच की यात्रा के दौरान (जिसमें विज़िट से ठीक पहले या ठीक बाद का समय शामिल होता है, लेकिन विज़िट के बीच का समय शामिल नहीं होता), और इस मामले में यह विज़िट के बीच का ट्रांज़िट समय बढ़ाता है,
- या गाड़ी के शुरू होने से पहले (हो सकता है कि गाड़ी ब्रेक के बीच में शुरू न हो), इस मामले में गाड़ी के शुरू होने के समय पर इसका असर नहीं पड़ता.
- या वाहन खत्म होने के बाद (ठीक इसी तरह, वाहन खत्म होने के समय के साथ).
| JSON के काेड में दिखाना | 
|---|
| { "breakRequests": [ { object ( | 
| फ़ील्ड | |
|---|---|
| breakRequests[] | 
 ब्रेक का क्रम.  | 
| frequencyConstraints[] | 
 कई  | 
BreakRequest
हर वाहन पर लागू होने वाले ब्रेक के क्रम (जैसे, उनका नंबर और क्रम) के बारे में पहले से पता होना चाहिए. दोहराए गए BreakRequest उसी क्रम को तय करते हैं जिसमें वे होने चाहिए. उनकी टाइम विंडो (earliestStartTime / latestStartTime) ओवरलैप हो सकती हैं, लेकिन वे ऑर्डर के हिसाब से होनी चाहिए (इसे चुना गया है).
| JSON के काेड में दिखाना | 
|---|
| { "earliestStartTime": string, "latestStartTime": string, "minDuration": string } | 
| फ़ील्ड | |
|---|---|
| earliestStartTime | 
 ज़रूरी है. ब्रेक की शुरुआत का निचला थ्रेशोल्ड (इसमें शामिल है). आरएफ़सी3339 यूटीसी के "Zulu" फ़ॉर्मैट में एक टाइमस्टैंप, नैनोसेकंड रिज़ॉल्यूशन और नौ दशमलव अंकों के साथ. उदाहरण के लिए:  | 
| latestStartTime | 
 ज़रूरी है. ब्रेक की शुरुआत पर ऊपरी सीमा (शामिल). आरएफ़सी3339 यूटीसी के "ज़ुलू" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंक हैं. उदाहरण के लिए:  | 
| minDuration | 
 ज़रूरी है. ब्रेक लेने की कम से कम अवधि. यह संख्या पॉज़िटिव होनी चाहिए. सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि ' | 
FrequencyConstraint
ऊपर बताए गए ब्रेक की फ़्रीक्वेंसी और अवधि को और भी सीमित किया जा सकता है. इसके लिए, ब्रेक की कम से कम फ़्रीक्वेंसी लागू करें. जैसे, "हर 12 घंटे में कम से कम एक घंटे का ब्रेक होना चाहिए". यह मानते हुए कि "12 घंटे की किसी भी स्लाइडिंग टाइम विंडो में, कम से कम एक घंटे का कम से कम एक ब्रेक होना चाहिए". इसका उदाहरण इस तरह होगा: FrequencyConstraint:
{
   minBreakDuration { seconds: 3600 }         # 1 hour.
   maxInterBreakDuration { seconds: 39600 }  # 11 hours (12 - 1 = 11).
}
समाधान में ब्रेक का समय और अवधि, BreakRequest में पहले से तय की गई समयसीमाओं और कम से कम अवधियों के साथ-साथ, इन सभी सीमाओं का पालन करेगी.
FrequencyConstraint, लगातार न होने वाले ब्रेक पर लागू हो सकता है. उदाहरण के लिए, नीचे दिया गया शेड्यूल, "हर 12 घंटे में 1 घंटा" के उदाहरण के मुताबिक है:
  04:00 vehicle start
   .. performing travel and visits ..
  09:00 1 hour break
  10:00 end of the break
   .. performing travel and visits ..
  12:00 20-min lunch break
  12:20 end of the break
   .. performing travel and visits ..
  21:00 1 hour break
  22:00 end of the break
   .. performing travel and visits ..
  23:59 vehicle end
| JSON के काेड में दिखाना | 
|---|
| { "minBreakDuration": string, "maxInterBreakDuration": string } | 
| फ़ील्ड | |
|---|---|
| minBreakDuration | 
 ज़रूरी है. इस शर्त के लिए, ब्रेक की कम से कम अवधि. शून्य से बड़ी होनी चाहिए.  सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि ' | 
| maxInterBreakDuration | 
 ज़रूरी है. रास्ते में किसी भी समयावधि का ज़्यादा से ज़्यादा स्पैन, जिसमें कम से कम  सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि ' | 
DurationDistanceMatrix
इस सेटिंग से, यात्रा और वाहन के शुरू होने की जगहों से लेकर यात्रा और वाहन के खत्म होने की जगहों तक, कुल समय और दूरी की जानकारी मिलती है.
| JSON के काेड में दिखाना | 
|---|
| {
  "rows": [
    {
      object ( | 
| फ़ील्ड | |
|---|---|
| rows[] | 
 यह अवधि और दूरी के मैट्रिक की पंक्तियों के बारे में बताता है. इसमें  | 
| vehicleStartTag | 
 यह टैग तय करता है कि यह अवधि और दूरी मैट्रिक किन वाहनों पर लागू होती है. अगर यह एट्रिब्यूट खाली है, तो यह सभी वाहनों पर लागू होता है. साथ ही, इसमें सिर्फ़ एक मैट्रिक हो सकती है. वाहन के हर स्टार्ट को सिर्फ़ एक मैट्रिक्स से मेल खाना चाहिए. इसका मतलब है कि  सभी मैट्रिक में अलग-अलग  | 
पंक्ति
यह समय और दूरी की मैट्रिक की लाइन तय करता है.
| JSON के काेड में दिखाना | 
|---|
| { "durations": [ string ], "meters": [ number ] } | 
| फ़ील्ड | |
|---|---|
| durations[] | 
 किसी लाइन के लिए, कुल समय की वैल्यू. इसमें  सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि ' | 
| meters[] | 
 किसी पंक्ति के लिए दूरी की वैल्यू. अगर मॉडल में दूरी से जुड़ी कोई लागत या पाबंदी नहीं है, तो इसे खाली छोड़ा जा सकता है. अगर ऐसा नहीं है, तो इसमें  | 
TransitionAttributes
किसी रूट पर लगातार दो विज़िट के बीच ट्रांज़िशन के एट्रिब्यूट बताता है. एक ही ट्रांज़िशन पर कई TransitionAttributes लागू हो सकते हैं: इस स्थिति में, सभी अतिरिक्त शुल्क जुड़ जाते हैं और सबसे सख्त पाबंदी या सीमा लागू होती है (सामान्य "AND" सिमैंटिक का इस्तेमाल करके).
| JSON के काेड में दिखाना | 
|---|
| {
  "srcTag": string,
  "excludedSrcTag": string,
  "dstTag": string,
  "excludedDstTag": string,
  "cost": number,
  "costPerKilometer": number,
  "distanceLimit": {
    object ( | 
| फ़ील्ड | |
|---|---|
| srcTag | 
 (src->dst) ट्रांज़िशन के सेट को तय करने वाले टैग, इन एट्रिब्यूट पर लागू होते हैं. सोर्स विज़िट या वाहन शुरू होने की जानकारी तब ही मैच होती है, जब उसके  | 
| excludedSrcTag | 
 
 | 
| dstTag | 
 डेस्टिनेशन विज़िट या वाहन के खत्म होने की जानकारी तब ही मैच होती है, जब उसके  | 
| excludedDstTag | 
 
 | 
| cost | 
 इस ट्रांज़िशन को लागू करने की लागत बताता है. यह मॉडल में मौजूद अन्य सभी लागतों की तरह ही एक ही इकाई में होती है. साथ ही, यह नकारात्मक नहीं होनी चाहिए. यह शुल्क, अन्य सभी मौजूदा शुल्कों के ऊपर लागू होता है. | 
| costPerKilometer | 
 इस ट्रांज़िशन के दौरान, यात्रा की गई दूरी पर लागू होने वाली हर किलोमीटर की कीमत बताता है. यह वैल्यू, वाहनों पर बताए गए किसी भी  | 
| distanceLimit | 
 यह बदलाव करते समय तय की गई दूरी की जानकारी देता है. 2021/06 से, सिर्फ़ अस्थायी सीमाओं का इस्तेमाल किया जा सकता है. | 
| delay | 
 इस ट्रांज़िशन को लागू करने में लगने वाले समय की जानकारी देता है. यह देरी हमेशा सोर्स विज़िट खत्म होने के बाद और डेस्टिनेशन विज़िट शुरू होने से पहले होती है. सेकंड में एक अवधि, जिसमें ज़्यादा से ज़्यादा नौ दशमलव अंक होते हैं और जो ' | 
ShipmentTypeIncompatibility
इससे शिपमेंट के shipmentType के आधार पर, शिपमेंट के बीच की गड़बड़ियों के बारे में पता चलता है. एक ही रास्ते पर, एक-दूसरे के साथ काम न करने वाले शिपमेंट दिखने पर पाबंदी, शिपमेंट के साथ काम न करने वाले मोड के आधार पर लगाई जाती है.
| JSON के काेड में दिखाना | 
|---|
| {
  "types": [
    string
  ],
  "incompatibilityMode": enum ( | 
| फ़ील्ड | |
|---|---|
| types[] | 
 असंगत प्रकारों की सूची. सूची में शामिल दो शिपमेंट, जिनका  | 
| incompatibilityMode | 
 काम न करने की समस्या पर लागू मोड. | 
IncompatibilityMode
ये मोड बताते हैं कि एक ही रास्ते पर, एक-दूसरे के साथ काम न करने वाले शिपमेंट को दिखाने पर कैसे पाबंदी लगाई जाती है.
| Enums | |
|---|---|
| INCOMPATIBILITY_MODE_UNSPECIFIED | काम न करने वाला कोई मोड. इस वैल्यू का इस्तेमाल कभी नहीं किया जाना चाहिए. | 
| NOT_PERFORMED_BY_SAME_VEHICLE | इस मोड में, एक-दूसरे के साथ काम न करने वाले दो शिपमेंट के लिए, एक ही वाहन का इस्तेमाल नहीं किया जा सकता. | 
| NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY | 
 
 | 
ShipmentTypeRequirement
शिपमेंट के shipmentType के आधार पर, शिपमेंट के बीच की ज़रूरी शर्तों के बारे में बताता है. ज़रूरी शर्तों के बारे में जानकारी, ज़रूरी शर्त के मोड से मिलती है.
| JSON के काेड में दिखाना | 
|---|
| {
  "requiredShipmentTypeAlternatives": [
    string
  ],
  "dependentShipmentTypes": [
    string
  ],
  "requirementMode": enum ( | 
| फ़ील्ड | |
|---|---|
| requiredShipmentTypeAlternatives[] | 
 
 | 
| dependentShipmentTypes[] | 
 
 ध्यान दें: ज़रूरी शर्तों की ऐसी चेन बनाने की अनुमति नहीं है जिसमें  | 
| requirementMode | 
 ज़रूरी शर्त पर लागू मोड. | 
RequirementMode
किसी रास्ते पर डिपेंडेंट शिपमेंट के दिखने के तरीके तय करने वाले मोड.
| Enums | |
|---|---|
| REQUIREMENT_MODE_UNSPECIFIED | ज़रूरी शर्तों वाला मोड तय नहीं है. इस वैल्यू का कभी भी इस्तेमाल नहीं किया जाना चाहिए. | 
| PERFORMED_BY_SAME_VEHICLE | इस मोड में, सभी "डिपेंडेंट" शिपमेंट के लिए एक ही वाहन शेयर करना ज़रूरी है. हालांकि, यह ज़रूरी है कि कम से कम एक "ज़रूरी" शिपमेंट के लिए यह जानकारी दी गई हो. | 
| IN_SAME_VEHICLE_AT_PICKUP_TIME | 
 इसलिए, "डिपेंडेंट" शिपमेंट के लिए, इनमें से कोई एक शर्त पूरी होनी चाहिए: 
 | 
| IN_SAME_VEHICLE_AT_DELIVERY_TIME | पहले की तरह ही, हालांकि, "निर्भर" शिपमेंट के लिए डिलीवरी के समय उनके वाहन पर एक "ज़रूरी" शिपमेंट होना चाहिए. | 
PrecedenceRule
दो इवेंट के बीच प्राथमिकता का नियम (हर इवेंट, शिपमेंट का पिकअप या डिलीवरी है): "पहले" इवेंट के शुरू होने के कम से कम offsetDuration बाद, "दूसरे" इवेंट को शुरू करना होगा.
कई प्राथमिकताएं एक ही (या मिलते-जुलते) इवेंट का रेफ़रंस दे सकती हैं. उदाहरण के लिए, "A की डिलीवरी के बाद B को पिकअप किया जाता है" और "B के पिकअप के बाद C को पिकअप किया जाता है".
इसके अलावा, प्राथमिकताएं सिर्फ़ तब लागू होती हैं, जब दोनों शिपमेंट पूरे किए जाते हैं. ऐसा न होने पर, उन्हें अनदेखा कर दिया जाता है.
| JSON के काेड में दिखाना | 
|---|
| { "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } | 
| फ़ील्ड | |
|---|---|
| firstIsDelivery | 
 इससे पता चलता है कि "पहला" इवेंट डिलीवरी है या नहीं. | 
| secondIsDelivery | 
 इससे पता चलता है कि "दूसरा" इवेंट डिलीवरी है या नहीं. | 
| offsetDuration | 
 "पहले" और "दूसरे" इवेंट के बीच का ऑफ़सेट. यह नेगेटिव हो सकता है. सेकंड में एक अवधि, जिसमें ज़्यादा से ज़्यादा नौ दशमलव अंक होते हैं और जो ' | 
| firstIndex | 
 "पहले" इवेंट का शिपमेंट इंडेक्स. इस फ़ील्ड के बारे में बताना ज़रूरी है. | 
| secondIndex | 
 "दूसरे" इवेंट का शिपमेंट इंडेक्स. यह फ़ील्ड भरना ज़रूरी है. |