---
openapi: 3.1.0
paths:
  /cosy/image-vin/mandators/oab/vin/{vin}/resolvedurls:
    get:
      parameters:
      - name: vin
        in: path
        required: true
        schema:
          type: string
      - name: collection
        in: query
        schema:
          type:
          - string
          - "null"
      - name: query
        in: query
        schema:
          type:
          - string
          - "null"
      - name: resolve
        in: query
        schema:
          type:
          - string
          - "null"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Get Images
      tags:
      - Cosy Resource
  /des/api/v2/dealer/{dealerId}/{brand}:
    get:
      parameters:
      - name: brand
        in: path
        required: true
        schema:
          type: string
      - name: dealerId
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Get Services
      tags:
      - Dealer Resource
  /des/api/v2/mapping/{mappingId}:
    get:
      parameters:
      - name: mappingId
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Get Services Guest
      tags:
      - Dealer Resource
  /gcdm/oauth/tokeninfo:
    get:
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Get Token Info
      tags:
      - Token Resource
  /gcdm/protected/v4/{clientId}/{locale}/customers/businessPartners:
    get:
      parameters:
      - name: clientId
        in: path
        required: true
        schema:
          type: string
      - name: locale
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Get Customer
      tags:
      - Customer Resource
  /gevi/bmw/get/domlic:
    get:
      summary: Get vehicle details from license plate
      parameters:
      - name: lic
        in: query
        schema:
          type: string
        required: true
      responses:
        "200":
          description: Successful operation
          content:
            application/xml: {}
      tags:
      - Gevi Resource
  /los/localsearch-service/v5/places/details:
    post:
      parameters:
      - name: BMW-Home-Market
        in: header
        schema:
          type: string
        required: true
      - name: x-api-key
        in: header
        schema:
          type: string
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DealerInfoRequest"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
        "400":
          description: Bad Request
      summary: Get Dealer Information
      tags:
      - Los Resource
  /oas/api/v4/dealers/{mappingId}/appointments:
    get:
      parameters:
      - name: mappingId
        in: path
        required: true
        schema:
          type: string
      - name: include_mobility_options
        in: query
        schema:
          type: boolean
      - name: include_services
        in: query
        schema:
          type: boolean
      - name: vin
        in: query
        schema:
          type:
          - string
          - "null"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Get Appointments
      tags:
      - Appointment Resource
    post:
      parameters:
      - name: mappingId
        in: path
        required: true
        schema:
          type: string
      - name: vin
        in: query
        schema:
          type:
          - string
          - "null"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateAppointmentRequest"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
        "400":
          description: Bad Request
      summary: Create Appointment
      tags:
      - Appointment Resource
  /oas/api/v4/dealers/{mappingId}/appointments/guest:
    post:
      parameters:
      - name: mappingId
        in: path
        required: true
        schema:
          type: string
      - name: vin
        in: query
        schema:
          type:
          - string
          - "null"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateAppointmentRequest"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
        "400":
          description: Bad Request
      summary: Create Appointment Guest
      tags:
      - Appointment Resource
  /oas/api/v4/dealers/{mappingId}/services:
    get:
      parameters:
      - name: mappingId
        in: path
        required: true
        schema:
          type: string
      - name: include_due_services
        in: query
        schema:
          type: boolean
      - name: include_mobility_options
        in: query
        schema:
          type: boolean
      - name: vin
        in: query
        schema:
          type: string
        required: true
      - name: Gcid
        in: header
        schema:
          type: string
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Get Services
      tags:
      - Appointment Resource
  /oas/api/v4/dealers/{mappingId}/services/guest:
    get:
      parameters:
      - name: mappingId
        in: path
        required: true
        schema:
          type: string
      - name: include_mobility_options
        in: query
        schema:
          type: boolean
      - name: vin
        in: query
        schema:
          type: string
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Get Services Guest
      tags:
      - Appointment Resource
  /oas/api/v4/dealers/{mappingId}/timeslots:
    get:
      parameters:
      - name: mappingId
        in: path
        required: true
        schema:
          type: string
      - name: end
        in: query
        schema:
          type:
          - string
          - "null"
      - name: mobility_options
        in: query
        schema:
          type:
          - string
          - "null"
      - name: service_keys
        in: query
        schema:
          type:
          - string
          - "null"
      - name: start
        in: query
        schema:
          type:
          - string
          - "null"
      - name: vin
        in: query
        schema:
          type: string
        required: true
      - name: Gcid
        in: header
        schema:
          type: string
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Get Timeslots
      tags:
      - Appointment Resource
  /oas/api/v4/dealers/{mappingId}/timeslots/guest:
    get:
      parameters:
      - name: mappingId
        in: path
        required: true
        schema:
          type: string
      - name: end
        in: query
        schema:
          type:
          - string
          - "null"
      - name: mobility_options
        in: query
        schema:
          type:
          - string
          - "null"
      - name: service_keys
        in: query
        schema:
          type:
          - string
          - "null"
      - name: start
        in: query
        schema:
          type:
          - string
          - "null"
      - name: vin
        in: query
        schema:
          type: string
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Get Timeslots Guest
      tags:
      - Appointment Resource
  /plm/redirect.html:
    get:
      parameters:
      - name: brand
        in: query
        schema:
          type:
          - string
          - "null"
      - name: language
        in: query
        schema:
          type:
          - string
          - "null"
      - name: market
        in: query
        schema:
          type:
          - string
          - "null"
      - name: state
        in: query
        schema:
          type:
          - string
          - "null"
      responses:
        "200":
          description: OK
          content:
            text/html: {}
      summary: Inject Token And Redirect
      tags:
      - Permanent Login Resource
  /sbol/vehiclelookup:
    post:
      summary: Get vehicle details from license plate
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - apikey
              - regno
              properties:
                apikey:
                  type: string
                regno:
                  type: string
        required: true
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema: {}
        "400":
          description: Bad Request
      tags:
      - Vehicle Lookup Resource
  /svds/vehicle/internal/v6/{vin}:
    get:
      summary: Get Vehicle Specification and Technical Data
      parameters:
      - name: vin
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema: {}
      tags:
      - Vehicle Resource
  /vurs/graphql:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VursVehiclesRequest"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
        "400":
          description: Bad Request
      summary: Get Vehicles
      tags:
      - Vurs Resource
components:
  schemas:
    CreateAppointmentRequest:
      type: object
      required:
      - serviceKeys
      properties:
        firstName:
          type:
          - string
          - "null"
        lastName:
          type:
          - string
          - "null"
        start:
          type:
          - string
          - "null"
        email:
          type:
          - string
          - "null"
        phone:
          type:
          - string
          - "null"
        addressStreet:
          type:
          - string
          - "null"
        addressHouseNumber:
          type:
          - string
          - "null"
        cityName:
          type:
          - string
          - "null"
        postalCode:
          type:
          - string
          - "null"
        vin:
          type:
          - string
          - "null"
        licensePlateNumber:
          type:
          - string
          - "null"
        serviceKeys:
          type: array
          items:
            type: string
        mobilityOptionId:
          type:
          - string
          - "null"
        message:
          type:
          - string
          - "null"
        flexibleServiceMessage:
          type:
          - string
          - "null"
        locale:
          type:
          - string
          - "null"
    DealerInfoRequest:
      type: object
      required:
      - places
      properties:
        places:
          type: array
          items:
            $ref: "#/components/schemas/PlaceRequest"
    PlaceRequest:
      type: object
      required:
      - distributionPartnerNumber
      - outlet
      properties:
        distributionPartnerNumber:
          type: string
        outlet:
          type: string
    Variables:
      type: object
      required:
      - gcid
      properties:
        gcid:
          type: string
    VursVehiclesRequest:
      type: object
      required:
      - query
      - variables
      properties:
        query:
          type: string
        variables:
          $ref: "#/components/schemas/Variables"
info:
  title: ocp-oab-rest-mock API
  version: 0.0.1-SNAPSHOT
