Mercedes.VehicleManagement.API

<back to all web services

DashboardCsvReportsRequest

Reports
Requires Authentication
The following routes are available for this service:
POST/v1/reports/CsvRetrieve Report by ReportName and Filters and return as CSV
#![allow(
    dead_code,
    non_camel_case_types,
    non_snake_case,
    clippy::upper_case_acronyms
)]

use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::collections::HashMap;

#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct DashboardReportResult {
    #[serde(rename = "totalCount")]
    pub total_count: i32,
    #[serde(rename = "reportResult")]
    pub report_result: Vec<Value>,
}

#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
pub enum ReportFilterType {
    #[default]
    #[serde(rename = "list")]
    list,
    #[serde(rename = "list_like")]
    list_like,
    #[serde(rename = "date")]
    date,
    #[serde(rename = "range")]
    range,
}

#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct ReportFilter {
    pub r#type: ReportFilterType,
    pub values: Vec<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub start: Option<String>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub end: Option<String>,
    #[serde(rename = "higherThan")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub higher_than: Option<i32>,
    #[serde(rename = "lowerThan")]
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub lower_than: Option<i32>,
}

#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)]
#[serde(default)]
pub struct DashboardCsvReportsRequest {
    /// Report Name
    // ApiMember(Description="Report Name", IsRequired=true, ParameterType="body")
    #[serde(rename = "reportName")]
    pub report_name: String,
    /// Filters
    // ApiMember(Description="Filters", IsRequired=true, ParameterType="body")
    pub filters: HashMap<String, ReportFilter>,
}

Rust DashboardCsvReportsRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/reports/Csv HTTP/1.1 
Host: uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<DashboardCsvReportsRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.ServiceModel">
  <Filters xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringReportFilterI2Pv2xeL>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value xmlns:d4p1="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.Shared.POCO">
        <d4p1:End>0001-01-01T00:00:00</d4p1:End>
        <d4p1:HigherThan>0</d4p1:HigherThan>
        <d4p1:LowerThan>0</d4p1:LowerThan>
        <d4p1:Start>0001-01-01T00:00:00</d4p1:Start>
        <d4p1:Type>list</d4p1:Type>
        <d4p1:Values i:nil="true" />
      </d2p1:Value>
    </d2p1:KeyValueOfstringReportFilterI2Pv2xeL>
  </Filters>
  <ReportName>String</ReportName>
</DashboardCsvReportsRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<DashboardReportResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.VehicleManagement.API.Shared.POCO">
  <ReportResult xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" />
  <TotalCount>0</TotalCount>
</DashboardReportResult>