[Quoting] Attachment APIs added

New/now-visible endpoints in the spec (Library attachments)

  • GET /v2/quote-attachments: List library attachments (JSON)
  • POST /v2/quote-attachments: Upload library attachments (multipart upload)
    • Request: multipart/form-data with attachments[] (binary files)
  • PUT /v2/quote-attachments: Update library attachment metadata (JSON)
  • POST /v2/quote-attachments/shared: Copy quote attachments to library (JSON body)
  • GET /v2/quote-attachments/{attachmentId}: Dual-behavior
    • JSON metadata by default
    • PDF download when download=true
  • PATCH /v2/quote-attachments/{attachmentId}: Replace a library attachment (multipart upload)
    • Request: multipart/form-data with attachment (binary file)
  • DELETE /v2/quote-attachments/{attachmentId}: Delete library attachment

New/now-visible endpoints in the spec (Quote attachments)

  • GET /v2/quotes/{quoteId}/attachments?downloadZip=true: Download all quote attachments as a ZIP (application/zip)
    • Errors (4xx) are documented as */* with ErrorResponse
  • POST /v2/quotes/{quoteId}/attachments: Upload attachments to a quote (multipart upload)
    • Request: multipart/form-data with attachments[] (binary files)
  • PUT /v2/quotes/{quoteId}/attachments: Update quote attachment metadata (JSON)
  • POST /v2/quotes/{quoteId}/attachments/shared: Copy library attachment(s) onto a quote (JSON body)
  • GET /v2/quotes/{quoteId}/attachments/{attachmentId}?download=true: Dual-behavior
    • JSON metadata by default
    • PDF download when download=true
  • DELETE /v2/quotes/{quoteId}/attachments/{attachmentId}: Delete quote attachment

Preference attachments now documented

  • POST /v2/quote-preferences/attachments: Upload preference attachments based on library attachments (JSON body)
  • DELETE /v2/quote-preferences/attachments/{attachmentId}: Delete preference attachment