openapi: 3.2.0 info: title: Automile Resource Owner Integration API version: v1 tags: - name: ResourceOwnerIntegration paths: /v1/resourceowner/integration: get: tags: - ResourceOwnerIntegration summary: Integration Configuration description: '' operationId: ResourceOwnerIntegrationController_GetIntegrationConfiguration responses: '200': description: Successful retrieval of integration settings content: text/plain: schema: $ref: '#/components/schemas/IntegrationConfigurationModel' application/json: schema: $ref: '#/components/schemas/IntegrationConfigurationModel' text/json: schema: $ref: '#/components/schemas/IntegrationConfigurationModel' '500': description: Internal server error security: - oauth2: [] put: tags: - ResourceOwnerIntegration summary: Update integration configuration description: If you want to update one integration but not the rest you can exclude them from the model. operationId: ResourceOwnerIntegrationController_UpdateIntegrationSettings responses: '200': description: Integration configuration successfully retrieved content: text/plain: schema: $ref: '#/components/schemas/HttpResponseMessage' application/json: schema: $ref: '#/components/schemas/HttpResponseMessage' text/json: schema: $ref: '#/components/schemas/HttpResponseMessage' '403': description: User have no organization or is not authorized to this organization '500': description: Internal server error security: - oauth2: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationConfigurationModel' text/json: schema: $ref: '#/components/schemas/IntegrationConfigurationModel' application/*+json: schema: $ref: '#/components/schemas/IntegrationConfigurationModel' /v1/resourceowner/integration/alphabet: get: tags: - ResourceOwnerIntegration summary: Information description: Run this once before running Alphabet login. The flag LoginRequired will say if login to Alphabet is required to run (e.g. user has changed password in Alphabet) then this method should be run again after login. operationId: ResourceOwnerIntegrationController_GetAlphabetInformation responses: '200': description: List with active vehicles and available month to send in mileagelog report for is returned content: text/plain: schema: $ref: '#/components/schemas/AlphabetInformationModel' application/json: schema: $ref: '#/components/schemas/AlphabetInformationModel' text/json: schema: $ref: '#/components/schemas/AlphabetInformationModel' '500': description: Internal server error security: - oauth2: [] /v1/resourceowner/integration/alphabet/login: post: tags: - ResourceOwnerIntegration summary: Alphabet login description: This is only needed if Alphabet information returned the required login flag set to true. User credentials are stored for future requests. operationId: ResourceOwnerIntegrationController_AlphabetLogin parameters: - in: query name: username schema: type: string - in: query name: password schema: type: string responses: '200': description: Login succeeded content: text/plain: schema: $ref: '#/components/schemas/HttpResponseMessage' application/json: schema: $ref: '#/components/schemas/HttpResponseMessage' text/json: schema: $ref: '#/components/schemas/HttpResponseMessage' '400': description: Alphabet returned an error, this will usually be caused by entering wrong username or password '500': description: Internal server error security: - oauth2: [] /v1/resourceowner/integration/alphabet/mileagelog/{vehicleId}/{year}/{month}: get: tags: - ResourceOwnerIntegration summary: Get Alphabet mileage log description: Run this with vehicle id and period returned from Alphabet information. Data model contains odometer values and business km from the first day to the last day of sent in month. operationId: ResourceOwnerIntegrationController_GetAlphabetMileageLog parameters: - in: path name: vehicleId description: The vehicle id required: true schema: type: integer format: int32 - in: path name: year description: Year of from date in period required: true schema: type: integer format: int32 - in: path name: month description: Month of from date in period required: true schema: type: integer format: int32 responses: '200': description: Mileage log data for previewing purpose is returned content: text/plain: schema: $ref: '#/components/schemas/AlphabetMileageLogModel' application/json: schema: $ref: '#/components/schemas/AlphabetMileageLogModel' text/json: schema: $ref: '#/components/schemas/AlphabetMileageLogModel' '400': description: Invalid parameter values '403': description: You are not authorized to this vehicle '500': description: Internal server error security: - oauth2: [] post: tags: - ResourceOwnerIntegration summary: Send Alphabet mileage log description: GET must be run before POST operationId: ResourceOwnerIntegrationController_SendAlphabetMileageLog parameters: - in: path name: vehicleId description: The vehicle id required: true schema: type: integer format: int32 - in: path name: year description: Year of from date in period required: true schema: type: integer format: int32 - in: path name: month description: Month of from date in period required: true schema: type: integer format: int32 responses: '200': description: Mileage log report was sent content: text/plain: schema: $ref: '#/components/schemas/HttpResponseMessage' application/json: schema: $ref: '#/components/schemas/HttpResponseMessage' text/json: schema: $ref: '#/components/schemas/HttpResponseMessage' '400': description: Invalid parameter values '403': description: You are not authorized to this vehicle '500': description: Internal server error security: - oauth2: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AlphabetMileageLogModel' text/json: schema: $ref: '#/components/schemas/AlphabetMileageLogModel' application/*+json: schema: $ref: '#/components/schemas/AlphabetMileageLogModel' description: Model received from GET /v1/resourceowner/integration/autoplan: get: tags: - ResourceOwnerIntegration summary: AutoPlan Information (Legacy) This endpoint uses the old AutoPlan API which… description: Run this once before running AutoPlan login. The flag LoginRequired will say if login to AutoPlan is required to run (e.g. user has changed password in AutoPlan) then this method should be run again after login. operationId: ResourceOwnerIntegrationController_GetAutoplanInformation responses: '200': description: List with active vehicles and available month to send in mileagelog report for is returned content: text/plain: schema: $ref: '#/components/schemas/AutoplanInformationModel' application/json: schema: $ref: '#/components/schemas/AutoplanInformationModel' text/json: schema: $ref: '#/components/schemas/AutoplanInformationModel' '500': description: Internal server error deprecated: true security: - oauth2: [] /v1/resourceowner/integration/autoplan/v2/information: post: tags: - ResourceOwnerIntegration summary: Get AutoPlan V2 Information description: Personal identity number must be provided in the request body. operationId: ResourceOwnerIntegrationController_GetAutoPlanV2Information responses: '200': description: List of vehicles with available periods for driving journal and odometer readings content: text/plain: schema: $ref: '#/components/schemas/AutoPlanV2InformationModel' application/json: schema: $ref: '#/components/schemas/AutoPlanV2InformationModel' text/json: schema: $ref: '#/components/schemas/AutoPlanV2InformationModel' '400': description: Invalid personal identity number '500': description: Internal server error security: - oauth2: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AutoPlanV2InformationRequestModel' text/json: schema: $ref: '#/components/schemas/AutoPlanV2InformationRequestModel' application/*+json: schema: $ref: '#/components/schemas/AutoPlanV2InformationRequestModel' description: Request containing personal identity number (12 digits in format YYYYMMDDNNNN) /v1/resourceowner/integration/autoplan/login: post: tags: - ResourceOwnerIntegration summary: AutoPlan login (Legacy) This endpoint uses the old AutoPlan API which requires… description: This is only needed if AutoPlan wizard returned the required login flag set to true. User credentials are stored for future requests. operationId: ResourceOwnerIntegrationController_AutoplanLogin parameters: - in: query name: username schema: type: string - in: query name: password schema: type: string responses: '200': description: Login succeeded content: text/plain: schema: $ref: '#/components/schemas/HttpResponseMessage' application/json: schema: $ref: '#/components/schemas/HttpResponseMessage' text/json: schema: $ref: '#/components/schemas/HttpResponseMessage' '400': description: Autoplan returned an error, this will usually be caused by entering wrong username or password '500': description: Internal server error deprecated: true security: - oauth2: [] /v1/resourceowner/integration/autoplan/mileagelog/{vehicleId}/{year}/{month}: get: tags: - ResourceOwnerIntegration summary: Get AutoPlan mileage log (Legacy) description: Run this with vehicle id and period returned from Autoplan wizard. Data model contains odometer values and business km from the first day to the last day of sent in month. operationId: ResourceOwnerIntegrationController_GetAutoplanMileageLog parameters: - in: path name: vehicleId description: The vehicle id required: true schema: type: integer format: int32 - in: path name: year description: Year of from date in period required: true schema: type: integer format: int32 - in: path name: month description: Month of from date in period required: true schema: type: integer format: int32 responses: '200': description: Mileage log data for previewing purpose is returned content: text/plain: schema: $ref: '#/components/schemas/AutoplanMileageLogModel' application/json: schema: $ref: '#/components/schemas/AutoplanMileageLogModel' text/json: schema: $ref: '#/components/schemas/AutoplanMileageLogModel' '400': description: Invalid parameter values '403': description: You are not authorized to this vehicle '500': description: Internal server error deprecated: true security: - oauth2: [] post: tags: - ResourceOwnerIntegration summary: Send AutoPlan mileage log (Legacy) description: GET must be run before POST operationId: ResourceOwnerIntegrationController_SendAutoplanMileageLog parameters: - in: path name: vehicleId description: The vehicle id required: true schema: type: integer format: int32 - in: path name: year description: Year of from date in period required: true schema: type: integer format: int32 - in: path name: month description: Month of from date in period required: true schema: type: integer format: int32 responses: '200': description: Mileage log report was sent content: text/plain: schema: $ref: '#/components/schemas/HttpResponseMessage' application/json: schema: $ref: '#/components/schemas/HttpResponseMessage' text/json: schema: $ref: '#/components/schemas/HttpResponseMessage' '400': description: Invalid parameter values '403': description: You are not authorized to this vehicle '500': description: Internal server error deprecated: true security: - oauth2: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AutoplanMileageLogModel' text/json: schema: $ref: '#/components/schemas/AutoplanMileageLogModel' application/*+json: schema: $ref: '#/components/schemas/AutoplanMileageLogModel' description: Model received from GET /v1/resourceowner/integration/autoplan/v2/drivingjournal/{vehicleId}/{year}/{month}: get: tags: - ResourceOwnerIntegration summary: Get AutoPlan V2 Driving Journal Preview description: Get driving journal data for preview before sending. Contains odometer values and business km for the specified period. This is the NEW API endpoint that replaces GET /autoplan/mileagelog (legacy). operationId: ResourceOwnerIntegrationController_GetAutoPlanV2DrivingJournal parameters: - in: path name: vehicleId description: The vehicle id required: true schema: type: integer format: int32 - in: path name: year description: Year of the period required: true schema: type: integer format: int32 - in: path name: month description: Month of the period required: true schema: type: integer format: int32 responses: '200': description: Driving journal data for preview content: text/plain: schema: $ref: '#/components/schemas/AutoPlanV2DrivingJournalModel' application/json: schema: $ref: '#/components/schemas/AutoPlanV2DrivingJournalModel' text/json: schema: $ref: '#/components/schemas/AutoPlanV2DrivingJournalModel' '400': description: Invalid parameters '403': description: You are not authorized to this vehicle '500': description: Internal server error security: - oauth2: [] post: tags: - ResourceOwnerIntegration summary: Send AutoPlan V2 Driving Journal description: 'Send driving journal to AutoPlan V2 API. GET endpoint must be called first to retrieve the data to send. Note: Incoming odometer is automatically calculated from previous period''s outgoing value per API specification. This is the NEW API endpoint that replaces POST /autoplan/mileagelog (legacy).' operationId: ResourceOwnerIntegrationController_SendAutoPlanV2DrivingJournal parameters: - in: path name: vehicleId description: The vehicle id required: true schema: type: integer format: int32 - in: path name: year description: Year of the period required: true schema: type: integer format: int32 - in: path name: month description: Month of the period required: true schema: type: integer format: int32 responses: '200': description: Driving journal successfully sent content: text/plain: schema: $ref: '#/components/schemas/HttpResponseMessage' application/json: schema: $ref: '#/components/schemas/HttpResponseMessage' text/json: schema: $ref: '#/components/schemas/HttpResponseMessage' '400': description: Invalid parameters or data mismatch '401': description: Not all trips in period are approved '403': description: You are not authorized to this vehicle '500': description: Internal server error security: - oauth2: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AutoPlanV2SendDrivingJournalRequestModel' text/json: schema: $ref: '#/components/schemas/AutoPlanV2SendDrivingJournalRequestModel' application/*+json: schema: $ref: '#/components/schemas/AutoPlanV2SendDrivingJournalRequestModel' description: Request containing Personal identity number (12 digits YYYYMMDDNNNN format) and Driving journal data from GET endpoint /v1/resourceowner/integration/bilreda: get: tags: - ResourceOwnerIntegration summary: Bilreda Information description: Currently in the period list the month previous to today will always have the selected flag set to true. operationId: ResourceOwnerIntegrationController_GetBilredaInformation responses: '200': description: Active vehicle with a list of available months to send in mileagelog report for is returned content: text/plain: schema: $ref: '#/components/schemas/BilredaInformationModel' application/json: schema: $ref: '#/components/schemas/BilredaInformationModel' text/json: schema: $ref: '#/components/schemas/BilredaInformationModel' '400': description: User may not have activated any Bilreda integration '403': description: You are not authorized to this vehicle '500': description: Internal server error security: - oauth2: [] /v1/resourceowner/integration/bilreda/mileagelog/{vehicleId}/{year}/{month}: get: tags: - ResourceOwnerIntegration summary: Get Bilreda mileage log description: Run this with vehicle id and period returned from Bilreda wizard. Data model contains odometer values and business km from the first day to the last day of sent in month. operationId: ResourceOwnerIntegrationController_GetBilredaMileageLog parameters: - in: path name: vehicleId description: The vehicle id required: true schema: type: integer format: int32 - in: path name: year description: Year of from date in period required: true schema: type: integer format: int32 - in: path name: month description: Month of from date in period required: true schema: type: integer format: int32 responses: '200': description: Mileage log data for previewing purpose is returned content: text/plain: schema: $ref: '#/components/schemas/BilredaMileageLogModel' application/json: schema: $ref: '#/components/schemas/BilredaMileageLogModel' text/json: schema: $ref: '#/components/schemas/BilredaMileageLogModel' '400': description: Invalid parameter values '403': description: You are not authorized to this vehicle '500': description: Internal server error security: - oauth2: [] post: tags: - ResourceOwnerIntegration summary: Send Bilreda mileage log description: GET must be run before POST operationId: ResourceOwnerIntegrationController_SendBilredaMileageLog parameters: - in: path name: vehicleId description: The vehicle id required: true schema: type: integer format: int32 - in: path name: year description: Year of from date in period required: true schema: type: integer format: int32 - in: path name: month description: Month of from date in period required: true schema: type: integer format: int32 responses: '200': description: Mileage log report was sent content: text/plain: schema: $ref: '#/components/schemas/HttpResponseMessage' application/json: schema: $ref: '#/components/schemas/HttpResponseMessage' text/json: schema: $ref: '#/components/schemas/HttpResponseMessage' '400': description: Invalid parameter values '403': description: You are not authorized to this vehicle '500': description: Internal server error security: - oauth2: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/BilredaMileageLogModel' text/json: schema: $ref: '#/components/schemas/BilredaMileageLogModel' application/*+json: schema: $ref: '#/components/schemas/BilredaMileageLogModel' description: Model received from GET components: schemas: AutoPlanV2SendDrivingJournalRequestModel: type: object properties: PersonalIdentityNumber: type: string JournalData: $ref: '#/components/schemas/AutoPlanV2DrivingJournalModel' additionalProperties: false AutoPlanV2InformationRequestModel: type: object properties: PersonalIdentityNumber: type: string additionalProperties: false AutoPlanV2VehicleInfo: type: object properties: VehicleId: format: int32 type: integer FriendlyName: type: string NumberPlate: type: string IsVehicleApproved: type: boolean PeriodList: type: array items: $ref: '#/components/schemas/AutoPlanV2PeriodInfo' additionalProperties: false HttpResponseMessage: type: object properties: Version: $ref: '#/components/schemas/Version' Content: $ref: '#/components/schemas/HttpContent' StatusCode: format: int32 enum: - 100 - 101 - 102 - 103 - 200 - 201 - 202 - 203 - 204 - 205 - 206 - 207 - 208 - 226 - 300 - 301 - 302 - 303 - 304 - 305 - 306 - 307 - 308 - 400 - 401 - 402 - 403 - 404 - 405 - 406 - 407 - 408 - 409 - 410 - 411 - 412 - 413 - 414 - 415 - 416 - 417 - 421 - 422 - 423 - 424 - 426 - 428 - 429 - 431 - 451 - 500 - 501 - 502 - 503 - 504 - 505 - 506 - 507 - 508 - 510 - 511 type: integer ReasonPhrase: type: string Headers: type: array items: $ref: '#/components/schemas/StringStringIEnumerableKeyValuePair' readOnly: true TrailingHeaders: type: array items: $ref: '#/components/schemas/StringStringIEnumerableKeyValuePair' readOnly: true RequestMessage: $ref: '#/components/schemas/HttpRequestMessage' IsSuccessStatusCode: type: boolean readOnly: true additionalProperties: false AutoplanInformationModel: type: object properties: LoginIsRequired: type: boolean VehicleList: type: array items: $ref: '#/components/schemas/IntegrationVehicleModel' additionalProperties: false AlphabetMileageLogModel: type: object properties: StartOdometerKm: format: int32 type: integer EndOdometerKm: format: int32 type: integer BusinessKm: format: int32 type: integer IsApproved: type: boolean TotalKm: format: int32 type: integer readOnly: true OtherAndPrivateKm: format: int32 type: integer readOnly: true additionalProperties: false StringStringIEnumerableKeyValuePair: type: object properties: Key: type: string Value: type: array items: type: string additionalProperties: false IntegrationConfigurationModel: type: object properties: AutoPlanActive: type: boolean AlphabetActive: type: boolean BilredaActive: type: boolean BilredaVehicleId: format: int32 type: integer additionalProperties: false Version: type: object properties: Major: format: int32 type: integer readOnly: true Minor: format: int32 type: integer readOnly: true Build: format: int32 type: integer readOnly: true Revision: format: int32 type: integer readOnly: true MajorRevision: format: int32 type: integer readOnly: true MinorRevision: format: int32 type: integer readOnly: true additionalProperties: false IntegrationPeriodModel: type: object properties: Year: format: int32 type: integer Month: format: int32 type: integer IsSelected: type: boolean additionalProperties: false BilredaInformationModel: type: object properties: LoginIsRequired: type: boolean VehicleList: type: array items: $ref: '#/components/schemas/IntegrationVehicleModel' additionalProperties: false HttpMethod: type: object properties: Method: type: string additionalProperties: false AlphabetInformationModel: type: object properties: LoginIsRequired: type: boolean VehicleList: type: array items: $ref: '#/components/schemas/IntegrationVehicleModel' additionalProperties: false HttpContent: type: object properties: Headers: type: array items: $ref: '#/components/schemas/StringStringIEnumerableKeyValuePair' readOnly: true additionalProperties: false AutoPlanV2PeriodInfo: type: object properties: Year: format: int32 type: integer Month: format: int32 type: integer IsSelected: type: boolean additionalProperties: false AutoPlanV2DrivingJournalModel: type: object properties: StartOdometerKm: format: int32 type: integer EndOdometerKm: format: int32 type: integer BusinessKm: format: int32 type: integer IsApproved: type: boolean additionalProperties: false AutoPlanV2InformationModel: type: object properties: VehicleList: type: array items: $ref: '#/components/schemas/AutoPlanV2VehicleInfo' additionalProperties: false HttpRequestMessage: type: object properties: Version: $ref: '#/components/schemas/Version' VersionPolicy: format: int32 enum: - 0 - 1 - 2 type: integer Content: $ref: '#/components/schemas/HttpContent' Method: $ref: '#/components/schemas/HttpMethod' RequestUri: format: uri type: string Headers: type: array items: $ref: '#/components/schemas/StringStringIEnumerableKeyValuePair' readOnly: true Properties: type: object additionalProperties: {} readOnly: true Options: type: object additionalProperties: {} readOnly: true additionalProperties: false IntegrationVehicleModel: type: object properties: FriendlyName: type: string NumberPlate: type: string VehicleId: format: int32 type: integer IsVehicleApproved: type: boolean PeriodList: type: array items: $ref: '#/components/schemas/IntegrationPeriodModel' additionalProperties: false BilredaMileageLogModel: type: object properties: StartOdometerKm: format: int32 type: integer EndOdometerKm: format: int32 type: integer BusinessKm: format: int32 type: integer IsApproved: type: boolean TotalKm: format: int32 type: integer readOnly: true OtherAndPrivateKm: format: int32 type: integer readOnly: true TollFeeBusiness: format: int32 type: integer additionalProperties: false AutoplanMileageLogModel: type: object properties: StartOdometerKm: format: int32 type: integer EndOdometerKm: format: int32 type: integer BusinessKm: format: int32 type: integer IsApproved: type: boolean TotalKm: format: int32 type: integer readOnly: true OtherAndPrivateKm: format: int32 type: integer readOnly: true additionalProperties: false securitySchemes: oauth2: type: oauth2 flows: implicit: scopes: read: Read access to protected resources write: Write access to protected resources authorizationUrl: https://api.automile.com/login/ description: OAuth2 Implicit Grant x-provenance: method: harvested publisher: Automileab source: https://api.automile.com/swagger/v1/swagger.json note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json); stamped by stamp-openapi-provenance.py (roadmap#793)