---
updatedAt: 2025-05-21T09:37:30.000Z
agentTools:
  projectIndex: https://toursolver.readme.io/llms.txt
---

# Get known resources

Get resources defined in ToursolverCloud GUI

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "servers": [
    {
      "url": "https://api.geoconcept.com/tsapi",
      "description": "Production",
      "variables": {}
    }
  ],
  "info": {
    "contact": {
      "email": "support@nomadia-group.com",
      "name": "Nomadia Group",
      "url": "https://www.nomadia-group.com/contact/"
    },
    "description": "Web APIs for TourSolver.",
    "title": "TourSolver API",
    "version": "2.0"
  },
  "tags": [
    {
      "description": "Start optimizations, follow the progress, retrieve the results, etc",
      "name": "Optimization"
    }
  ],
  "paths": {
    "/resources": {
      "get": {
        "description": "Get resources defined in ToursolverCloud GUI",
        "operationId": "getResources",
        "parameters": [
          {
            "description": "if a resource name is specified (team name will be ignored), only one resource will be returned",
            "in": "query",
            "name": "resourceName",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "if a team name is specified, only the resources of this team will returned",
            "in": "query",
            "name": "teamName",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourcesResult"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ResourcesResult"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ResourcesResult"
                }
              }
            },
            "description": "ResourcesResult with a list of resources"
          }
        },
        "security": [
          {
            "apiKey": []
          }
        ],
        "servers": [
          {
            "description": "Production",
            "url": "https://api.geoconcept.com/tsapi",
            "variables": {}
          }
        ],
        "summary": "Get known resources",
        "tags": [
          "Optimization"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "DayOff": {
        "type": "object",
        "properties": {
          "end": {
            "type": "string",
            "format": "date"
          },
          "reason": {
            "type": "string"
          },
          "start": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "ResourcesResult": {
        "type": "object",
        "description": "ResourcesResult with a list of resources",
        "properties": {
          "errCode": {
            "type": "string",
            "description": "Error code",
            "enum": [
              "0",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "100",
              "101",
              "102",
              "103",
              "104",
              "105",
              "106",
              "107",
              "108",
              "109",
              "110",
              "111",
              "112",
              "113",
              "114",
              "115",
              "116",
              "200",
              "201",
              "300",
              "301",
              "400",
              "401",
              "500",
              "501",
              "502",
              "600",
              "601",
              "602",
              "603",
              "604",
              "1000",
              "1001",
              "1002",
              "1003",
              "1004",
              "1006",
              "1007",
              "1008",
              "2000",
              "2001",
              "2002",
              "2003",
              "2004",
              "2005",
              "2006",
              "2007",
              "2008",
              "2009",
              "2010",
              "2011",
              "2021",
              "2022",
              "2023",
              "2024",
              "2025",
              "2026",
              "2027",
              "2028",
              "2029",
              "2030",
              "2031",
              "3000",
              "3001",
              "3002",
              "4000",
              "4001",
              "4002",
              "5000",
              "5001",
              "5002",
              "5003",
              "6000"
            ]
          },
          "message": {
            "type": "string",
            "description": "Error message"
          },
          "resources": {
            "type": "array",
            "description": "List of resources",
            "items": {
              "$ref": "#/components/schemas/TSResource"
            }
          },
          "status": {
            "type": "string",
            "description": "OK or ERROR",
            "enum": [
              "OK",
              "ERROR"
            ]
          }
        }
      },
      "TSAdditionalCost": {
        "type": "object",
        "description": "List of additional cost (cost per order type).",
        "properties": {
          "type": {
            "type": "string"
          },
          "value": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "TSPause": {
        "type": "object",
        "description": "The lunch break.\n\n**Default:** no lunch break.",
        "properties": {
          "duration": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "durationEnabled": {
            "type": "boolean"
          },
          "end": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "endEnabled": {
            "type": "boolean"
          },
          "start": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "startEnabled": {
            "type": "boolean"
          }
        },
        "xml": {
          "name": "pause"
        }
      },
      "TSResource": {
        "type": "object",
        "description": "The Resources object stores the collection of elements which will perform\ndeliveries, pick-ups, commercial visits, etc.\n\nEach element can be seen as a driver/vehicle pair and their related driving\nand working constraints.\n\nIt is composed of an identity tag, and location coordinates (base or depot,\ndeparture, arrival location). Eventually, each element can be configured\nthrough a set of constraints which store information like capacity, driver\nwork time, penalties, and so on.",
        "properties": {
          "additionalCostOperator": {
            "type": "string",
            "description": "Operator used to compute additional cost (see toursResult object).\n\nPossible values are:\n\n* SUM: tour additional cost will be the sum of additional costs of planned orders.\n\n* MAX: tour additional cost will be the maximum value of additional costs of planned orders.\n\n* MIN: tour additional cost will be the minimum value of additional costs of planned orders.\n\n* AVERAGE: tour additional cost will be the average of additional costs of planned orders.",
            "enum": [
              "SUM",
              "MAX",
              "MIN",
              "AVERAGE"
            ]
          },
          "additionalCostOrderCustomDataName": {
            "type": "string",
            "description": "Name of TSOrder customData that will contain the TSOrder type used for\nadditional cost computation (see toursResult object)."
          },
          "additionalCosts": {
            "type": "array",
            "description": "List of additional cost (cost per order type).",
            "items": {
              "$ref": "#/components/schemas/TSAdditionalCost"
            }
          },
          "allowedNights": {
            "type": "string"
          },
          "available": {
            "type": "boolean",
            "description": "Indicates whether a resource is included in the planning process or not.\nThis constraint enables you to easily modify your optimization problem\nconfiguration without having to add or delete original data.\n\n* Set it to True to include a resource element in the planning process.\n\n* Set it to False to ignore it: it will not be used in the planning.\n\n**Type:** Boolean. **Default:** not used.\n\n**Example:** true"
          },
          "avgConsumption": {
            "type": "number",
            "format": "double",
            "description": "Average consumption of the resource.\nUse this constraint to specify the average consumption of the resource.\nThis consumption must be defined in liters per 100 distance unit (km or miles).\n\n**Default:** The consumption indicated in the VehicleProfile.Consumption property.\n\n@documentationExample 8.0"
          },
          "briefingDuration": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "capacities": {
            "type": "array",
            "description": "The total product capacity a resource can carry.\nUse this constraint to specify the amount of product a resource can deliver or pick-up.\nIt must be linked with the customers' related quantity constraint.\n23 more dimensions can be used in order to specify various products.\nThey must be linked with the customers' related dimensions.\n\n**Type:** float (maximum of 3 significant digits after decimal separator).\n**Default:** None. **Max:** 2,147,483.\n\n**Example:**\n\n* Use it to store the total number of packages a resource can deliver before reloading,\nwhen working with packages.\n\n* Use it to store the total number of litres a resource can deliver before reloading,\nwhen working with liquids.\n\n* Use multiple capacity dimensions when working with multiple products:\nwhen delivering fuels, you will use as many capacities as types of fuels.\n\n**Example:** 12.0",
            "items": {
              "type": "number",
              "format": "double",
              "xml": {
                "name": "capacity"
              }
            },
            "maxItems": 24,
            "minItems": 0,
            "xml": {
              "wrapped": true
            }
          },
          "customDataMap": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Private custom data.\nUse this feature when you need to keep attributes values of your own into the optimization context.\nFor instance, if you need the address of an element, store it there."
            },
            "description": "Private custom data.\nUse this feature when you need to keep attributes values of your own into the optimization context.\nFor instance, if you need the address of an element, store it there.",
            "xml": {
              "name": "customData",
              "wrapped": true
            }
          },
          "dailyWorkTime": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "daysOff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOff"
            }
          },
          "debriefingDuration": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "driveRestAtCustomer": {
            "type": "boolean",
            "description": "Indicates whether time spent at customer during deliveries can be considered as a rest break.\n\n* Set it to True if a visit can be considered as a rest break, as soon as its duration is equal or higher than the legalMinRestDuration constraint.\n\n* Set it to False if not.\n\n**Type:** Boolean. **Default:** False."
          },
          "driveRestAtDepot": {
            "type": "boolean",
            "description": "Indicates whether time spent at depot during a reload break can be considered as drive break or not.\n\nUse this constraint to take into account drive time legislation in your planning results.\n\n* Set it to True if load breaks can be considered as drive breaks, as soon as their duration is equal or higher than the legalMinRestDuration constraint.\n\n* Set it to False if not.\n\n**Type:** Boolean. **Default:** False."
          },
          "endX": {
            "type": "number",
            "format": "double",
            "description": "Longitude of resource arrival.\n\nSpecify it only if arrival and start are not the same."
          },
          "endY": {
            "type": "number",
            "format": "double"
          },
          "extraTravelPenalties": {
            "type": "array",
            "description": "The costs for a resource of driving for one distance unit.",
            "items": {
              "$ref": "#/components/schemas/TSTravelPenalty"
            },
            "xml": {
              "wrapped": true
            }
          },
          "fixedLoadingDuration": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "fixedUnloadingDuration": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "fuelCode": {
            "type": "string",
            "description": "Vehicles fuel type. Possible values are:\n\n* diesel\n\n* undefined\n\n* unleaded."
          },
          "fuelType": {
            "type": "integer",
            "format": "int32",
            "description": "The fuel type of the resource.\n\nUse this constraint to specify the fuel type of the resource. Available fuel types are:\n\n* 0: Unknown fuel type\n\n* 1: No fuel type (pedestrian)\n\n* 2: Diesel\n\n* 3: Unleaded fuel\n\n* 4: LPG\n\n**Type:** Integer. **Default:** The fuel type indicated in the VehicleProfile.FuelType property."
          },
          "globalCapacity": {
            "type": "number",
            "format": "double",
            "description": "Global capacity for a resource. This constraint unables to set a maximum\ncapacity on a resource, whatever product is carried. If both global capacity and capacity\nper product are to be used, set True for the value of *useAllCapacities*.\n\n**Type:** Float **Default:** None **Max:** 2,147,483.\n\n**Example:** Set globalCapacity = 15 and useAllCapacities = False.\nThe global capacity only is considered: the vehicle can carry 15 quantities of products,\nwhatever product is to be carried."
          },
          "id": {
            "type": "string",
            "description": "The unique identifier of the resource.\n\nThis id can not contain special characters like '=' or ':'"
          },
          "legalDailyDriveDuration": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "legalDailyRestDuration": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "legalDriveRestDuration": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "legalMaxDriveDuration": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "legalMinRestDuration": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "legalWorkDuration": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "loadBeforeDeparture": {
            "type": "boolean",
            "description": "Indicates whether a resource must load before starting a tour or not.\n\n* Set this constraint to True to insert a load break at depot before the tour starts.\n\n* Set it to False to consider the vehicle loaded.\n\n**Type:** Boolean. **Default:** False."
          },
          "loadOnReturn": {
            "type": "boolean",
            "description": "Indicates whether a resource must reload after a tour or not.\n\n* Set this constraint to True to insert a load break at depot after the tour ends.\n\n* Set it to False to not reload the vehicle.\n\n**Type:** Boolean. **Default:** False."
          },
          "loadingDurationPerUnit": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "lunch": {
            "$ref": "#/components/schemas/TSPause"
          },
          "maxNightsOutPerJourney": {
            "type": "integer",
            "format": "int32",
            "description": "The number of nights a resource can spend out to perform deliveries before coming back to base.\n\nUse this constraint to enable night breaks trip: it will store how many days a resource can drive away from depot. Unless the vehicle needs to reload, it will not come back before.\n\n**Type:** integer. **Default:** not used.\n\n**Example: ** maxNightsOutPerJourney = 4, workDays = 1=>5. The resource can perform deliveries during 5 days (and 4 nights) without coming back to depot. Starting on day 1, it must come back to depot on day 5."
          },
          "maxNightsOutPerWeek": {
            "type": "integer",
            "format": "int32",
            "description": "The number of nights a resource can spend out to perform deliveries before coming back to base in a week.\n\n**Type:** integer. **Default:** not used."
          },
          "maximumDistance": {
            "type": "integer",
            "format": "int32",
            "description": "The maximum distance the resource should travel per day.\n\nUse this constraint to specify the distance the resource should not exceed in one day.\n\n**Type:** integer **Default:** -1 (no limit)"
          },
          "maximumReloads": {
            "type": "integer",
            "format": "int32",
            "description": "Value for maximum number of reloads per day.\n\n@see maximumReloadsPenalty"
          },
          "maximumReloadsPenalty": {
            "type": "number",
            "format": "double",
            "description": "Value of the penalty if the resource exceeds the maximum number of\nreloads per day.\n\nIf the resource exceeds the maximum number of reloads per day, it will be\npenalized by the maximum reloads penalty multiplied by the number of\nreloads' overtaking. The default value is 1024 if the constraint\nmaximumReloads is set. See also maximumReloads.\n\n@see maximumReloads"
          },
          "maximumVisits": {
            "type": "integer",
            "format": "int32",
            "description": "The maximum number of visits the resource can perform in one day.\n\n**Type:** integer **Default:** -1 (no limit) **Max:** 2,147,483."
          },
          "minDriveDuration": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "minimumQuantity": {
            "type": "number",
            "format": "double",
            "description": "Value for minimum quantity to deliver.\n\nIf the resource has a non-null minimum quantity to deliver constraint\nvalue, the resource can visit an order only if the quantity to be\npicked-up or delivered at this order is higher than the constraint value.\n\n**Example:**\n\n* set order *quantity* to 3 and resource *minimumQuantity* to 2:\nresource might visit the order\n\n* set order *quantity* to 3 and resource *minimumQuantity* to 5:\nresource cannot visit the order\n\n**Type:** float"
          },
          "mobileLogin": {
            "type": "string",
            "description": "Mobile login to be specified only if you need to be able to export the\noptimization result to operation planning from TsCloud GUI. If you trigger operational\nplanning export from the API, you will still need to specify the mapping between resource\nname and login."
          },
          "nightPenalty": {
            "type": "number",
            "format": "double",
            "description": "The night cost of a resource when planning night breaks.\n\nUse this constraint to specify how much a night out costs (lunch, bed, breakfast...) for a resource when night breaks are allowed.\n\n**Type:** float. **Default:** 0."
          },
          "noReload": {
            "type": "boolean",
            "description": "Constraint providing resource to reload at depot during a tour.\n\nIf none of the constraints loadBeforeDeparture and loadOnReturn is\nactivated, the resource is never loading at depot. If one of these\nconstraints is activated the resource is loading once per tour, either at\nthe beginning of the tour or at the end of it. If both constraints are\nactivated then the resource is loading twice a tour, at the beginning and\nat the end.\n\nWith standard solver only: solver always works with solution cost\ncomparison, so it may allow reloads even if you set noReload to true if\nthe solution cost is really lower. The only way to totally prevent\nreloads is to set fixedLoadingDuration to a very long duration (20:00:00\nfor instance). The solver will warn you about this long duration but will\nnot add reloads to the tours. Caution: Don't do this if you are using\nloadOnReturn or loadBeforeDeparture.\n\n**Default:** False"
          },
          "nonUsePenalty": {
            "type": "number",
            "format": "double",
            "description": "A cost paid for NOT using a resource in the computed planning.\n\nUse this constraint to penalize the fact that an available resource is not used in the planning. It proves useful when you must use all the resources in the Resources collection: you will prevent the solver from optimizing the number of resources, as using them would be too expensive a solution.\n\n**Type:** float. **Default:** not used.\n\n**Example:** Use it to specify parking taxes when a vehicle performs no tour."
          },
          "openDistanceStart": {
            "type": "boolean"
          },
          "openDistanceStop": {
            "type": "boolean"
          },
          "openStart": {
            "type": "boolean",
            "description": "Indicates whether or not a tour evaluation starts from the resource start location or from the first customer's place.\n\n* Set it to True to begin the tour at the first customer (no cost will be computed between the resource start location and the first customer).\n\n* Set it to False to begin the tour at the resource start location.\n\n**Type:** Boolean. **Default:** False."
          },
          "openStop": {
            "type": "boolean",
            "description": "Indicates whether or not a tour evaluation ends at the last customer's place or at the resource end location.\n\n* Set it to True to finish the tour at the last customer location (no cost will be computed between the last customer and the resource end location).\n\n* Set it to False to finish the tour at the resource end location.\n\n**Type:** Boolean. **Default:** False."
          },
          "openTimeStart": {
            "type": "boolean"
          },
          "openTimeStop": {
            "type": "boolean"
          },
          "optimumStartTime": {
            "type": "boolean",
            "description": "Adapts the resource start time to the best solution.\n\n* Set this constraint to False to start the tour at the time indicated by the workStartTime constraint.\n\n* Set this constraint to True to optimize the resource start time and enable the use of the dailyWorkTime constraint.\n\nNotice that, in both cases, the tour will not start before the time stored in the workStartTime constraint and that the use of the weeklyWorkTime constraint is enabled.\n\n**Type:** Boolean. **Default:** False."
          },
          "otherWorkDaysList": {
            "type": "array",
            "description": "Other working days (see workingDays)\n\nYou can define up to 9 different working days slots. If you do so, you\ncan then specify distinct work start and end times with\notherWorkStartTimes and otherWorkEndTimes.\n\n**Type:** List of string (see workingDays format) **Example:**\n[\"2\",\"3=>5\"]",
            "items": {
              "type": "string",
              "xml": {
                "name": "otherWorkingDay"
              }
            },
            "maxItems": 9,
            "minItems": 0,
            "xml": {
              "name": "otherWorkingDays",
              "wrapped": true
            }
          },
          "otherWorkEndTimes": {
            "type": "array",
            "description": "The end time of the resource work time window for the \"other working\ndays\" (see otherWorkDaysList).\n\nIf you defined other working days, use this constraint to specify the\ntime at which the tour must end. These times can be adjusted using the\noptimumStartTime parameter.\n\nYou can define up to 9 different end times here, corresponding to the\ndifferent \"other working days\" slots.\n\n**Type:** List of \"hh:mm:ss\", DateTime. **Example:**\n[\"18:00:00\",\"19:00:00\"]",
            "items": {
              "type": "string",
              "description": "Time, can be expressed in minutes or in hh:mm:ss format.",
              "xml": {
                "name": "otherWorkEndTime"
              }
            },
            "maxItems": 9,
            "minItems": 0,
            "xml": {
              "wrapped": true
            }
          },
          "otherWorkStartTimes": {
            "type": "array",
            "description": "The start time of the resource work time window for the \"other working\ndays\" (see otherWorkDaysList).\n\nIf you defined other working days, use this constraint to specify the\ntime at which the tour must start. These times can be adjusted using the\noptimumStartTime parameter.\n\nYou can define up to 9 different start times here, corresponding to the\ndifferent \"other working days\" slots.\n\n**Type:** List of \"hh:mm:ss\", DateTime. **Example:**\n[\"08:00:00\",\"09:00:00\"]",
            "items": {
              "type": "string",
              "description": "Time, can be expressed in minutes or in hh:mm:ss format.",
              "xml": {
                "name": "otherWorkStartTime"
              }
            },
            "maxItems": 9,
            "minItems": 0,
            "xml": {
              "wrapped": true
            }
          },
          "overnightMinDriving": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "overtimeDurations": {
            "type": "array",
            "description": "The duration of the resource overwork periods. (max 2 periods)\n\nUse this constraint when you need to define 2 different overwork periods with regard to daily work time and their related surcharge. No overwork period can be defined with regard to weekly work time.\n\n**Type:** \"hh:mm:ss\", DateTime. **Default:** not used (no second overtime period).\n\n**Example:**\n\nworkPenalty = 10, first overtime duration = \"02:00:00\", first overtime penalty = 5, second overtime duration = \"01:00:00\", second overtime penalty = 10.\n\nThe cost of the resource during the daily working time is 10 euros per hour. The resource can work during 3 more hours and each overworked hour will cost 10 + 5 euros for 2 hours and 10 + 10 euros for the last hour.",
            "items": {
              "type": "string",
              "description": "Time, can be expressed in minutes or in hh:mm:ss format.",
              "xml": {
                "name": "overtimeDuration"
              }
            },
            "xml": {
              "wrapped": true
            }
          },
          "overtimePenalties": {
            "type": "array",
            "description": "A surcharge for a resource's overwork period (max 2 periods).\n\nUse this constraint to specify additional cost to workPenalty as overwork time. You can define up to 2 overwork periods with regard to daily work time and their related surcharge. No overwork period can be defined with regard to weekly work time.\n\n**Type:** float. **Default:** not used.\n\n**Example:**\n\nworkPenalty = 10, first overtime duration = \"02:00:00\", first overtime penalty = 5.\n\nThe cost of the resource during the daily working time is 10 euros per hour. The resource can work during 2 hours after the daily working time and each overworked hour will cost 15 (10 + 5) euros.",
            "items": {
              "type": "number",
              "format": "double",
              "xml": {
                "name": "overtimePenalty"
              }
            },
            "maxItems": 2,
            "minItems": 0,
            "xml": {
              "wrapped": true
            }
          },
          "parkingTime": {
            "type": "integer",
            "format": "int32",
            "description": "Parking time in seconds added to the travel time before each order.\n\nThis parking time is applied only once for a group of aggregated orders."
          },
          "payWholeDay": {
            "type": "boolean",
            "description": "Indicates whether a whole workday cost is computed as soon as a resource works even a few hours.\n\n* Set this constraint to True to account for a whole day cost.\n\n* Set it to False to account only for effective worked hours.\n\n**Type:** Boolean. **Default:** False."
          },
          "penaltyPerVisit": {
            "type": "number",
            "format": "double",
            "description": "An additional fixed cost applied each time the resource performs a visit.\n\nUse this constraint when the cost of a resource may vary according to the\nnumber of visits it performs.\n\n**Type:** float. **Default:** 0."
          },
          "providedProducts": {
            "type": "string",
            "description": "The list of products provided by a resource.\n\nThis constraint is linked with tsDepot requiredProducts constraint: a depot with a required product can only be visited by a resource providing it.\n\n**Type:** string as a list of products separated with commas. **Default:** not used.\n\n**Example:** Specify \"Oxygen\" in the resource can provide oxygen."
          },
          "providedSkills": {
            "type": "string",
            "description": "The list of characteristics provided by a resource.\nThis constraint is linked with the same order constraint:\na customer with a required skill can only be delivered by a resource providing it.\n\nCaution: use only alphanumeric characters (and _) in your characteristics values,\notherwise the skill will be ignored.\n\n**Type:** string as a list of characteristics separated with commas.\n**Default:** not used.\n\n**Example:**\n\n* Specify \"Maintenance\" in the provided skills of a resource designed to perform maintenance visits.\n\n* Specify \"Small vehicle\" to the provided skills of a resource able to perform downtown visits."
          },
          "speedAdjustment": {
            "type": "integer",
            "format": "int32",
            "description": "A factor to increase or decrease the vehicle speed.\n\nWhenever users observe a significant gap between estimated speeds and the\nreal ones, they can adjust them by using this factor. It is expressed as\na percentage of the used speed.\n\n**Type:** float. **Default:** not used.\n\n**Example:**\n\n* speedAdjustment = 110: resource speeds will be 10% higher than the used\nspeeds.\n\n* speedAdjustment = 80: resource speeds will be 20% lower than the used\nspeeds."
          },
          "startTravelTimeModifier": {
            "$ref": "#/components/schemas/TSTravelTimeModifier"
          },
          "startX": {
            "type": "number",
            "format": "double",
            "description": "Longitude of resource start (and arrival if no endX provided)."
          },
          "startY": {
            "type": "number",
            "format": "double",
            "description": "Latitude of resource start (and arrival if no endY provided)."
          },
          "stopTravelTimeModifier": {
            "$ref": "#/components/schemas/TSTravelTimeModifier"
          },
          "tomTomWebFleetIdentifier": {
            "type": "string"
          },
          "travelPenalty": {
            "type": "number",
            "format": "double",
            "description": "The cost for a resource of driving for one distance unit.\n\nUse this constraint to specify the average resource taxes (gasoline,\nwear,...) when driving one distance unit.\n\n**Type:** float **Default:** 1.5\n\n**Example:** if travelPenalty = 0.5 (euro per distance unit) and the\ndriven distance is about 100 units (km or miles), the total distance cost\nis 0.5 * 100 = 50 euros."
          },
          "travelTimeModifier": {
            "$ref": "#/components/schemas/TSTravelTimeModifier"
          },
          "unloadingDurationPerUnit": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "useAllCapacities": {
            "type": "boolean",
            "description": "Determines if both global capacity and capacities per product should be\nconsidered in the optimization or only global capacity.\n\n**Type:** Boolean **Default:** False\n\n**Example:** Set globalCapacity = 15 and useAllCapacities = False.\nThe global capacity only is considered: the vehicle can carry 15 quantities of products,\nwhatever product is to be carried."
          },
          "useInPlanningPenalty": {
            "type": "number",
            "format": "double",
            "description": "Penalty value if the resource is used in the planning.\n\nUse this constraint to specify the penalty if the resource is used at least one day in the planning.\n\n**Type:** float **Default:** 0"
          },
          "usePenalty": {
            "type": "number",
            "format": "double",
            "description": "A cost paid for using the resource in the computed planning. Use this\nconstraint to ponderate the cost of using a resource element of the\nResources collection, when working with rented vehicle for instance. You\ncan use it as well to reduce the number of resources used to perform the\ndeliveries.\n\n**Type:** float. **Default:** not used.\n\n**Example:**\n\nAdd the cost of use to the distance and hourly costs when working with a\nservice provider. The solver, aiming at cost reduction, will try to\neliminate this resource first, as it is the most expensive."
          },
          "vehicleCode": {
            "type": "string",
            "description": "Vehicles regulations.\n\nPossible values are:\n\n* bicycle\n\n* bus\n\n* car\n\n* deliveryIntermediateVehicle\n\n* deliveryLightCommercialVehicle\n\n* emergencyTruck\n\n* emergencyVehicle\n\n* intermediateVehicle\n\n* lightCommercialVehicle\n\n* pedestrian\n\n* taxi\n\n* truck\n\nIf not specified, vehicle type defined in UI will be used."
          },
          "weeklyWorkTime": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "workEndTime": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "workPenalty": {
            "type": "number",
            "format": "double",
            "description": "The cost of a resource working for an hour.\n\nUse this constraint to specify the resource wages when working for an\nhour.\n\n**Type:** float. **Default:** 9.\n\n**Example:**\n\nIf workPenalty = 10 (euros per hour) and daily work time is about 8\nhours, the total daily work cost is 10 * 8 = 80 euros."
          },
          "workStartTime": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "workingDays": {
            "type": "string",
            "description": "The resource's work days. Use this constraint to specify the days a\nresource works in the planning period. This constraint is linked with the\norders possible visit days constraints of Orders object elements and with\nthe depot days of opening constraints of Depots object elements. Thus,\ncustomers and resources must have matching days for deliveries to be\npossible, and depots must be opened on resources working days to be used.\nA maximum of 64 days can be defined as work days. Working days can be\nwritten as integers (1,2...) or dates (14/05/2010, 15/05/2010, ...). If\nyou are using dates, the oldest date in the workDays constraint defines\nday 1.\n\n**Type:** string values containing days separated with commas (like \"1,\n2, 5\" or \"14/05/2010, 15/05/2010, 18/05/2010\" to specify day 1, day 2 and\nday 5) or intervals (like \"1-10\", \"2=>5\" or \"14/05/2010=>24/05/2010\")\nwhere 1 (or 14/05/2010) is the first day of the planning period. For day\nintervals, prefer the \"=>\" separator. Be careful, if the separator of\ndate is - then \"1-5\" corresponds to May 1st of the current year. If you\nmix integer and date formats, beware that day 1 will all the same be\ndefined by the oldest available date.\n\n**Default:** \"1\".\n\n**Example:**\n\nYou can define a single working day: Specify \"1\", \"3\" or \"10\" for the\nresource to work on day 1, day 3 or day 10 of the planning period. You\ncan also define working periods. Specify \"1-5\" or \"1=>5\" or\n\"14/05/2010=>18/05/2010\" for the resource to work on a 5-days period\n(from day 1 to day 5 included).\n\nYou can also mix single day and periods. Specify \"1, 3=>5\" for the\nresource to work on day 1 and from day 3 to 5 of the planning period."
          }
        },
        "required": [
          "id",
          "startX",
          "startY"
        ]
      },
      "TSTravelPenalty": {
        "type": "object",
        "properties": {
          "distance": {
            "type": "integer",
            "format": "int32",
            "description": "The driven distance (in the solver's measurement system unit) from which distance cost will be applied.\n\nUse this constraint when you need to specify a distance cost which can vary according to the covered distance.\n\nUp to 4 different distance costs can be specified. Each one must be related to the corresponding distance threshold, from which it will be applied."
          },
          "penalty": {
            "type": "number",
            "format": "double",
            "description": "The cost for a resource of driving for one distance unit.\n\nUse this constraint to specify the average resource taxes (gazoline, wear,...) when driving one distance unit.\n\n**Type : ** float **Default : ** 1.5\n\n**Example : ** if penalty = 0.5 (euro per distance unit) and the driven distance is about 100 unit (km or miles), the total distance cost is 0,5 * 100 = 50 euros."
          }
        }
      },
      "TSTravelTimeModifier": {
        "type": "object",
        "description": "Indicates the value of the travel time modifier.\r\nWhen reaching a location situated in a large city, one may want to take\r\ninto account driving difficulties, such as narrow streets and congestion.\r\nThe travel time modifier enables to increase the travel times around a\r\nlocation. It is described by three values. The value by which multiply\r\nthe travel times around the location (tsOrderTravelTimeModifierValue),\r\nthe portion of the travel time on which the modifier applies\r\n(tsOrderTravelTimeModifierLength) an offset to add to any travel duration\r\nleaving or reaching the location (tsOrderTravelTimeModifierOffSet).\r\n**Example:**\r\n* Set tsOrderTravelTimeModifierValue to 1.5,\r\ntsOrderTravelTimeModifierLength to 300 and\r\ntsOrderTravelTimeModifierOffSet to 60 for Order 1.\r\n* Set tsOrderTravelTimeModifierValue to 2,\r\ntsOrderTravelTimeModifierLength to 420 and\r\ntsOrderTravelTimeModifierOffSet to 0 for Order 2. If the initial travel\r\nduration between Order 1 and Order 2 was 1000, one obtains a travel time\r\n360 * 1.5 + 60 + 280 + 420 * 2 + 0 = 1660.\r\n**Type:** float.\r\n**Default:** 1.",
        "properties": {
          "length": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "offset": {
            "type": "string",
            "description": "Time, can be expressed in minutes or in hh:mm:ss format."
          },
          "value": {
            "type": "number",
            "format": "double",
            "description": "Indicates the value of the travel time modifier.\n\nWhen reaching a location situated in a large city, one may want to take into account driving difficulties, such as narrow streets and congestion.\n\nThe travel time modifier enables to increase the travel times around a location. It is described by three values. The value by which multiply the travel times around the location (tsDepotTravelTimeModifierValue), the portion of the travel time on which the modifier applies (*length*) an offset to add to any travel duration leaving or reaching the location (*offSet*).\n\n**Example:**\n\n* Set tsResource TravelTimeModifier Value to 1.5, tsResource TravelTime Modifier Length to 300 and tsResource TravelTimeModifier OffSet to 60 for Resource 1\n\n* Set tsDepot TravelTimeModifier Value to 2, tsDepot TravelTimeModifier Length to 420 and tsDepot TravelTimeModifier OffSet to 0 for Depot 1\n\nIf the initial travel duration between Resource 1 and Depot 1 was 1000, one obtains a travel time 360 * 1.5 + 60 + 280 + 420 * 2 + 0 = 1660\n\n**Type:** float \n\n**Default:** 1"
          }
        }
      }
    },
    "securitySchemes": {
      "apiKey": {
        "description": "The api key can be passed through an header or in the query.",
        "in": "header",
        "name": "apiKey",
        "type": "apiKey"
      }
    }
  }
}
```