Oracle E-Business Suite Purchasing API

Purchase order, requisition, and supplier management

OpenAPI Specification

oracle-e-business-suite-purchasing-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Oracle EBS e-Commerce Gateway Accounts Payable Purchasing API
  description: RESTful APIs for Oracle E-Business Suite e-Commerce Gateway providing EDI (Electronic Data Interchange) transaction support. Enables exchange of standard ASC X12 and EDIFACT documents with trading partners through flat ASCII file integration with third-party EDI translators. Supports inbound and outbound document processing for purchase orders, invoices, ship notices, and other business documents.
  version: 12.2.0
  contact:
    name: Oracle Support
    email: support@oracle.com
    url: https://support.oracle.com
  license:
    name: Oracle Proprietary
    url: https://www.oracle.com/legal/terms/
  x-logo:
    url: https://www.oracle.com/a/ocom/img/oracle-logo.svg
servers:
- url: https://{instance}.oracle.com/webservices/rest
  description: Oracle EBS ISG REST endpoint
  variables:
    instance:
      default: ebs-host
      description: The Oracle EBS instance hostname
tags:
- name: Purchasing
  description: Purchase order, requisition, and supplier management
paths:
  /po/purchaseOrders:
    get:
      operationId: getPurchaseOrders
      summary: Retrieve Purchase Orders
      description: Retrieves purchase order records. Maps to the PO_HEADERS_ALL, PO_LINES_ALL, PO_LINE_LOCATIONS_ALL, and PO_DISTRIBUTIONS_ALL tables through the PO_PURCHASE_ORDERS_PKG PL/SQL API.
      tags:
      - Purchasing
      security:
      - tokenAuth: []
      - basicAuth: []
      parameters:
      - name: poHeaderId
        in: query
        description: Purchase order header identifier
        schema:
          type: integer
        example: '500123'
      - name: segment1
        in: query
        description: Purchase order number
        schema:
          type: string
        example: example_value
      - name: vendorId
        in: query
        description: Supplier/vendor identifier
        schema:
          type: integer
        example: '500123'
      - name: authorizationStatus
        in: query
        description: Authorization status
        schema:
          type: string
          enum:
          - APPROVED
          - IN PROCESS
          - INCOMPLETE
          - PRE-APPROVED
          - REJECTED
          - REQUIRES REAPPROVAL
        example: APPROVED
      - name: creationDateFrom
        in: query
        description: Creation date range start (YYYY-MM-DD)
        schema:
          type: string
          format: date
        example: '2026-01-15'
      - name: creationDateTo
        in: query
        description: Creation date range end (YYYY-MM-DD)
        schema:
          type: string
          format: date
        example: '2026-01-15'
      - name: typeLookupCode
        in: query
        description: Purchase order type
        schema:
          type: string
          enum:
          - STANDARD
          - BLANKET
          - CONTRACT
          - PLANNED
        example: STANDARD
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: List of purchase orders
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PurchaseOrder'
                  totalCount:
                    type: integer
                  hasMore:
                    type: boolean
              examples:
                Getpurchaseorders200Example:
                  summary: Default getPurchaseOrders 200 response
                  x-microcks-default: true
                  value:
                    items:
                    - poHeaderId: '500123'
                      segment1: example_value
                      typeLookupCode: STANDARD
                      vendorId: '500123'
                      vendorName: example_value
                      vendorSiteId: '500123'
                      currencyCode: example_value
                      authorizationStatus: APPROVED
                      approvedFlag: Y
                      closedCode: OPEN
                      totalAmount: 42.5
                      creationDate: '2026-01-15T10:30:00Z'
                      approvedDate: '2026-01-15'
                      buyerId: '500123'
                      shipToLocationId: '500123'
                      billToLocationId: '500123'
                      termsId: '500123'
                      description: A sample description.
                      lines:
                      - {}
                      orgId: '500123'
                      lastUpdateDate: '2026-01-15T10:30:00Z'
                    totalCount: 10
                    hasMore: true
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createPurchaseOrder
      summary: Create a Purchase Order
      description: Creates a new purchase order. Uses the PO_HEADERS_INTERFACE, PO_LINES_INTERFACE, and PO_DISTRIBUTIONS_INTERFACE tables, then initiates the Import Standard Purchase Orders concurrent program.
      tags:
      - Purchasing
      security:
      - tokenAuth: []
      - basicAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderCreate'
            examples:
              CreatepurchaseorderRequestExample:
                summary: Default createPurchaseOrder request
                x-microcks-default: true
                value:
                  vendorId: '500123'
                  vendorSiteId: '500123'
                  currencyCode: example_value
                  typeLookupCode: example_value
                  description: A sample description.
                  buyerId: '500123'
                  shipToLocationId: '500123'
                  billToLocationId: '500123'
                  termsId: '500123'
                  lines:
                  - lineNum: 10
                    itemId: '500123'
                    itemDescription: example_value
                    categoryId: '500123'
                    quantity: 42.5
                    unitMeasLookupCode: example_value
                    unitPrice: 42.5
                    needByDate: '2026-01-15'
                    shipToOrganizationId: '500123'
      responses:
        '201':
          description: Purchase order created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrder'
              examples:
                Createpurchaseorder201Example:
                  summary: Default createPurchaseOrder 201 response
                  x-microcks-default: true
                  value:
                    poHeaderId: '500123'
                    segment1: example_value
                    typeLookupCode: STANDARD
                    vendorId: '500123'
                    vendorName: example_value
                    vendorSiteId: '500123'
                    currencyCode: example_value
                    authorizationStatus: APPROVED
                    approvedFlag: Y
                    closedCode: OPEN
                    totalAmount: 42.5
                    creationDate: '2026-01-15T10:30:00Z'
                    approvedDate: '2026-01-15'
                    buyerId: '500123'
                    shipToLocationId: '500123'
                    billToLocationId: '500123'
                    termsId: '500123'
                    description: A sample description.
                    lines:
                    - poLineId: '500123'
                      lineNum: 10
                      lineType: example_value
                      itemId: '500123'
                      itemDescription: example_value
                      categoryId: '500123'
                      quantity: 42.5
                      unitMeasLookupCode: example_value
                      unitPrice: 42.5
                      amount: 42.5
                      needByDate: '2026-01-15'
                      promisedDate: '2026-01-15'
                      closedCode: example_value
                      shipments: {}
                    orgId: '500123'
                    lastUpdateDate: '2026-01-15T10:30:00Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /po/purchaseOrders/{poHeaderId}:
    get:
      operationId: getPurchaseOrderById
      summary: Retrieve a Specific Purchase Order
      description: Retrieves a purchase order by its header identifier.
      tags:
      - Purchasing
      security:
      - tokenAuth: []
      - basicAuth: []
      parameters:
      - name: poHeaderId
        in: path
        required: true
        schema:
          type: integer
        example: '500123'
      responses:
        '200':
          description: Purchase order details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrder'
              examples:
                Getpurchaseorderbyid200Example:
                  summary: Default getPurchaseOrderById 200 response
                  x-microcks-default: true
                  value:
                    poHeaderId: '500123'
                    segment1: example_value
                    typeLookupCode: STANDARD
                    vendorId: '500123'
                    vendorName: example_value
                    vendorSiteId: '500123'
                    currencyCode: example_value
                    authorizationStatus: APPROVED
                    approvedFlag: Y
                    closedCode: OPEN
                    totalAmount: 42.5
                    creationDate: '2026-01-15T10:30:00Z'
                    approvedDate: '2026-01-15'
                    buyerId: '500123'
                    shipToLocationId: '500123'
                    billToLocationId: '500123'
                    termsId: '500123'
                    description: A sample description.
                    lines:
                    - poLineId: '500123'
                      lineNum: 10
                      lineType: example_value
                      itemId: '500123'
                      itemDescription: example_value
                      categoryId: '500123'
                      quantity: 42.5
                      unitMeasLookupCode: example_value
                      unitPrice: 42.5
                      amount: 42.5
                      needByDate: '2026-01-15'
                      promisedDate: '2026-01-15'
                      closedCode: example_value
                      shipments: {}
                    orgId: '500123'
                    lastUpdateDate: '2026-01-15T10:30:00Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updatePurchaseOrder
      summary: Update a Purchase Order
      description: Updates an existing purchase order. Uses the PO_CHANGE_API1_S PL/SQL package for modifications to approved purchase orders.
      tags:
      - Purchasing
      security:
      - tokenAuth: []
      - basicAuth: []
      parameters:
      - name: poHeaderId
        in: path
        required: true
        schema:
          type: integer
        example: '500123'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PurchaseOrderUpdate'
            examples:
              UpdatepurchaseorderRequestExample:
                summary: Default updatePurchaseOrder request
                x-microcks-default: true
                value:
                  description: A sample description.
                  lines:
                  - poLineId: '500123'
                    quantity: 42.5
                    unitPrice: 42.5
                    needByDate: '2026-01-15'
                    cancelFlag: true
      responses:
        '200':
          description: Purchase order updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PurchaseOrder'
              examples:
                Updatepurchaseorder200Example:
                  summary: Default updatePurchaseOrder 200 response
                  x-microcks-default: true
                  value:
                    poHeaderId: '500123'
                    segment1: example_value
                    typeLookupCode: STANDARD
                    vendorId: '500123'
                    vendorName: example_value
                    vendorSiteId: '500123'
                    currencyCode: example_value
                    authorizationStatus: APPROVED
                    approvedFlag: Y
                    closedCode: OPEN
                    totalAmount: 42.5
                    creationDate: '2026-01-15T10:30:00Z'
                    approvedDate: '2026-01-15'
                    buyerId: '500123'
                    shipToLocationId: '500123'
                    billToLocationId: '500123'
                    termsId: '500123'
                    description: A sample description.
                    lines:
                    - poLineId: '500123'
                      lineNum: 10
                      lineType: example_value
                      itemId: '500123'
                      itemDescription: example_value
                      categoryId: '500123'
                      quantity: 42.5
                      unitMeasLookupCode: example_value
                      unitPrice: 42.5
                      amount: 42.5
                      needByDate: '2026-01-15'
                      promisedDate: '2026-01-15'
                      closedCode: example_value
                      shipments: {}
                    orgId: '500123'
                    lastUpdateDate: '2026-01-15T10:30:00Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /po/requisitions:
    get:
      operationId: getRequisitions
      summary: Retrieve Purchase Requisitions
      description: Retrieves purchase requisition records. Maps to the PO_REQUISITION_HEADERS_ALL and PO_REQUISITION_LINES_ALL tables.
      tags:
      - Purchasing
      security:
      - tokenAuth: []
      - basicAuth: []
      parameters:
      - name: requisitionHeaderId
        in: query
        description: Requisition header identifier
        schema:
          type: integer
        example: '500123'
      - name: requisitionNumber
        in: query
        description: Requisition number
        schema:
          type: string
        example: example_value
      - name: authorizationStatus
        in: query
        description: Authorization status
        schema:
          type: string
          enum:
          - APPROVED
          - IN PROCESS
          - INCOMPLETE
          - REJECTED
          - RETURNED
        example: APPROVED
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: List of requisitions
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Requisition'
                  totalCount:
                    type: integer
                  hasMore:
                    type: boolean
              examples:
                Getrequisitions200Example:
                  summary: Default getRequisitions 200 response
                  x-microcks-default: true
                  value:
                    items:
                    - requisitionHeaderId: '500123'
                      segment1: example_value
                      typeLookupCode: PURCHASE
                      authorizationStatus: example_value
                      preparerId: '500123'
                      description: A sample description.
                      totalAmount: 42.5
                      creationDate: '2026-01-15T10:30:00Z'
                      lines:
                      - {}
                      orgId: '500123'
                    totalCount: 10
                    hasMore: true
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /po/suppliers:
    get:
      operationId: getSuppliers
      summary: Retrieve Suppliers
      description: Retrieves supplier/vendor records. Maps to the AP_SUPPLIERS and AP_SUPPLIER_SITES_ALL tables through the AP_VENDOR_PUB_PKG API.
      tags:
      - Purchasing
      security:
      - tokenAuth: []
      - basicAuth: []
      parameters:
      - name: vendorId
        in: query
        description: Vendor identifier
        schema:
          type: integer
        example: '500123'
      - name: vendorName
        in: query
        description: Vendor name (supports wildcards)
        schema:
          type: string
        example: example_value
      - name: segment1
        in: query
        description: Vendor number
        schema:
          type: string
        example: example_value
      - name: vendorType
        in: query
        description: Vendor type
        schema:
          type: string
        example: example_value
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: List of suppliers
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Supplier'
                  totalCount:
                    type: integer
                  hasMore:
                    type: boolean
              examples:
                Getsuppliers200Example:
                  summary: Default getSuppliers 200 response
                  x-microcks-default: true
                  value:
                    items:
                    - vendorId: '500123'
                      vendorName: example_value
                      segment1: example_value
                      vendorType: example_value
                      taxPayerId: '500123'
                      standardIndustryClass: example_value
                      paymentCurrencyCode: example_value
                      paymentMethodCode: example_value
                      termsId: '500123'
                      enabled: true
                      startDateActive: '2026-01-15'
                      endDateActive: '2026-01-15'
                      sites:
                      - {}
                      creationDate: '2026-01-15T10:30:00Z'
                      lastUpdateDate: '2026-01-15T10:30:00Z'
                    totalCount: 10
                    hasMore: true
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    PurchaseOrderCreate:
      type: object
      required:
      - vendorId
      - vendorSiteId
      - currencyCode
      - lines
      properties:
        vendorId:
          type: integer
          example: '500123'
        vendorSiteId:
          type: integer
          example: '500123'
        currencyCode:
          type: string
          example: example_value
        typeLookupCode:
          type: string
          default: STANDARD
          example: example_value
        description:
          type: string
          example: A sample description.
        buyerId:
          type: integer
          example: '500123'
        shipToLocationId:
          type: integer
          example: '500123'
        billToLocationId:
          type: integer
          example: '500123'
        termsId:
          type: integer
          example: '500123'
        lines:
          type: array
          items:
            type: object
            required:
            - itemDescription
            - quantity
            - unitPrice
            properties:
              lineNum:
                type: integer
              itemId:
                type: integer
              itemDescription:
                type: string
              categoryId:
                type: integer
              quantity:
                type: number
                format: double
              unitMeasLookupCode:
                type: string
              unitPrice:
                type: number
                format: double
              needByDate:
                type: string
                format: date
              shipToOrganizationId:
                type: integer
          example: []
    PurchaseOrder:
      type: object
      properties:
        poHeaderId:
          type: integer
          description: Purchase order header identifier
          example: '500123'
        segment1:
          type: string
          description: Purchase order number
          example: example_value
        typeLookupCode:
          type: string
          description: Purchase order type
          enum:
          - STANDARD
          - BLANKET
          - CONTRACT
          - PLANNED
          example: STANDARD
        vendorId:
          type: integer
          description: Supplier/vendor identifier
          example: '500123'
        vendorName:
          type: string
          description: Supplier/vendor name
          example: example_value
        vendorSiteId:
          type: integer
          description: Vendor site identifier
          example: '500123'
        currencyCode:
          type: string
          description: Currency code (ISO 4217)
          example: example_value
        authorizationStatus:
          type: string
          description: Authorization status
          enum:
          - APPROVED
          - IN PROCESS
          - INCOMPLETE
          - PRE-APPROVED
          - REJECTED
          - REQUIRES REAPPROVAL
          example: APPROVED
        approvedFlag:
          type: string
          description: Approved flag
          enum:
          - Y
          - N
          example: Y
        closedCode:
          type: string
          description: Close status
          enum:
          - OPEN
          - CLOSED
          - FINALLY CLOSED
          - CLOSED FOR RECEIVING
          - CLOSED FOR INVOICE
          example: OPEN
        totalAmount:
          type: number
          format: double
          description: Total purchase order amount
          example: 42.5
        creationDate:
          type: string
          format: date-time
          description: Creation date
          example: '2026-01-15T10:30:00Z'
        approvedDate:
          type: string
          format: date
          description: Approval date
          example: '2026-01-15'
        buyerId:
          type: integer
          description: Buyer employee identifier
          example: '500123'
        shipToLocationId:
          type: integer
          description: Ship-to location identifier
          example: '500123'
        billToLocationId:
          type: integer
          description: Bill-to location identifier
          example: '500123'
        termsId:
          type: integer
          description: Payment terms identifier
          example: '500123'
        description:
          type: string
          description: Purchase order description
          example: A sample description.
        lines:
          type: array
          items:
            $ref: '#/components/schemas/PurchaseOrderLine'
          example: []
        orgId:
          type: integer
          description: Operating unit identifier
          example: '500123'
        lastUpdateDate:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            detail:
              type: string
          example: example_value
    Requisition:
      type: object
      properties:
        requisitionHeaderId:
          type: integer
          description: Requisition header identifier
          example: '500123'
        segment1:
          type: string
          description: Requisition number
          example: example_value
        typeLookupCode:
          type: string
          description: Requisition type
          enum:
          - PURCHASE
          - INTERNAL
          example: PURCHASE
        authorizationStatus:
          type: string
          description: Authorization status
          example: example_value
        preparerId:
          type: integer
          description: Preparer identifier
          example: '500123'
        description:
          type: string
          description: Requisition description
          example: A sample description.
        totalAmount:
          type: number
          format: double
          example: 42.5
        creationDate:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
        lines:
          type: array
          items:
            $ref: '#/components/schemas/RequisitionLine'
          example: []
        orgId:
          type: integer
          example: '500123'
    Supplier:
      type: object
      properties:
        vendorId:
          type: integer
          description: Vendor identifier
          example: '500123'
        vendorName:
          type: string
          description: Vendor name
          example: example_value
        segment1:
          type: string
          description: Vendor number
          example: example_value
        vendorType:
          type: string
          description: Vendor type lookup code
          example: example_value
        taxPayerId:
          type: string
          description: Tax payer identification number
          example: '500123'
        standardIndustryClass:
          type: string
          description: Standard industry classification
          example: example_value
        paymentCurrencyCode:
          type: string
          description: Default payment currency
          example: example_value
        paymentMethodCode:
          type: string
          description: Default payment method
          example: example_value
        termsId:
          type: integer
          description: Default payment terms identifier
          example: '500123'
        enabled:
          type: boolean
          description: Whether the vendor is active
          example: true
        startDateActive:
          type: string
          format: date
          example: '2026-01-15'
        endDateActive:
          type: string
          format: date
          example: '2026-01-15'
        sites:
          type: array
          items:
            $ref: '#/components/schemas/SupplierSite'
          example: []
        creationDate:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
        lastUpdateDate:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
    RequisitionLine:
      type: object
      properties:
        requisitionLineId:
          type: integer
          example: '500123'
        lineNum:
          type: integer
          example: 10
        itemId:
          type: integer
          example: '500123'
        itemDescription:
          type: string
          example: example_value
        categoryId:
          type: integer
          example: '500123'
        quantity:
          type: number
          format: double
          example: 42.5
        unitMeasLookupCode:
          type: string
          example: example_value
        unitPrice:
          type: number
          format: double
          example: 42.5
        needByDate:
          type: string
          format: date
          example: '2026-01-15'
        suggestedVendorId:
          type: integer
          example: '500123'
    SupplierSite:
      type: object
      properties:
        vendorSiteId:
          type: integer
          description: Vendor site identifier
          example: '500123'
        vendorSiteCode:
          type: string
          description: Vendor site code
          example: example_value
        addressLine1:
          type: string
          example: example_value
        addressLine2:
          type: string
          example: example_value
        city:
          type: string
          example: example_value
        state:
          type: string
          example: example_value
        zip:
          type: string
          example: example_value
        country:
          type: string
          example: example_value
        purchasingSiteFlag:
          type: string
          enum:
          - Y
          - N
          example: Y
        paymentSiteFlag:
          type: string
          enum:
          - Y
          - N
          example: Y
        orgId:
          type: integer
          example: '500123'
    PurchaseOrderShipment:
      type: object
      properties:
        lineLocationId:
          type: integer
          description: Line location (shipment) identifier
          example: '500123'
        shipmentNum:
          type: integer
          description: Shipment number
          example: 10
        quantity:
          type: number
          format: double
          description: Shipment quantity
          example: 42.5
        quantityReceived:
          type: number
          format: double
          description: Quantity received
          example: 42.5
        quantityBilled:
          type: number
          format: double
          description: Quantity billed
          example: 42.5
        needByDate:
          type: string
          format: date
          example: '2026-01-15'
        promisedDate:
          type: string
          format: date
          example: '2026-01-15'
        shipToOrganizationId:
          type: integer
          description: Ship-to organization identifier
          example: '500123'
        shipToLocationId:
          type: integer
          description: Ship-to location identifier
          example: '500123'
        closedCode:
          type: string
          description: Shipment close status
          example: example_value
    PurchaseOrderLine:
      type: object
      properties:
        poLineId:
          type: integer
          description: Purchase order line identifier
          example: '500123'
        lineNum:
          type: integer
          description: Line number
          example: 10
        lineType:
          type: string
          description: Line type
          example: example_value
        itemId:
          type: integer
          description: Inventory item identifier
          example: '500123'
        itemDescription:
          type: string
          description: Item description
          example: example_value
        categoryId:
          type: integer
          description: Item category identifier
          example: '500123'
        quantity:
          type: number
          format: double
          description: Ordered quantity
          example: 42.5
        unitMeasLookupCode:
          type: string
          description: Unit of measure
          example: example_value
        unitPrice:
          type: number
          format: double
          description: Unit price
          example: 42.5
        amount:
          type: number
          format: double
          description: Line amount
          example: 42.5
        needByDate:
          type: string
          format: date
          description: Need-by date
          example: '2026-01-15'
        promisedDate:
          type: string
          format: date
          description: Promised date
          example: '2026-01-15'
        closedCode:
          type: string
          description: Line close status
          exam

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/oracle-e-business-suite/refs/heads/main/openapi/oracle-e-business-suite-purchasing-api-openapi.yml