openapi: 3.0.0
info:
  version: API
  title: 
  description: Sample API
servers:
  - url: http://localhost:8092/
paths:
  /Customers:
    get:
      description: ''
      operationId: 'getCustomers'
      parameters:
        - in: query
          name: createdon
          description: The date the item was created
          required: false
          schema:
            type: string
            format: date
        - in: query
          name: updatedon
          description: The date the item was last updated
          required: false
          schema:
            type: string
            format: date
      responses:
        200:
          description: A paged collection of items including a total count of matches
          content: 
            application/json:
              schema:
                $ref: '#/components/schemas/CustomersCollection'
        403:
          description: A security issue occured, an incorrect API key is the most likely cause
        400:
          description: An incorrect query parameter or condition
    post:
      description: ''
      operationId: 'createNewCustomers'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Customers_Write'
      responses:
        200:
          description: The post was successful
          content: 
            application/json:
              schema:
                $ref: '#/components/schemas/PostResponse'
        403:
          description: A security issue occured, an incorrect API key is the most likely cause
    put:
      description: ''
      operationId: 'updateCustomers'
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Customers_Write'
      responses:
        200:
          description: The put was successful
          content: 
            application/json:
              schema:
                $ref: '#/components/schemas/PutResponse'
        403:
          description: A security issue occured, an incorrect API key is the most likely cause
  /Customers/{id}:
    get:
      description: ''
      operationId: 'getCustomersById'
      parameters:
        - in: path
          name: id
          description: 'The ID of the item'
          required: true
          schema:
            type: integer
      responses:
        200:
          description: A single 
          content: 
            application/json:
              schema:
                $ref: '#/components/schemas/Customers'
        403:
          description: A security issue occured, an incorrect API key is the most likely cause
        400:
          description: An incorrect query parameter or condition
  /SalesReps:
    get:
      description: ''
      operationId: 'getSalesReps'
      parameters:
        - in: query
          name: createdon
          description: The date the item was created
          required: false
          schema:
            type: string
            format: date
        - in: query
          name: updatedon
          description: The date the item was last updated
          required: false
          schema:
            type: string
            format: date
      responses:
        200:
          description: A paged collection of items including a total count of matches
          content: 
            application/json:
              schema:
                $ref: '#/components/schemas/SalesRepsCollection'
        403:
          description: A security issue occured, an incorrect API key is the most likely cause
        400:
          description: An incorrect query parameter or condition
  /SalesReps/{id}:
    get:
      description: ''
      operationId: 'getSalesRepsById'
      parameters:
        - in: path
          name: id
          description: 'The ID of the item'
          required: true
          schema:
            type: integer
      responses:
        200:
          description: A single 
          content: 
            application/json:
              schema:
                $ref: '#/components/schemas/SalesReps'
        403:
          description: A security issue occured, an incorrect API key is the most likely cause
        400:
          description: An incorrect query parameter or condition
  /Abbreviation:
    get:
      description: ''
      operationId: 'getAbbreviation'
      parameters:
        - in: query
          name: createdon
          description: The date the item was created
          required: false
          schema:
            type: string
            format: date
        - in: query
          name: updatedon
          description: The date the item was last updated
          required: false
          schema:
            type: string
            format: date
      responses:
        200:
          description: A paged collection of items including a total count of matches
          content: 
            application/json:
              schema:
                $ref: '#/components/schemas/AbbreviationCollection'
        403:
          description: A security issue occured, an incorrect API key is the most likely cause
        400:
          description: An incorrect query parameter or condition
  /Abbreviation/{id}:
    get:
      description: ''
      operationId: 'getAbbreviationById'
      parameters:
        - in: path
          name: id
          description: 'The ID of the item'
          required: true
          schema:
            type: integer
      responses:
        200:
          description: A single 
          content: 
            application/json:
              schema:
                $ref: '#/components/schemas/Abbreviation'
        403:
          description: A security issue occured, an incorrect API key is the most likely cause
        400:
          description: An incorrect query parameter or condition
  /Product:
    get:
      description: ''
      operationId: 'getProduct'
      parameters:
        - in: query
          name: createdon
          description: The date the item was created
          required: false
          schema:
            type: string
            format: date
        - in: query
          name: updatedon
          description: The date the item was last updated
          required: false
          schema:
            type: string
            format: date
      responses:
        200:
          description: A paged collection of items including a total count of matches
          content: 
            application/json:
              schema:
                $ref: '#/components/schemas/ProductCollection'
        403:
          description: A security issue occured, an incorrect API key is the most likely cause
        400:
          description: An incorrect query parameter or condition
  /Product/{id}:
    get:
      description: ''
      operationId: 'getProductById'
      parameters:
        - in: path
          name: id
          description: 'The ID of the item'
          required: true
          schema:
            type: integer
      responses:
        200:
          description: A single 
          content: 
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
        403:
          description: A security issue occured, an incorrect API key is the most likely cause
        400:
          description: An incorrect query parameter or condition
components:
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
  schemas:
    PostResponse:
      type: object
      properties:
        Status:
          type: string
        Message:
          type: string
        QueueEntryId:
          type: integer
        Data:
          type: array
          items:
            type: object
            properties:
              Id:
                type: integer
              TypeName:
                type: string
              Info:
                type: string
    PutResponse:
      type: object
      properties:
        Status:
          type: string
        Message:
          type: string
        QueueEntryId:
          type: integer
        Data:
          type: array
          items:
            type: object
            properties:
              Id:
                type: integer
              TypeName:
                type: string
              Info:
                type: string
    Customers:
      type: object
      properties:
        ID:
          type: integer
          format: int64
        UpdatedOn:
          type: string
          format: date
        CreatedOn:
          type: string
          format: date
        Code:
          type: string
        Name:
          type: string
        Phone:
          type: string
        EmailAddress:
          type: string
        SalesRep:
          type: object
          properties:
            ID:
              type: integer
              format: int64
            UpdatedOn:
              type: string
              format: date
            CreatedOn:
              type: string
              format: date
            Code:
              type: string
            Name:
              type: string
        Type:
          type: object
          properties:
            ID:
              type: integer
              format: int64
            UpdatedOn:
              type: string
              format: date
            CreatedOn:
              type: string
              format: date
            Code:
              type: string
            Description:
              type: string
        IndustryType:
          type: object
          properties:
            ID:
              type: integer
              format: int64
            UpdatedOn:
              type: string
              format: date
            CreatedOn:
              type: string
              format: date
            Code:
              type: string
            Description:
              type: string
    Customers_Write:
      type: object
      properties:
        ID:
          type: integer
          format: int64
        UpdatedOn:
          type: string
          format: date
        CreatedOn:
          type: string
          format: date
        Code:
          type: string
        Name:
          type: string
        Phone:
          type: string
        EmailAddress:
          type: string
        SalesRep:
          type: number
        Type:
          type: number
        IndustryType:
          type: number
    CustomersCollection:
      type: object
      properties:
        TotalCount:
          type: integer
        Data:
          type: array
          items:
            $ref: '#/components/schemas/Customers'
    SalesReps:
      type: object
      properties:
        ID:
          type: integer
          format: int64
        UpdatedOn:
          type: string
          format: date
        CreatedOn:
          type: string
          format: date
        Code:
          type: string
        Name:
          type: string
        Name:
          type: string
    SalesReps_Write:
      type: object
      properties:
        ID:
          type: integer
          format: int64
        UpdatedOn:
          type: string
          format: date
        CreatedOn:
          type: string
          format: date
        Code:
          type: string
        Name:
          type: string
        Name:
          type: string
    SalesRepsCollection:
      type: object
      properties:
        TotalCount:
          type: integer
        Data:
          type: array
          items:
            $ref: '#/components/schemas/SalesReps'
    Abbreviation:
      type: object
      properties:
        ID:
          type: integer
          format: int64
        UpdatedOn:
          type: string
          format: date
        CreatedOn:
          type: string
          format: date
        Number:
          type: string
        Supplier:
          type: object
          properties:
            ID:
              type: integer
              format: int64
            UpdatedOn:
              type: string
              format: date
            CreatedOn:
              type: string
              format: date
            Code:
              type: string
            Name:
              type: string
        Date:
          type: string
          format: date
        AlternateReference:
          type: string
    Abbreviation_Write:
      type: object
      properties:
        ID:
          type: integer
          format: int64
        UpdatedOn:
          type: string
          format: date
        CreatedOn:
          type: string
          format: date
        Number:
          type: string
        Supplier:
          type: number
        Date:
          type: string
          format: date
        AlternateReference:
          type: string
    AbbreviationCollection:
      type: object
      properties:
        TotalCount:
          type: integer
        Data:
          type: array
          items:
            $ref: '#/components/schemas/Abbreviation'
    Product:
      type: object
      properties:
        ID:
          type: integer
          format: int64
        UpdatedOn:
          type: string
          format: date
        CreatedOn:
          type: string
          format: date
        Description:
          type: string
        Type:
          type: string
        _ID:
          type: string
        Code:
          type: string
        Category:
          type: object
          properties:
            ID:
              type: integer
              format: int64
            UpdatedOn:
              type: string
              format: date
            CreatedOn:
              type: string
              format: date
            Code:
              type: string
            Description:
              type: string
        Range:
          type: object
          properties:
            ID:
              type: integer
              format: int64
            UpdatedOn:
              type: string
              format: date
            CreatedOn:
              type: string
              format: date
            Code:
              type: string
            Description:
              type: string
        Brand:
          type: object
          properties:
            ID:
              type: integer
              format: int64
            UpdatedOn:
              type: string
              format: date
            CreatedOn:
              type: string
              format: date
            Code:
              type: string
            Description:
              type: string
        Manufacturer:
          type: object
          properties:
            ID:
              type: integer
              format: int64
            UpdatedOn:
              type: string
              format: date
            CreatedOn:
              type: string
              format: date
            Code:
              type: string
            Name:
              type: string
    Product_Write:
      type: object
      properties:
        ID:
          type: integer
          format: int64
        UpdatedOn:
          type: string
          format: date
        CreatedOn:
          type: string
          format: date
        Description:
          type: string
        Type:
          type: string
        _ID:
          type: string
        Code:
          type: string
        Category:
          type: number
        Range:
          type: number
        Brand:
          type: number
        Manufacturer:
          type: number
    ProductCollection:
      type: object
      properties:
        TotalCount:
          type: integer
        Data:
          type: array
          items:
            $ref: '#/components/schemas/Product'
security:
  - apiKey: []
