Mercedes.VehicleManagement.API

<back to all web services

BaumusterOffersCSVRequest

Requires Authentication
The following routes are available for this service:
GET/v1/Vehicle/Baumuster/csvReturns Baumuster Data in CSV format
# frozen_string_literal: true
# encoding: utf-8


require 'json'
require 'servicestack'


# @Flags
module CacheControl
    NONE = 0
    PUBLIC = 1
    PRIVATE = 2
    MUST_REVALIDATE = 4
    NO_CACHE = 8
    NO_STORE = 16
    NO_TRANSFORM = 32
    PROXY_REVALIDATE = 64
end

# @Flags
module RequestAttributes
    NONE = 0
    LOCALHOST = 1
    LOCAL_SUBNET = 2
    EXTERNAL = 4
    SECURE = 8
    IN_SECURE = 16
    ANY_SECURITY_MODE = 24
    HTTP_HEAD = 32
    HTTP_GET = 64
    HTTP_POST = 128
    HTTP_PUT = 256
    HTTP_DELETE = 512
    HTTP_PATCH = 1024
    HTTP_OPTIONS = 2048
    HTTP_OTHER = 4096
    ANY_HTTP_METHOD = 8160
    ONE_WAY = 8192
    REPLY = 16384
    ANY_CALL_STYLE = 24576
    SOAP11 = 32768
    SOAP12 = 65536
    XML = 131072
    JSON = 262144
    JSV = 524288
    PROTO_BUF = 1048576
    CSV = 2097152
    HTML = 4194304
    JSONL = 8388608
    MSG_PACK = 16777216
    FORMAT_OTHER = 33554432
    ANY_FORMAT = 67076096
    HTTP = 67108864
    MESSAGE_QUEUE = 134217728
    TCP = 268435456
    GRPC = 536870912
    ENDPOINT_OTHER = 1073741824
    ANY_ENDPOINT = 2080374784
    IN_PROCESS = -2147483648
    INTERNAL_NETWORK_ACCESS = -2147483645
    ANY_NETWORK_ACCESS_TYPE = -2147483641
    ANY = -1
end

module IVirtualDirectory
end

module IVirtualPathProvider
    # @return [IVirtualDirectory]
    attr_accessor :root_directory
    # @return [String]
    attr_accessor :virtual_path_separator
    # @return [String]
    attr_accessor :real_path_separator
end

module IVirtualFile
    # @return [IVirtualPathProvider]
    attr_accessor :virtual_path_provider
    # @return [String]
    attr_accessor :extension
    # @return [Integer]
    attr_accessor :length
end

module IContentTypeWriter
end

module IResponse
    # @return [Object]
    attr_accessor :original_response
    # @return [IRequest]
    attr_accessor :request
    # @return [Integer]
    attr_accessor :status_code
    # @return [String]
    attr_accessor :status_description
    # @return [String]
    attr_accessor :content_type
    # @return [String]
    attr_accessor :output_stream
    # @return [Object]
    attr_accessor :dto
    # @return [TrueClass]
    attr_accessor :use_buffered_stream
    # @return [TrueClass]
    attr_accessor :is_closed
    # @return [TrueClass]
    attr_accessor :keep_alive
    # @return [TrueClass]
    attr_accessor :has_started
    # @return [Dictionary]
    attr_accessor :items
end

module IRequestPreferences
    # @return [TrueClass]
    attr_accessor :accepts_brotli
    # @return [TrueClass]
    attr_accessor :accepts_deflate
    # @return [TrueClass]
    attr_accessor :accepts_gzip
end

module IHttpFile
    # @return [String]
    attr_accessor :name
    # @return [String]
    attr_accessor :file_name
    # @return [Integer]
    attr_accessor :content_length
    # @return [String]
    attr_accessor :content_type
    # @return [String]
    attr_accessor :input_stream
end

module IRequest
    # @return [Object]
    attr_accessor :original_request
    # @return [IResponse]
    attr_accessor :response
    # @return [String]
    attr_accessor :operation_name
    # @return [String]
    attr_accessor :verb
    # @return [RequestAttributes]
    attr_accessor :request_attributes
    # @return [IRequestPreferences]
    attr_accessor :request_preferences
    # @return [Object]
    attr_accessor :dto
    # @return [String]
    attr_accessor :content_type
    # @return [TrueClass]
    attr_accessor :is_local
    # @return [String]
    attr_accessor :user_agent
    # @return [IDictionary]
    attr_accessor :cookies
    # @return [String]
    attr_accessor :response_content_type
    # @return [TrueClass]
    attr_accessor :has_explicit_response_content_type
    # @return [Dictionary]
    attr_accessor :items
    # @return [NameValueCollection]
    attr_accessor :headers
    # @return [NameValueCollection]
    attr_accessor :query_string
    # @return [NameValueCollection]
    attr_accessor :form_data
    # @return [TrueClass]
    attr_accessor :use_buffered_stream
    # @return [String]
    attr_accessor :raw_url
    # @return [String]
    attr_accessor :absolute_uri
    # @return [String]
    attr_accessor :user_host_address
    # @return [String]
    attr_accessor :remote_ip
    # @return [String]
    attr_accessor :authorization
    # @return [TrueClass]
    attr_accessor :is_secure_connection
    # @return [Array]
    attr_accessor :accept_types
    # @return [String]
    attr_accessor :path_info
    # @return [String]
    attr_accessor :original_path_info
    # @return [String]
    attr_accessor :input_stream
    # @return [Integer]
    attr_accessor :content_length
    # @return [Array]
    attr_accessor :files
    # @return [String]
    attr_accessor :url_referrer
    # @return [CancellationToken]
    attr_accessor :request_aborted
end

class HttpResult
    include ServiceStack::DTO

    # @return [String]
    attr_accessor :response_text
    # @return [String]
    attr_accessor :response_stream
    # @return [FileInfo]
    attr_accessor :file_info
    # @return [IVirtualFile]
    attr_accessor :virtual_file
    # @return [String]
    attr_accessor :content_type
    # @return [Dictionary]
    attr_accessor :headers
    # @return [List]
    attr_accessor :cookies
    # @return [String]
    attr_accessor :e_tag
    # @return [Time]
    attr_accessor :age
    # @return [Time]
    attr_accessor :max_age
    # @return [DateTime]
    attr_accessor :expires
    # @return [DateTime]
    attr_accessor :last_modified
    # @return [CacheControl]
    attr_accessor :cache_control
    # @return [Func]
    attr_accessor :result_scope
    # @return [TrueClass]
    attr_accessor :allows_partial_response
    # @return [IDictionary]
    attr_accessor :options
    # @return [Integer]
    attr_accessor :status
    # @return [HttpStatusCode]
    attr_accessor :status_code
    # @return [String]
    attr_accessor :status_description
    # @return [Object]
    attr_accessor :response
    # @return [IContentTypeWriter]
    attr_accessor :response_filter
    # @return [IRequest]
    attr_accessor :request_context
    # @return [String]
    attr_accessor :view
    # @return [String]
    attr_accessor :template
    # @return [Integer]
    attr_accessor :padding_length
    # @return [TrueClass]
    attr_accessor :is_partial_request

    def self.properties
        {
            response_text: { name: 'responseText' },
            response_stream: { name: 'responseStream' },
            file_info: { name: 'fileInfo' },
            virtual_file: { name: 'virtualFile', type: IVirtualFile },
            content_type: { name: 'contentType' },
            headers: { name: 'headers' },
            cookies: { name: 'cookies' },
            e_tag: { name: 'eTag' },
            age: { name: 'age' },
            max_age: { name: 'maxAge' },
            expires: { name: 'expires', type: DateTime },
            last_modified: { name: 'lastModified', type: DateTime },
            cache_control: { name: 'cacheControl' },
            result_scope: { name: 'resultScope' },
            allows_partial_response: { name: 'allowsPartialResponse' },
            options: { name: 'options' },
            status: { name: 'status' },
            status_code: { name: 'statusCode' },
            status_description: { name: 'statusDescription' },
            response: { name: 'response' },
            response_filter: { name: 'responseFilter', type: IContentTypeWriter },
            request_context: { name: 'requestContext', type: IRequest },
            view: { name: 'view' },
            template: { name: 'template' },
            padding_length: { name: 'paddingLength' },
            is_partial_request: { name: 'isPartialRequest' },
        }
    end

end

class BaumusterOffersCSVRequest
    include ServiceStack::DTO

    def response_type() = HttpResult
    def get_type_name() = 'BaumusterOffersCSVRequest'
end

Ruby BaumusterOffersCSVRequest DTOs

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

HTTP + JSV

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

GET /v1/Vehicle/Baumuster/csv HTTP/1.1 
Host: uat-api-vehicle-mgt-mb-dhc.rapp-customers.co.uk 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	
}