@cmarket/partner-sdk 38.0.0 โ 38.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -5
- package/api/embed-api.ts +9 -9
- package/api/oauth-api.ts +1 -1
- package/api/partner-api-api.ts +683 -1
- package/api/products-api.ts +1 -1
- package/api/well-known-api.ts +1 -1
- package/api.ts +1 -1
- package/base.ts +1 -1
- package/common.ts +1 -1
- package/configuration.ts +1 -1
- package/dist/api/embed-api.d.ts +9 -9
- package/dist/api/embed-api.js +9 -9
- package/dist/api/oauth-api.d.ts +1 -1
- package/dist/api/oauth-api.js +1 -1
- package/dist/api/partner-api-api.d.ts +305 -1
- package/dist/api/partner-api-api.js +639 -1
- package/dist/api/products-api.d.ts +1 -1
- package/dist/api/products-api.js +1 -1
- package/dist/api/well-known-api.d.ts +1 -1
- package/dist/api/well-known-api.js +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +1 -1
- package/dist/base.d.ts +1 -1
- package/dist/base.js +1 -1
- package/dist/common.d.ts +1 -1
- package/dist/common.js +1 -1
- package/dist/configuration.d.ts +1 -1
- package/dist/configuration.js +1 -1
- package/dist/esm/api/embed-api.d.ts +9 -9
- package/dist/esm/api/embed-api.js +9 -9
- package/dist/esm/api/oauth-api.d.ts +1 -1
- package/dist/esm/api/oauth-api.js +1 -1
- package/dist/esm/api/partner-api-api.d.ts +305 -1
- package/dist/esm/api/partner-api-api.js +639 -1
- package/dist/esm/api/products-api.d.ts +1 -1
- package/dist/esm/api/products-api.js +1 -1
- package/dist/esm/api/well-known-api.d.ts +1 -1
- package/dist/esm/api/well-known-api.js +1 -1
- package/dist/esm/api.d.ts +1 -1
- package/dist/esm/api.js +1 -1
- package/dist/esm/base.d.ts +1 -1
- package/dist/esm/base.js +1 -1
- package/dist/esm/common.d.ts +1 -1
- package/dist/esm/common.js +1 -1
- package/dist/esm/configuration.d.ts +1 -1
- package/dist/esm/configuration.js +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/models/acceptance-result-response-dto.d.ts +1 -1
- package/dist/esm/models/acceptance-result-response-dto.js +1 -1
- package/dist/esm/models/acknowledge-product-receipt200-response.d.ts +1 -1
- package/dist/esm/models/acknowledge-product-receipt200-response.js +1 -1
- package/dist/esm/models/acknowledge-products-request-dto.d.ts +1 -1
- package/dist/esm/models/acknowledge-products-request-dto.js +1 -1
- package/dist/esm/models/api-catalog-dto.d.ts +1 -1
- package/dist/esm/models/api-catalog-dto.js +1 -1
- package/dist/esm/models/api-catalog-entry-dto.d.ts +1 -1
- package/dist/esm/models/api-catalog-entry-dto.js +1 -1
- package/dist/esm/models/api-catalog-link-dto.d.ts +1 -1
- package/dist/esm/models/api-catalog-link-dto.js +1 -1
- package/dist/esm/models/authorization-server-metadata-dto.d.ts +1 -1
- package/dist/esm/models/authorization-server-metadata-dto.js +1 -1
- package/dist/esm/models/award-method-public.d.ts +1 -1
- package/dist/esm/models/award-method-public.js +1 -1
- package/dist/esm/models/award-registered-v2-response-dto.d.ts +1 -1
- package/dist/esm/models/award-registered-v2-response-dto.js +1 -1
- package/dist/esm/models/award-reverted-v2-response-dto.d.ts +1 -1
- package/dist/esm/models/award-reverted-v2-response-dto.js +1 -1
- package/dist/esm/models/bid-acceptance-dto.d.ts +1 -1
- package/dist/esm/models/bid-acceptance-dto.js +1 -1
- package/dist/esm/models/bid-attachment-input-dto.d.ts +1 -1
- package/dist/esm/models/bid-attachment-input-dto.js +1 -1
- package/dist/esm/models/bid-bond-dto.d.ts +1 -1
- package/dist/esm/models/bid-bond-dto.js +1 -1
- package/dist/esm/models/bid-cancelled-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-cancelled-response-dto.js +1 -1
- package/dist/esm/models/bid-contact-dto.d.ts +1 -1
- package/dist/esm/models/bid-contact-dto.js +1 -1
- package/dist/esm/models/bid-contacts-dto.d.ts +1 -1
- package/dist/esm/models/bid-contacts-dto.js +1 -1
- package/dist/esm/models/bid-contract-document-dto.d.ts +1 -1
- package/dist/esm/models/bid-contract-document-dto.js +1 -1
- package/dist/esm/models/bid-delivery-terms-dto.d.ts +1 -1
- package/dist/esm/models/bid-delivery-terms-dto.js +1 -1
- package/dist/esm/models/bid-detail-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-detail-response-dto.js +1 -1
- package/dist/esm/models/bid-document-dto.d.ts +1 -1
- package/dist/esm/models/bid-document-dto.js +1 -1
- package/dist/esm/models/bid-failed-v2-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-failed-v2-response-dto.js +1 -1
- package/dist/esm/models/bid-item-dto.d.ts +1 -1
- package/dist/esm/models/bid-item-dto.js +1 -1
- package/dist/esm/models/bid-lifecycle-dto.d.ts +1 -1
- package/dist/esm/models/bid-lifecycle-dto.js +1 -1
- package/dist/esm/models/bid-manager-dto.d.ts +1 -1
- package/dist/esm/models/bid-manager-dto.js +1 -1
- package/dist/esm/models/bid-payment-terms-dto.d.ts +1 -1
- package/dist/esm/models/bid-payment-terms-dto.js +1 -1
- package/dist/esm/models/bid-product-dto.d.ts +1 -1
- package/dist/esm/models/bid-product-dto.js +1 -1
- package/dist/esm/models/bid-public-status.d.ts +1 -1
- package/dist/esm/models/bid-public-status.js +1 -1
- package/dist/esm/models/bid-registered-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-registered-response-dto.js +1 -1
- package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +1 -1
- package/dist/esm/models/bid-result-participant-attachment-dto.js +1 -1
- package/dist/esm/models/bid-result-participant-dto.d.ts +1 -1
- package/dist/esm/models/bid-result-participant-dto.js +1 -1
- package/dist/esm/models/bid-results-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-results-response-dto.js +1 -1
- package/dist/esm/models/bid-settlement-line-item-dto.d.ts +1 -1
- package/dist/esm/models/bid-settlement-line-item-dto.js +1 -1
- package/dist/esm/models/bid-settlement-participant-dto.d.ts +1 -1
- package/dist/esm/models/bid-settlement-participant-dto.js +1 -1
- package/dist/esm/models/bid-settlement-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-settlement-response-dto.js +1 -1
- package/dist/esm/models/bid-statement-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-statement-response-dto.js +1 -1
- package/dist/esm/models/bid-summary-dto.d.ts +1 -1
- package/dist/esm/models/bid-summary-dto.js +1 -1
- package/dist/esm/models/bid-type-public.d.ts +1 -1
- package/dist/esm/models/bid-type-public.js +1 -1
- package/dist/esm/models/bid-updated-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-updated-response-dto.js +1 -1
- package/dist/esm/models/cancel-bid-request-dto.d.ts +1 -1
- package/dist/esm/models/cancel-bid-request-dto.js +1 -1
- package/dist/esm/models/cancel-bid200-response.d.ts +1 -1
- package/dist/esm/models/cancel-bid200-response.js +1 -1
- package/dist/esm/models/card-payment-request-response-dto.d.ts +1 -1
- package/dist/esm/models/card-payment-request-response-dto.js +1 -1
- package/dist/esm/models/complete-acceptance-request-dto.d.ts +1 -1
- package/dist/esm/models/complete-acceptance-request-dto.js +1 -1
- package/dist/esm/models/complete-acceptance200-response.d.ts +1 -1
- package/dist/esm/models/complete-acceptance200-response.js +1 -1
- package/dist/esm/models/complete-invoice200-response.d.ts +1 -1
- package/dist/esm/models/complete-invoice200-response.js +1 -1
- package/dist/esm/models/complete-upload-request-dto.d.ts +1 -1
- package/dist/esm/models/complete-upload-request-dto.js +1 -1
- package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +1 -1
- package/dist/esm/models/contract-restriction-confirm-input-dto.js +1 -1
- package/dist/esm/models/create-bid-request-dto.d.ts +1 -1
- package/dist/esm/models/create-bid-request-dto.js +1 -1
- package/dist/esm/models/create-card-payment-dto.d.ts +1 -1
- package/dist/esm/models/create-card-payment-dto.js +1 -1
- package/dist/esm/models/create-card-payment-request-dto.d.ts +1 -1
- package/dist/esm/models/create-card-payment-request-dto.js +1 -1
- package/dist/esm/models/create-card-payment200-response.d.ts +1 -1
- package/dist/esm/models/create-card-payment200-response.js +1 -1
- package/dist/esm/models/create-embed-launch201-response.d.ts +1 -1
- package/dist/esm/models/create-embed-launch201-response.js +1 -1
- package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +1 -1
- package/dist/esm/models/create-external-contract-documents-request-dto.js +1 -1
- package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +1 -1
- package/dist/esm/models/create-external-contract-documents-response-dto.js +1 -1
- package/dist/esm/models/create-file-upload-url201-response.d.ts +1 -1
- package/dist/esm/models/create-file-upload-url201-response.js +1 -1
- package/dist/esm/models/create-upload-url-request-dto.d.ts +1 -1
- package/dist/esm/models/create-upload-url-request-dto.js +1 -1
- package/dist/esm/models/create-webhook-endpoint-request-dto.d.ts +22 -0
- package/dist/esm/models/create-webhook-endpoint-request-dto.js +14 -0
- package/dist/esm/models/create-webhook-endpoint201-response.d.ts +15 -0
- package/dist/esm/models/create-webhook-endpoint201-response.js +14 -0
- package/dist/esm/models/delivery-date-type-public.d.ts +1 -1
- package/dist/esm/models/delivery-date-type-public.js +1 -1
- package/dist/esm/models/delivery-method-public.d.ts +1 -1
- package/dist/esm/models/delivery-method-public.js +1 -1
- package/dist/esm/models/embed-launch-request-dto.d.ts +1 -1
- package/dist/esm/models/embed-launch-request-dto.js +1 -1
- package/dist/esm/models/embed-launch-response-dto.d.ts +6 -2
- package/dist/esm/models/embed-launch-response-dto.js +1 -1
- package/dist/esm/models/excellent-procurement-public.d.ts +1 -1
- package/dist/esm/models/excellent-procurement-public.js +1 -1
- package/dist/esm/models/external-contract-document-item-dto.d.ts +1 -1
- package/dist/esm/models/external-contract-document-item-dto.js +1 -1
- package/dist/esm/models/external-contract-documents-response-dto.d.ts +1 -1
- package/dist/esm/models/external-contract-documents-response-dto.js +1 -1
- package/dist/esm/models/external-contract-item-dto.d.ts +1 -1
- package/dist/esm/models/external-contract-item-dto.js +1 -1
- package/dist/esm/models/external-contract-snapshot-dto.d.ts +1 -1
- package/dist/esm/models/external-contract-snapshot-dto.js +1 -1
- package/dist/esm/models/external-document-inputs-dto.d.ts +1 -1
- package/dist/esm/models/external-document-inputs-dto.js +1 -1
- package/dist/esm/models/file-meta-response-dto.d.ts +1 -1
- package/dist/esm/models/file-meta-response-dto.js +1 -1
- package/dist/esm/models/file-uploaded-response-dto.d.ts +1 -1
- package/dist/esm/models/file-uploaded-response-dto.js +1 -1
- package/dist/esm/models/generated-external-contract-document-dto.d.ts +1 -1
- package/dist/esm/models/generated-external-contract-document-dto.js +1 -1
- package/dist/esm/models/get-bid-settlement200-response.d.ts +1 -1
- package/dist/esm/models/get-bid-settlement200-response.js +1 -1
- package/dist/esm/models/get-bid-statement200-response.d.ts +1 -1
- package/dist/esm/models/get-bid-statement200-response.js +1 -1
- package/dist/esm/models/get-bid200-response.d.ts +1 -1
- package/dist/esm/models/get-bid200-response.js +1 -1
- package/dist/esm/models/get-file-meta200-response.d.ts +1 -1
- package/dist/esm/models/get-file-meta200-response.js +1 -1
- package/dist/esm/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
- package/dist/esm/models/get-supplier-card-payable-v2200-response.js +1 -1
- package/dist/esm/models/get-webhook-endpoint200-response.d.ts +15 -0
- package/dist/esm/models/get-webhook-endpoint200-response.js +14 -0
- package/dist/esm/models/green-product-public.d.ts +1 -1
- package/dist/esm/models/green-product-public.js +1 -1
- package/dist/esm/models/health-controller-check200-response.d.ts +1 -1
- package/dist/esm/models/health-controller-check200-response.js +1 -1
- package/dist/esm/models/health-response-dto.d.ts +1 -1
- package/dist/esm/models/health-response-dto.js +1 -1
- package/dist/esm/models/hierarchical-region-dto.d.ts +1 -1
- package/dist/esm/models/hierarchical-region-dto.js +1 -1
- package/dist/esm/models/index.d.ts +15 -0
- package/dist/esm/models/index.js +15 -0
- package/dist/esm/models/introspect-request-dto.d.ts +1 -1
- package/dist/esm/models/introspect-request-dto.js +1 -1
- package/dist/esm/models/introspection-response-dto.d.ts +1 -1
- package/dist/esm/models/introspection-response-dto.js +1 -1
- package/dist/esm/models/invalid-param-dto.d.ts +1 -1
- package/dist/esm/models/invalid-param-dto.js +1 -1
- package/dist/esm/models/invoice-completed-response-dto.d.ts +1 -1
- package/dist/esm/models/invoice-completed-response-dto.js +1 -1
- package/dist/esm/models/invoice-split-response-dto.d.ts +1 -1
- package/dist/esm/models/invoice-split-response-dto.js +1 -1
- package/dist/esm/models/legal-mandatory-public.d.ts +1 -1
- package/dist/esm/models/legal-mandatory-public.js +1 -1
- package/dist/esm/models/list-bid-results200-response.d.ts +1 -1
- package/dist/esm/models/list-bid-results200-response.js +1 -1
- package/dist/esm/models/list-bids200-response-meta.d.ts +1 -1
- package/dist/esm/models/list-bids200-response-meta.js +1 -1
- package/dist/esm/models/list-bids200-response.d.ts +1 -1
- package/dist/esm/models/list-bids200-response.js +1 -1
- package/dist/esm/models/list-products200-response.d.ts +1 -1
- package/dist/esm/models/list-products200-response.js +1 -1
- package/dist/esm/models/list-webhook-deliveries-response-dto.d.ts +22 -0
- package/dist/esm/models/list-webhook-deliveries-response-dto.js +14 -0
- package/dist/esm/models/list-webhook-deliveries200-response.d.ts +15 -0
- package/dist/esm/models/list-webhook-deliveries200-response.js +14 -0
- package/dist/esm/models/list-webhook-endpoints200-response.d.ts +17 -0
- package/dist/esm/models/list-webhook-endpoints200-response.js +14 -0
- package/dist/esm/models/mark-bid-failed-request-dto.d.ts +1 -1
- package/dist/esm/models/mark-bid-failed-request-dto.js +1 -1
- package/dist/esm/models/mark-bid-failed201-response.d.ts +1 -1
- package/dist/esm/models/mark-bid-failed201-response.js +1 -1
- package/dist/esm/models/negotiation-score-dto.d.ts +1 -1
- package/dist/esm/models/negotiation-score-dto.js +1 -1
- package/dist/esm/models/negotiation-scored-v2-response-dto.d.ts +1 -1
- package/dist/esm/models/negotiation-scored-v2-response-dto.js +1 -1
- package/dist/esm/models/oauth-error-response-dto.d.ts +1 -1
- package/dist/esm/models/oauth-error-response-dto.js +1 -1
- package/dist/esm/models/partner-webhook-delivery-status.d.ts +18 -0
- package/dist/esm/models/partner-webhook-delivery-status.js +19 -0
- package/dist/esm/models/partner-webhook-endpoint-status.d.ts +19 -0
- package/dist/esm/models/partner-webhook-endpoint-status.js +20 -0
- package/dist/esm/models/partner-webhook-event-type.d.ts +22 -0
- package/dist/esm/models/partner-webhook-event-type.js +23 -0
- package/dist/esm/models/payment-method-public.d.ts +1 -1
- package/dist/esm/models/payment-method-public.js +1 -1
- package/dist/esm/models/preconditions-dto.d.ts +1 -1
- package/dist/esm/models/preconditions-dto.js +1 -1
- package/dist/esm/models/problem-details-dto.d.ts +1 -1
- package/dist/esm/models/problem-details-dto.js +1 -1
- package/dist/esm/models/product-receipt-response-dto.d.ts +1 -1
- package/dist/esm/models/product-receipt-response-dto.js +1 -1
- package/dist/esm/models/product-response-dto.d.ts +1 -1
- package/dist/esm/models/product-response-dto.js +1 -1
- package/dist/esm/models/protected-resource-metadata-dto.d.ts +1 -1
- package/dist/esm/models/protected-resource-metadata-dto.js +1 -1
- package/dist/esm/models/register-award-request-dto.d.ts +1 -1
- package/dist/esm/models/register-award-request-dto.js +1 -1
- package/dist/esm/models/register-award201-response.d.ts +1 -1
- package/dist/esm/models/register-award201-response.js +1 -1
- package/dist/esm/models/register-bid201-response.d.ts +1 -1
- package/dist/esm/models/register-bid201-response.js +1 -1
- package/dist/esm/models/register-semo-contract-request-dto.d.ts +1 -1
- package/dist/esm/models/register-semo-contract-request-dto.js +1 -1
- package/dist/esm/models/request-invoice-split-request-dto.d.ts +1 -1
- package/dist/esm/models/request-invoice-split-request-dto.js +1 -1
- package/dist/esm/models/request-invoice-split200-response.d.ts +1 -1
- package/dist/esm/models/request-invoice-split200-response.js +1 -1
- package/dist/esm/models/retiree-roster-input-dto.d.ts +1 -1
- package/dist/esm/models/retiree-roster-input-dto.js +1 -1
- package/dist/esm/models/retiree-roster-row-dto.d.ts +1 -1
- package/dist/esm/models/retiree-roster-row-dto.js +1 -1
- package/dist/esm/models/revert-award-request-dto.d.ts +1 -1
- package/dist/esm/models/revert-award-request-dto.js +1 -1
- package/dist/esm/models/revert-award200-response.d.ts +1 -1
- package/dist/esm/models/revert-award200-response.js +1 -1
- package/dist/esm/models/revoke-request-dto.d.ts +1 -1
- package/dist/esm/models/revoke-request-dto.js +1 -1
- package/dist/esm/models/semo-contract-registered-response-dto.d.ts +1 -1
- package/dist/esm/models/semo-contract-registered-response-dto.js +1 -1
- package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
- package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
- package/dist/esm/models/send-webhook-test-event200-response.d.ts +15 -0
- package/dist/esm/models/send-webhook-test-event200-response.js +14 -0
- package/dist/esm/models/statement-document-dto.d.ts +1 -1
- package/dist/esm/models/statement-document-dto.js +1 -1
- package/dist/esm/models/statement-product-dto.d.ts +1 -1
- package/dist/esm/models/statement-product-dto.js +1 -1
- package/dist/esm/models/submit-negotiation-scores-request-dto.d.ts +1 -1
- package/dist/esm/models/submit-negotiation-scores-request-dto.js +1 -1
- package/dist/esm/models/submit-negotiation-scores201-response.d.ts +1 -1
- package/dist/esm/models/submit-negotiation-scores201-response.js +1 -1
- package/dist/esm/models/supplier-card-payable-response-dto.d.ts +1 -1
- package/dist/esm/models/supplier-card-payable-response-dto.js +1 -1
- package/dist/esm/models/supplier-tax-type.d.ts +1 -1
- package/dist/esm/models/supplier-tax-type.js +1 -1
- package/dist/esm/models/token-request-dto.d.ts +1 -1
- package/dist/esm/models/token-request-dto.js +1 -1
- package/dist/esm/models/token-response-dto.d.ts +1 -1
- package/dist/esm/models/token-response-dto.js +1 -1
- package/dist/esm/models/update-bid-request-dto.d.ts +1 -1
- package/dist/esm/models/update-bid-request-dto.js +1 -1
- package/dist/esm/models/update-bid200-response.d.ts +1 -1
- package/dist/esm/models/update-bid200-response.js +1 -1
- package/dist/esm/models/update-webhook-endpoint-request-dto.d.ts +27 -0
- package/dist/esm/models/update-webhook-endpoint-request-dto.js +14 -0
- package/dist/esm/models/upload-file-request-dto.d.ts +1 -1
- package/dist/esm/models/upload-file-request-dto.js +1 -1
- package/dist/esm/models/upload-file201-response.d.ts +1 -1
- package/dist/esm/models/upload-file201-response.js +1 -1
- package/dist/esm/models/upload-url-created-response-dto.d.ts +1 -1
- package/dist/esm/models/upload-url-created-response-dto.js +1 -1
- package/dist/esm/models/webhook-delivery-dto.d.ts +73 -0
- package/dist/esm/models/webhook-delivery-dto.js +21 -0
- package/dist/esm/models/webhook-endpoint-dto.d.ts +55 -0
- package/dist/esm/models/webhook-endpoint-dto.js +14 -0
- package/dist/esm/models/webhook-endpoint-with-secret-dto.d.ts +59 -0
- package/dist/esm/models/webhook-endpoint-with-secret-dto.js +14 -0
- package/dist/esm/models/webhook-test-result-dto.d.ts +25 -0
- package/dist/esm/models/webhook-test-result-dto.js +14 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/models/acceptance-result-response-dto.d.ts +1 -1
- package/dist/models/acceptance-result-response-dto.js +1 -1
- package/dist/models/acknowledge-product-receipt200-response.d.ts +1 -1
- package/dist/models/acknowledge-product-receipt200-response.js +1 -1
- package/dist/models/acknowledge-products-request-dto.d.ts +1 -1
- package/dist/models/acknowledge-products-request-dto.js +1 -1
- package/dist/models/api-catalog-dto.d.ts +1 -1
- package/dist/models/api-catalog-dto.js +1 -1
- package/dist/models/api-catalog-entry-dto.d.ts +1 -1
- package/dist/models/api-catalog-entry-dto.js +1 -1
- package/dist/models/api-catalog-link-dto.d.ts +1 -1
- package/dist/models/api-catalog-link-dto.js +1 -1
- package/dist/models/authorization-server-metadata-dto.d.ts +1 -1
- package/dist/models/authorization-server-metadata-dto.js +1 -1
- package/dist/models/award-method-public.d.ts +1 -1
- package/dist/models/award-method-public.js +1 -1
- package/dist/models/award-registered-v2-response-dto.d.ts +1 -1
- package/dist/models/award-registered-v2-response-dto.js +1 -1
- package/dist/models/award-reverted-v2-response-dto.d.ts +1 -1
- package/dist/models/award-reverted-v2-response-dto.js +1 -1
- package/dist/models/bid-acceptance-dto.d.ts +1 -1
- package/dist/models/bid-acceptance-dto.js +1 -1
- package/dist/models/bid-attachment-input-dto.d.ts +1 -1
- package/dist/models/bid-attachment-input-dto.js +1 -1
- package/dist/models/bid-bond-dto.d.ts +1 -1
- package/dist/models/bid-bond-dto.js +1 -1
- package/dist/models/bid-cancelled-response-dto.d.ts +1 -1
- package/dist/models/bid-cancelled-response-dto.js +1 -1
- package/dist/models/bid-contact-dto.d.ts +1 -1
- package/dist/models/bid-contact-dto.js +1 -1
- package/dist/models/bid-contacts-dto.d.ts +1 -1
- package/dist/models/bid-contacts-dto.js +1 -1
- package/dist/models/bid-contract-document-dto.d.ts +1 -1
- package/dist/models/bid-contract-document-dto.js +1 -1
- package/dist/models/bid-delivery-terms-dto.d.ts +1 -1
- package/dist/models/bid-delivery-terms-dto.js +1 -1
- package/dist/models/bid-detail-response-dto.d.ts +1 -1
- package/dist/models/bid-detail-response-dto.js +1 -1
- package/dist/models/bid-document-dto.d.ts +1 -1
- package/dist/models/bid-document-dto.js +1 -1
- package/dist/models/bid-failed-v2-response-dto.d.ts +1 -1
- package/dist/models/bid-failed-v2-response-dto.js +1 -1
- package/dist/models/bid-item-dto.d.ts +1 -1
- package/dist/models/bid-item-dto.js +1 -1
- package/dist/models/bid-lifecycle-dto.d.ts +1 -1
- package/dist/models/bid-lifecycle-dto.js +1 -1
- package/dist/models/bid-manager-dto.d.ts +1 -1
- package/dist/models/bid-manager-dto.js +1 -1
- package/dist/models/bid-payment-terms-dto.d.ts +1 -1
- package/dist/models/bid-payment-terms-dto.js +1 -1
- package/dist/models/bid-product-dto.d.ts +1 -1
- package/dist/models/bid-product-dto.js +1 -1
- package/dist/models/bid-public-status.d.ts +1 -1
- package/dist/models/bid-public-status.js +1 -1
- package/dist/models/bid-registered-response-dto.d.ts +1 -1
- package/dist/models/bid-registered-response-dto.js +1 -1
- package/dist/models/bid-result-participant-attachment-dto.d.ts +1 -1
- package/dist/models/bid-result-participant-attachment-dto.js +1 -1
- package/dist/models/bid-result-participant-dto.d.ts +1 -1
- package/dist/models/bid-result-participant-dto.js +1 -1
- package/dist/models/bid-results-response-dto.d.ts +1 -1
- package/dist/models/bid-results-response-dto.js +1 -1
- package/dist/models/bid-settlement-line-item-dto.d.ts +1 -1
- package/dist/models/bid-settlement-line-item-dto.js +1 -1
- package/dist/models/bid-settlement-participant-dto.d.ts +1 -1
- package/dist/models/bid-settlement-participant-dto.js +1 -1
- package/dist/models/bid-settlement-response-dto.d.ts +1 -1
- package/dist/models/bid-settlement-response-dto.js +1 -1
- package/dist/models/bid-statement-response-dto.d.ts +1 -1
- package/dist/models/bid-statement-response-dto.js +1 -1
- package/dist/models/bid-summary-dto.d.ts +1 -1
- package/dist/models/bid-summary-dto.js +1 -1
- package/dist/models/bid-type-public.d.ts +1 -1
- package/dist/models/bid-type-public.js +1 -1
- package/dist/models/bid-updated-response-dto.d.ts +1 -1
- package/dist/models/bid-updated-response-dto.js +1 -1
- package/dist/models/cancel-bid-request-dto.d.ts +1 -1
- package/dist/models/cancel-bid-request-dto.js +1 -1
- package/dist/models/cancel-bid200-response.d.ts +1 -1
- package/dist/models/cancel-bid200-response.js +1 -1
- package/dist/models/card-payment-request-response-dto.d.ts +1 -1
- package/dist/models/card-payment-request-response-dto.js +1 -1
- package/dist/models/complete-acceptance-request-dto.d.ts +1 -1
- package/dist/models/complete-acceptance-request-dto.js +1 -1
- package/dist/models/complete-acceptance200-response.d.ts +1 -1
- package/dist/models/complete-acceptance200-response.js +1 -1
- package/dist/models/complete-invoice200-response.d.ts +1 -1
- package/dist/models/complete-invoice200-response.js +1 -1
- package/dist/models/complete-upload-request-dto.d.ts +1 -1
- package/dist/models/complete-upload-request-dto.js +1 -1
- package/dist/models/contract-restriction-confirm-input-dto.d.ts +1 -1
- package/dist/models/contract-restriction-confirm-input-dto.js +1 -1
- package/dist/models/create-bid-request-dto.d.ts +1 -1
- package/dist/models/create-bid-request-dto.js +1 -1
- package/dist/models/create-card-payment-dto.d.ts +1 -1
- package/dist/models/create-card-payment-dto.js +1 -1
- package/dist/models/create-card-payment-request-dto.d.ts +1 -1
- package/dist/models/create-card-payment-request-dto.js +1 -1
- package/dist/models/create-card-payment200-response.d.ts +1 -1
- package/dist/models/create-card-payment200-response.js +1 -1
- package/dist/models/create-embed-launch201-response.d.ts +1 -1
- package/dist/models/create-embed-launch201-response.js +1 -1
- package/dist/models/create-external-contract-documents-request-dto.d.ts +1 -1
- package/dist/models/create-external-contract-documents-request-dto.js +1 -1
- package/dist/models/create-external-contract-documents-response-dto.d.ts +1 -1
- package/dist/models/create-external-contract-documents-response-dto.js +1 -1
- package/dist/models/create-file-upload-url201-response.d.ts +1 -1
- package/dist/models/create-file-upload-url201-response.js +1 -1
- package/dist/models/create-upload-url-request-dto.d.ts +1 -1
- package/dist/models/create-upload-url-request-dto.js +1 -1
- package/dist/models/create-webhook-endpoint-request-dto.d.ts +22 -0
- package/dist/models/create-webhook-endpoint-request-dto.js +15 -0
- package/dist/models/create-webhook-endpoint201-response.d.ts +15 -0
- package/dist/models/create-webhook-endpoint201-response.js +15 -0
- package/dist/models/delivery-date-type-public.d.ts +1 -1
- package/dist/models/delivery-date-type-public.js +1 -1
- package/dist/models/delivery-method-public.d.ts +1 -1
- package/dist/models/delivery-method-public.js +1 -1
- package/dist/models/embed-launch-request-dto.d.ts +1 -1
- package/dist/models/embed-launch-request-dto.js +1 -1
- package/dist/models/embed-launch-response-dto.d.ts +6 -2
- package/dist/models/embed-launch-response-dto.js +1 -1
- package/dist/models/excellent-procurement-public.d.ts +1 -1
- package/dist/models/excellent-procurement-public.js +1 -1
- package/dist/models/external-contract-document-item-dto.d.ts +1 -1
- package/dist/models/external-contract-document-item-dto.js +1 -1
- package/dist/models/external-contract-documents-response-dto.d.ts +1 -1
- package/dist/models/external-contract-documents-response-dto.js +1 -1
- package/dist/models/external-contract-item-dto.d.ts +1 -1
- package/dist/models/external-contract-item-dto.js +1 -1
- package/dist/models/external-contract-snapshot-dto.d.ts +1 -1
- package/dist/models/external-contract-snapshot-dto.js +1 -1
- package/dist/models/external-document-inputs-dto.d.ts +1 -1
- package/dist/models/external-document-inputs-dto.js +1 -1
- package/dist/models/file-meta-response-dto.d.ts +1 -1
- package/dist/models/file-meta-response-dto.js +1 -1
- package/dist/models/file-uploaded-response-dto.d.ts +1 -1
- package/dist/models/file-uploaded-response-dto.js +1 -1
- package/dist/models/generated-external-contract-document-dto.d.ts +1 -1
- package/dist/models/generated-external-contract-document-dto.js +1 -1
- package/dist/models/get-bid-settlement200-response.d.ts +1 -1
- package/dist/models/get-bid-settlement200-response.js +1 -1
- package/dist/models/get-bid-statement200-response.d.ts +1 -1
- package/dist/models/get-bid-statement200-response.js +1 -1
- package/dist/models/get-bid200-response.d.ts +1 -1
- package/dist/models/get-bid200-response.js +1 -1
- package/dist/models/get-file-meta200-response.d.ts +1 -1
- package/dist/models/get-file-meta200-response.js +1 -1
- package/dist/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
- package/dist/models/get-supplier-card-payable-v2200-response.js +1 -1
- package/dist/models/get-webhook-endpoint200-response.d.ts +15 -0
- package/dist/models/get-webhook-endpoint200-response.js +15 -0
- package/dist/models/green-product-public.d.ts +1 -1
- package/dist/models/green-product-public.js +1 -1
- package/dist/models/health-controller-check200-response.d.ts +1 -1
- package/dist/models/health-controller-check200-response.js +1 -1
- package/dist/models/health-response-dto.d.ts +1 -1
- package/dist/models/health-response-dto.js +1 -1
- package/dist/models/hierarchical-region-dto.d.ts +1 -1
- package/dist/models/hierarchical-region-dto.js +1 -1
- package/dist/models/index.d.ts +15 -0
- package/dist/models/index.js +15 -0
- package/dist/models/introspect-request-dto.d.ts +1 -1
- package/dist/models/introspect-request-dto.js +1 -1
- package/dist/models/introspection-response-dto.d.ts +1 -1
- package/dist/models/introspection-response-dto.js +1 -1
- package/dist/models/invalid-param-dto.d.ts +1 -1
- package/dist/models/invalid-param-dto.js +1 -1
- package/dist/models/invoice-completed-response-dto.d.ts +1 -1
- package/dist/models/invoice-completed-response-dto.js +1 -1
- package/dist/models/invoice-split-response-dto.d.ts +1 -1
- package/dist/models/invoice-split-response-dto.js +1 -1
- package/dist/models/legal-mandatory-public.d.ts +1 -1
- package/dist/models/legal-mandatory-public.js +1 -1
- package/dist/models/list-bid-results200-response.d.ts +1 -1
- package/dist/models/list-bid-results200-response.js +1 -1
- package/dist/models/list-bids200-response-meta.d.ts +1 -1
- package/dist/models/list-bids200-response-meta.js +1 -1
- package/dist/models/list-bids200-response.d.ts +1 -1
- package/dist/models/list-bids200-response.js +1 -1
- package/dist/models/list-products200-response.d.ts +1 -1
- package/dist/models/list-products200-response.js +1 -1
- package/dist/models/list-webhook-deliveries-response-dto.d.ts +22 -0
- package/dist/models/list-webhook-deliveries-response-dto.js +15 -0
- package/dist/models/list-webhook-deliveries200-response.d.ts +15 -0
- package/dist/models/list-webhook-deliveries200-response.js +15 -0
- package/dist/models/list-webhook-endpoints200-response.d.ts +17 -0
- package/dist/models/list-webhook-endpoints200-response.js +15 -0
- package/dist/models/mark-bid-failed-request-dto.d.ts +1 -1
- package/dist/models/mark-bid-failed-request-dto.js +1 -1
- package/dist/models/mark-bid-failed201-response.d.ts +1 -1
- package/dist/models/mark-bid-failed201-response.js +1 -1
- package/dist/models/negotiation-score-dto.d.ts +1 -1
- package/dist/models/negotiation-score-dto.js +1 -1
- package/dist/models/negotiation-scored-v2-response-dto.d.ts +1 -1
- package/dist/models/negotiation-scored-v2-response-dto.js +1 -1
- package/dist/models/oauth-error-response-dto.d.ts +1 -1
- package/dist/models/oauth-error-response-dto.js +1 -1
- package/dist/models/partner-webhook-delivery-status.d.ts +18 -0
- package/dist/models/partner-webhook-delivery-status.js +22 -0
- package/dist/models/partner-webhook-endpoint-status.d.ts +19 -0
- package/dist/models/partner-webhook-endpoint-status.js +23 -0
- package/dist/models/partner-webhook-event-type.d.ts +22 -0
- package/dist/models/partner-webhook-event-type.js +26 -0
- package/dist/models/payment-method-public.d.ts +1 -1
- package/dist/models/payment-method-public.js +1 -1
- package/dist/models/preconditions-dto.d.ts +1 -1
- package/dist/models/preconditions-dto.js +1 -1
- package/dist/models/problem-details-dto.d.ts +1 -1
- package/dist/models/problem-details-dto.js +1 -1
- package/dist/models/product-receipt-response-dto.d.ts +1 -1
- package/dist/models/product-receipt-response-dto.js +1 -1
- package/dist/models/product-response-dto.d.ts +1 -1
- package/dist/models/product-response-dto.js +1 -1
- package/dist/models/protected-resource-metadata-dto.d.ts +1 -1
- package/dist/models/protected-resource-metadata-dto.js +1 -1
- package/dist/models/register-award-request-dto.d.ts +1 -1
- package/dist/models/register-award-request-dto.js +1 -1
- package/dist/models/register-award201-response.d.ts +1 -1
- package/dist/models/register-award201-response.js +1 -1
- package/dist/models/register-bid201-response.d.ts +1 -1
- package/dist/models/register-bid201-response.js +1 -1
- package/dist/models/register-semo-contract-request-dto.d.ts +1 -1
- package/dist/models/register-semo-contract-request-dto.js +1 -1
- package/dist/models/request-invoice-split-request-dto.d.ts +1 -1
- package/dist/models/request-invoice-split-request-dto.js +1 -1
- package/dist/models/request-invoice-split200-response.d.ts +1 -1
- package/dist/models/request-invoice-split200-response.js +1 -1
- package/dist/models/retiree-roster-input-dto.d.ts +1 -1
- package/dist/models/retiree-roster-input-dto.js +1 -1
- package/dist/models/retiree-roster-row-dto.d.ts +1 -1
- package/dist/models/retiree-roster-row-dto.js +1 -1
- package/dist/models/revert-award-request-dto.d.ts +1 -1
- package/dist/models/revert-award-request-dto.js +1 -1
- package/dist/models/revert-award200-response.d.ts +1 -1
- package/dist/models/revert-award200-response.js +1 -1
- package/dist/models/revoke-request-dto.d.ts +1 -1
- package/dist/models/revoke-request-dto.js +1 -1
- package/dist/models/semo-contract-registered-response-dto.d.ts +1 -1
- package/dist/models/semo-contract-registered-response-dto.js +1 -1
- package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
- package/dist/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
- package/dist/models/send-webhook-test-event200-response.d.ts +15 -0
- package/dist/models/send-webhook-test-event200-response.js +15 -0
- package/dist/models/statement-document-dto.d.ts +1 -1
- package/dist/models/statement-document-dto.js +1 -1
- package/dist/models/statement-product-dto.d.ts +1 -1
- package/dist/models/statement-product-dto.js +1 -1
- package/dist/models/submit-negotiation-scores-request-dto.d.ts +1 -1
- package/dist/models/submit-negotiation-scores-request-dto.js +1 -1
- package/dist/models/submit-negotiation-scores201-response.d.ts +1 -1
- package/dist/models/submit-negotiation-scores201-response.js +1 -1
- package/dist/models/supplier-card-payable-response-dto.d.ts +1 -1
- package/dist/models/supplier-card-payable-response-dto.js +1 -1
- package/dist/models/supplier-tax-type.d.ts +1 -1
- package/dist/models/supplier-tax-type.js +1 -1
- package/dist/models/token-request-dto.d.ts +1 -1
- package/dist/models/token-request-dto.js +1 -1
- package/dist/models/token-response-dto.d.ts +1 -1
- package/dist/models/token-response-dto.js +1 -1
- package/dist/models/update-bid-request-dto.d.ts +1 -1
- package/dist/models/update-bid-request-dto.js +1 -1
- package/dist/models/update-bid200-response.d.ts +1 -1
- package/dist/models/update-bid200-response.js +1 -1
- package/dist/models/update-webhook-endpoint-request-dto.d.ts +27 -0
- package/dist/models/update-webhook-endpoint-request-dto.js +15 -0
- package/dist/models/upload-file-request-dto.d.ts +1 -1
- package/dist/models/upload-file-request-dto.js +1 -1
- package/dist/models/upload-file201-response.d.ts +1 -1
- package/dist/models/upload-file201-response.js +1 -1
- package/dist/models/upload-url-created-response-dto.d.ts +1 -1
- package/dist/models/upload-url-created-response-dto.js +1 -1
- package/dist/models/webhook-delivery-dto.d.ts +73 -0
- package/dist/models/webhook-delivery-dto.js +24 -0
- package/dist/models/webhook-endpoint-dto.d.ts +55 -0
- package/dist/models/webhook-endpoint-dto.js +15 -0
- package/dist/models/webhook-endpoint-with-secret-dto.d.ts +59 -0
- package/dist/models/webhook-endpoint-with-secret-dto.js +15 -0
- package/dist/models/webhook-test-result-dto.d.ts +25 -0
- package/dist/models/webhook-test-result-dto.js +15 -0
- package/docs/CreateWebhookEndpoint201Response.md +20 -0
- package/docs/CreateWebhookEndpointRequestDto.md +22 -0
- package/docs/EmbedApi.md +2 -2
- package/docs/EmbedLaunchResponseDto.md +3 -1
- package/docs/GetWebhookEndpoint200Response.md +20 -0
- package/docs/ListWebhookDeliveries200Response.md +20 -0
- package/docs/ListWebhookDeliveriesResponseDto.md +22 -0
- package/docs/ListWebhookEndpoints200Response.md +22 -0
- package/docs/PartnerApiApi.md +517 -0
- package/docs/PartnerWebhookDeliveryStatus.md +14 -0
- package/docs/PartnerWebhookEndpointStatus.md +11 -0
- package/docs/PartnerWebhookEventType.md +17 -0
- package/docs/SendWebhookTestEvent200Response.md +20 -0
- package/docs/UpdateWebhookEndpointRequestDto.md +24 -0
- package/docs/WebhookDeliveryDto.md +42 -0
- package/docs/WebhookEndpointDto.md +38 -0
- package/docs/WebhookEndpointWithSecretDto.md +40 -0
- package/docs/WebhookTestResultDto.md +24 -0
- package/index.ts +1 -1
- package/models/acceptance-result-response-dto.ts +1 -1
- package/models/acknowledge-product-receipt200-response.ts +1 -1
- package/models/acknowledge-products-request-dto.ts +1 -1
- package/models/api-catalog-dto.ts +1 -1
- package/models/api-catalog-entry-dto.ts +1 -1
- package/models/api-catalog-link-dto.ts +1 -1
- package/models/authorization-server-metadata-dto.ts +1 -1
- package/models/award-method-public.ts +1 -1
- package/models/award-registered-v2-response-dto.ts +1 -1
- package/models/award-reverted-v2-response-dto.ts +1 -1
- package/models/bid-acceptance-dto.ts +1 -1
- package/models/bid-attachment-input-dto.ts +1 -1
- package/models/bid-bond-dto.ts +1 -1
- package/models/bid-cancelled-response-dto.ts +1 -1
- package/models/bid-contact-dto.ts +1 -1
- package/models/bid-contacts-dto.ts +1 -1
- package/models/bid-contract-document-dto.ts +1 -1
- package/models/bid-delivery-terms-dto.ts +1 -1
- package/models/bid-detail-response-dto.ts +1 -1
- package/models/bid-document-dto.ts +1 -1
- package/models/bid-failed-v2-response-dto.ts +1 -1
- package/models/bid-item-dto.ts +1 -1
- package/models/bid-lifecycle-dto.ts +1 -1
- package/models/bid-manager-dto.ts +1 -1
- package/models/bid-payment-terms-dto.ts +1 -1
- package/models/bid-product-dto.ts +1 -1
- package/models/bid-public-status.ts +1 -1
- package/models/bid-registered-response-dto.ts +1 -1
- package/models/bid-result-participant-attachment-dto.ts +1 -1
- package/models/bid-result-participant-dto.ts +1 -1
- package/models/bid-results-response-dto.ts +1 -1
- package/models/bid-settlement-line-item-dto.ts +1 -1
- package/models/bid-settlement-participant-dto.ts +1 -1
- package/models/bid-settlement-response-dto.ts +1 -1
- package/models/bid-statement-response-dto.ts +1 -1
- package/models/bid-summary-dto.ts +1 -1
- package/models/bid-type-public.ts +1 -1
- package/models/bid-updated-response-dto.ts +1 -1
- package/models/cancel-bid-request-dto.ts +1 -1
- package/models/cancel-bid200-response.ts +1 -1
- package/models/card-payment-request-response-dto.ts +1 -1
- package/models/complete-acceptance-request-dto.ts +1 -1
- package/models/complete-acceptance200-response.ts +1 -1
- package/models/complete-invoice200-response.ts +1 -1
- package/models/complete-upload-request-dto.ts +1 -1
- package/models/contract-restriction-confirm-input-dto.ts +1 -1
- package/models/create-bid-request-dto.ts +1 -1
- package/models/create-card-payment-dto.ts +1 -1
- package/models/create-card-payment-request-dto.ts +1 -1
- package/models/create-card-payment200-response.ts +1 -1
- package/models/create-embed-launch201-response.ts +1 -1
- package/models/create-external-contract-documents-request-dto.ts +1 -1
- package/models/create-external-contract-documents-response-dto.ts +1 -1
- package/models/create-file-upload-url201-response.ts +1 -1
- package/models/create-upload-url-request-dto.ts +1 -1
- package/models/create-webhook-endpoint-request-dto.ts +30 -0
- package/models/create-webhook-endpoint201-response.ts +23 -0
- package/models/delivery-date-type-public.ts +1 -1
- package/models/delivery-method-public.ts +1 -1
- package/models/embed-launch-request-dto.ts +1 -1
- package/models/embed-launch-response-dto.ts +6 -2
- package/models/excellent-procurement-public.ts +1 -1
- package/models/external-contract-document-item-dto.ts +1 -1
- package/models/external-contract-documents-response-dto.ts +1 -1
- package/models/external-contract-item-dto.ts +1 -1
- package/models/external-contract-snapshot-dto.ts +1 -1
- package/models/external-document-inputs-dto.ts +1 -1
- package/models/file-meta-response-dto.ts +1 -1
- package/models/file-uploaded-response-dto.ts +1 -1
- package/models/generated-external-contract-document-dto.ts +1 -1
- package/models/get-bid-settlement200-response.ts +1 -1
- package/models/get-bid-statement200-response.ts +1 -1
- package/models/get-bid200-response.ts +1 -1
- package/models/get-file-meta200-response.ts +1 -1
- package/models/get-supplier-card-payable-v2200-response.ts +1 -1
- package/models/get-webhook-endpoint200-response.ts +23 -0
- package/models/green-product-public.ts +1 -1
- package/models/health-controller-check200-response.ts +1 -1
- package/models/health-response-dto.ts +1 -1
- package/models/hierarchical-region-dto.ts +1 -1
- package/models/index.ts +15 -0
- package/models/introspect-request-dto.ts +1 -1
- package/models/introspection-response-dto.ts +1 -1
- package/models/invalid-param-dto.ts +1 -1
- package/models/invoice-completed-response-dto.ts +1 -1
- package/models/invoice-split-response-dto.ts +1 -1
- package/models/legal-mandatory-public.ts +1 -1
- package/models/list-bid-results200-response.ts +1 -1
- package/models/list-bids200-response-meta.ts +1 -1
- package/models/list-bids200-response.ts +1 -1
- package/models/list-products200-response.ts +1 -1
- package/models/list-webhook-deliveries-response-dto.ts +30 -0
- package/models/list-webhook-deliveries200-response.ts +23 -0
- package/models/list-webhook-endpoints200-response.ts +27 -0
- package/models/mark-bid-failed-request-dto.ts +1 -1
- package/models/mark-bid-failed201-response.ts +1 -1
- package/models/negotiation-score-dto.ts +1 -1
- package/models/negotiation-scored-v2-response-dto.ts +1 -1
- package/models/oauth-error-response-dto.ts +1 -1
- package/models/partner-webhook-delivery-status.ts +28 -0
- package/models/partner-webhook-endpoint-status.ts +29 -0
- package/models/partner-webhook-event-type.ts +32 -0
- package/models/payment-method-public.ts +1 -1
- package/models/preconditions-dto.ts +1 -1
- package/models/problem-details-dto.ts +1 -1
- package/models/product-receipt-response-dto.ts +1 -1
- package/models/product-response-dto.ts +1 -1
- package/models/protected-resource-metadata-dto.ts +1 -1
- package/models/register-award-request-dto.ts +1 -1
- package/models/register-award201-response.ts +1 -1
- package/models/register-bid201-response.ts +1 -1
- package/models/register-semo-contract-request-dto.ts +1 -1
- package/models/request-invoice-split-request-dto.ts +1 -1
- package/models/request-invoice-split200-response.ts +1 -1
- package/models/retiree-roster-input-dto.ts +1 -1
- package/models/retiree-roster-row-dto.ts +1 -1
- package/models/revert-award-request-dto.ts +1 -1
- package/models/revert-award200-response.ts +1 -1
- package/models/revoke-request-dto.ts +1 -1
- package/models/semo-contract-registered-response-dto.ts +1 -1
- package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
- package/models/send-webhook-test-event200-response.ts +23 -0
- package/models/statement-document-dto.ts +1 -1
- package/models/statement-product-dto.ts +1 -1
- package/models/submit-negotiation-scores-request-dto.ts +1 -1
- package/models/submit-negotiation-scores201-response.ts +1 -1
- package/models/supplier-card-payable-response-dto.ts +1 -1
- package/models/supplier-tax-type.ts +1 -1
- package/models/token-request-dto.ts +1 -1
- package/models/token-response-dto.ts +1 -1
- package/models/update-bid-request-dto.ts +1 -1
- package/models/update-bid200-response.ts +1 -1
- package/models/update-webhook-endpoint-request-dto.ts +39 -0
- package/models/upload-file-request-dto.ts +1 -1
- package/models/upload-file201-response.ts +1 -1
- package/models/upload-url-created-response-dto.ts +1 -1
- package/models/webhook-delivery-dto.ts +82 -0
- package/models/webhook-endpoint-dto.ts +67 -0
- package/models/webhook-endpoint-with-secret-dto.ts +71 -0
- package/models/webhook-test-result-dto.ts +31 -0
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* CMARKET V6 Partner API
|
|
6
6
|
* ์ธ๋ถ ERP ์ฐ๋์ฉ RESTful API. ## ์ธ์ฆ OAuth2 Bearer JWT (`client_credentials` ํ๋ก์ฐ). `/oauth/token` ์์ ํ ํฐ์ ๋ฐ๊ธ๋ฐ์ `Authorization: Bearer <token>` ํค๋๋ก ์ค์ผ์ธ์. ## ๊ถํ โ ๋ ๊ฐ์ ๋
๋ฆฝ๋ ์ถ `403` ์ ๋ง๋ฌ๋ค๋ฉด ๋ ์ค ์ด๋ ์ถ์ ๊ฑธ๋ฆฐ ๊ฒ์ธ์ง ๋จผ์ ๊ตฌ๋ถํ์ธ์. - **์ค์ฝํ** = *๋ฌด์์ ํ ์ ์๋*. ํ ํฐ์ ๋ถ์ฌ๋ `bids:read`ยท`contracts:write` ๋ฑ์
๋๋ค. ๋ฏธ๋ณด์ ์ `โฆ/insufficient-scope`. - **๋ํ ๋ฒ์** = *๋๊ตฌ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์๋*. API ํค ์ค์ ์ด๋ฉฐ ์ค์ฝํ๋ก ํํ๋์ง ์์ต๋๋ค. ๋ฒ์ ๋ฐ์ด๋ฉด ์ค์ฝํ์ ๋ฌด๊ดํ๊ฒ 403 ์
๋๋ค. ๋ํ ๋ฒ์๋ ํค๋ง๋ค ๋ ์ค ํ๋๋ก ์ค์ ๋ฉ๋๋ค โ **์์ ๊ทธ๋ฃน ์ ์**(๊ธฐ๊ด ํค. ์ฌ์
์ฒยท๋ถ์ ๊ณ์ ์ด ์๋ก ์๊ฒจ๋ ์๋ ํฌํจ) ๋๋ **์ง์ ๋ฐ์ฃผ์ฒ ๋ชฉ๋ก**(๊ณ์ฝ์ผ๋ก ํฉ์๋ ๋ชฉ๋ก). ๋ฒ์๋ฅผ ๋ํ์ผ ํ๋ฉด ์ค์ฝํ๊ฐ ์๋๋ผ ํค ์ค์ ๋ณ๊ฒฝ์ ์์ฒญํ์ธ์. ## ์ฑ๊ณต ์๋ต ๋ดํฌ `/v2` ์ ๋ชจ๋ 2xx ๋ณธ๋ฌธ์ `{ \"data\": โฆ }` ์
๋๋ค. ๋จ์ผ ๋ฆฌ์์ค๋ ๋ชฉ๋ก์ด๋ ๊ฐ์ต๋๋ค. **๋ชฉ๋ก์ `data` ๊ฐ ๋ฐฐ์ด์ด๊ณ `meta` ๊ฐ ํญ์ ํจ๊ป ์ค๋ฆฝ๋๋ค** โ `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. ๋จ์ผ ๋ฆฌ์์ค ์๋ต์๋ `meta` ๊ฐ ๋๊ฐ์ง ์์ต๋๋ค. ๋ดํฌ๋ฅผ ์ฐ์ง ์๋ ํ๋ฉด์ ๋์
๋๋ค. `/oauth/_*` ์ `/.well-known/_*` ๋ ๊ฐ๊ฐ RFC 6749ยทRFC 8414ยทRFC 9728 ์ด ์ต์์ ํ๋๋ฅผ ๊ท์ ํ๊ณ , ํ์ผ ๋ด์ฉ ์๋ต์ ๋ณธ๋ฌธ์ด JSON ์ด ์๋๋๋ค. ์๋ฌ ์๋ต์๋ ๋ดํฌ๋ฅผ ์์ฐ์ง ์์ต๋๋ค โ ์๋ problem+json ์ด ๋จ๋
์ผ๋ก ์ฑ
์์ง๋๋ค. ## ์กฐ๊ฑด๋ถ ์์ฒญ (ETag) `/v2` ์ ๋ชจ๋ `GET` ์๋ต์ weak `ETag`(`W/\"โฆ\"`)๊ฐ ์ค๋ฆฝ๋๋ค. ๋ฐ์ ๊ฐ์ ๋ค์ ์์ฒญ์ `If-None-Match` ํค๋๋ก ๋๋ณด๋ด๋ฉด, ๋ด์ฉ์ด ๊ทธ๋๋ก์ผ ๋ `304 Not Modified` ๋ฅผ ๋ณธ๋ฌธ ์์ด ๋ฐ์ต๋๋ค. ๊ฒฐ๊ณผ๊ฐ ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๊ฐ์ ์์์ ๋ฐ๋ณต ์กฐํํ๋ ์ฐ๋์ด๋ผ๋ฉด ์ด ํค๋ ํ๋๋ก ์ ์ก๋์ด ์ฌ๋ผ์ง๋๋ค. ## ์๋ฌ (RFC 9457 problem+json) ๋ชจ๋ ์๋ฌ ์๋ต์ `application/problem+json` ์
๋๋ค. **HTTP status + `type` URI** ๋ก ๋ถ๊ธฐํ์ธ์. - `retryable`(boolean): ์๋ ์ฌ์๋ ์์ ์ฌ๋ถ. `true`(429ยท5xx transient)๋ฉด backoff ํ ์ฌ์๋ํ๊ณ , `false`๋ฉด ์์ฒญ์ ๊ณ ์ณ์ผ ํฉ๋๋ค. - `traceId`: ์์ฒญ ์ถ์ id. `X-Correlation-Id` ์๋ต ํค๋์ ๊ฐ์ ๊ฐ์
๋๋ค โ ๋ฌธ์ํ ๋ ์ด ๊ฐ์ ์ฒจ๋ถํ์ธ์. - `correlationId`: `traceId` ์ ๊ฐ์ ๊ฐ์ ์ ์ด๋ฆ. ๊ธฐ์กด ์ฐ๋ ํธํ์ผ๋ก ํจ๊ป ์ค๋ฆฝ๋๋ค. ์ ์ฐ๋์ `traceId` ๋ฅผ ์ฝ์ผ์ธ์. - `invalid-params`: ๊ฒ์ฆ ์คํจ(400 `โฆ/validation-failed`) ์ ์๋ฐ ํ๋ ๊ฒฝ๋ก ๋ชฉ๋ก(RFC 9457 ํ์ฅ, ๊ฐ ์์). `type` ์ `https://problems.cmarket.io/partner/<slug>` ํํ์ **์์ ์๋ณ์**์
๋๋ค. RFC 9457 ยง3.1.1 ์ด ํ์ฉํ๋ ๋๋ก ์ด URI ๋ **์ญ์ฐธ์กฐ(dereference)๋์ง ์์ต๋๋ค** โ ๋ธ๋ผ์ฐ์ ๋ก ์ด์ง ๋ง๊ณ ๋ฌธ์์ด ๋น๊ต๋ก๋ง ์ฐ์ธ์. slug ๋ชฉ๋ก๊ณผ ์๋ฏธ๋ ๊ฐ ์๋ํฌ์ธํธ์ ์๋ต ์ค๋ช
์ status ๋ณ๋ก ์ ํ ์์ต๋๋ค. ### ๋ฉฑ๋ฑ์ฑ ์๋ฐ: 409 ์ 422 ์ ์ฐจ์ด - `409` `โฆ/idempotency-key-conflict` โ ๊ฐ์ ํค์ **์ ์์ฒญ์ด ์์ง ์ฒ๋ฆฌ ์ค**์
๋๋ค. ์ ์ ๋ค ๊ฐ์ ํค๋ก ๋ค์ ๋ถ๋ฅด๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ต๋๋ค. - `422` `โฆ/idempotency-key-reused` โ ๊ฐ์ ํค๋ฅผ **๋ค๋ฅธ body** ๋ก ๋ณด๋์ต๋๋ค. ์ฌ์๋ํด๋ ์์ํ ๊ฐ์ ์คํจ์ด๋ ์ ํค๋ฅผ ์ฐ๊ฑฐ๋ body ๋ฅผ ๋๋๋ฆฌ์ธ์. ## Rate Limit ์ ์ญ **60 ์์ฒญ/๋ถ per `client_id`**, ํ ํฐ ๋ฐ๊ธ(`/oauth/token`)์ **5 ์์ฒญ/๋ถ** ์
๋๋ค. ์ด๊ณผ ์ `429`(`type: โฆ/too-many-requests`). ์ฟผํฐ๋ ๋ ๊ฐ์ง ํ๊ธฐ๋ก ํจ๊ป ๋๊ฐ๋๋ค โ ์ ๊ท ์ฐ๋์ ํ์ค ํ๋๋ฅผ ์ฐ์ธ์. - **ํ์ค**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (์ ์ฑ
) ยท `RateLimit: \"default\";r=59;t=42` (์๋ r, ๋ฆฌ์
๊น์ง t ์ด) - **๋ ๊ฑฐ์**(๊ด์ฉ): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. ๊ธฐ์กด ์ฐ๋ ํธํ์ ์ํด ์ ์งํฉ๋๋ค. `429` ์์๋ `Retry-After`(์ด)๊ฐ ์ฐ์ ํฉ๋๋ค. ๋๋ ๋๊ธฐํ(ํ๋ชฉ ๋จ์ ๋ฐ๋ณต ๋ฑ๋ก ๋ฑ)๋ `Retry-After` ๋งํผ backoff ํ ์ฌ์๋ํ์ธ์. ## ์ถ์ ์์ฒญ์ `X-Correlation-Id` ํค๋๋ฅผ ์ค์ผ๋ฉด ๊ทธ๋๋ก echo ๋๊ณ , ์์ผ๋ฉด ์๋ฒ๊ฐ ๋ฐ๊ธํฉ๋๋ค. ๋ชจ๋ ์๋ต(์ฑ๊ณต/์๋ฌ)์ `X-Correlation-Id` ๊ฐ ์ค๋ฆฝ๋๋ค. ## ์ ๋ฐฉํธํ โ ๋ชจ๋ฅด๋ ํ๋์ ๊ฐ์์ ๊นจ์ง์ง ์๊ฒ ๋ค์ ์
์ breaking ๋ณ๊ฒฝ์ผ๋ก ๋ณด์ง ์์ผ๋ฉฐ minor ๋ฆด๋ฆฌ์ค์์ ์๊ณ ์์ด ์ผ์ด๋ฉ๋๋ค. ์ด ์ ์ ๋ก ๊ตฌํํ์ธ์. - **์ ํ ํ๋ ์ถ๊ฐ**: ๋ชจ๋ฅด๋ ํ๋๋ ๋ฌด์ํ์ธ์. ์๊ฒฉ ํ์(unknown key ๊ฑฐ๋ถ)๋ฅผ ์ฐ์ง ๋ง์ธ์. - **enum ๊ฐ ์ถ๊ฐ**: ์ํยท๋์ฐฐ๋ฐฉ๋ฒ ๋ฑ์ ์ ๊ฐ์ด ์๊น๋๋ค. ๋ชจ๋ฅด๋ ๊ฐ์ ๋ง๋๋ฉด ์์ธ๋ฅผ ๋์ง์ง ๋ง๊ณ ์๋ฌธ ๋ฌธ์์ด์ ๋ณด์กดํ์ธ์. - **problem `type` slug ์ถ๊ฐ**: ๋ชจ๋ฅด๋ slug ์ **HTTP status ๋ก ํด๋ฐฑ**ํด ๋ถ๊ธฐํ์ธ์. ## ๋ฒ์ ์๋ช
(deprecation/sunset) - **_/v2** breaking ๋ณ๊ฒฝ์ CHANGELOG SemVer(major bump)์ `Deprecation`/`Sunset` ํค๋๋ก ํต์งํฉ๋๋ค. ์ด ํค๋๋ฅผ ๋ชจ๋ํฐ๋งํ์ธ์.
|
|
7
7
|
*
|
|
8
|
-
* The version of the OpenAPI document: 38.
|
|
8
|
+
* The version of the OpenAPI document: 38.2.0
|
|
9
9
|
* Contact: semo.io.kr@gmail.com
|
|
10
10
|
*
|
|
11
11
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -325,6 +325,91 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
325
325
|
options: localVarRequestOptions,
|
|
326
326
|
};
|
|
327
327
|
}),
|
|
328
|
+
/**
|
|
329
|
+
* ์์ ์ฃผ์์ ๊ตฌ๋
ํ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ด๊ธฐ 1ํ. ์์ ์ฃผ์๊ฐ ๋ฐ๋๋ฉด ์๋ก ๋ง๋ค์ง ๋ง๊ณ `PATCH` ๋ก ๊ณ ์น์ธ์ โ ๊ทธ๋์ผ ์ํฌ๋ฆฟ๊ณผ ์ ์ก ์ด๋ ฅ์ด ์ ์ง๋ฉ๋๋ค. **์๋ช
์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์๋ฒ๋ ํด์๋ง ๋ณด๊ดํ๋ฏ๋ก ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. ์๋ต์ `secret` ์ ์ฆ์ ์์ ํ ๊ณณ์ ๋ณด๊ดํ์ธ์. ์์ด๋ฒ๋ ธ๋ค๋ฉด ๋ณต๊ตฌ๊ฐ ์๋๋ผ `POST /v2/webhook-endpoints/{endpointId}/rotate-secret` ์ผ๋ก **์ฌ๋ฐ๊ธ**ํด์ผ ํฉ๋๋ค. **๊ฑฐ์ ๋๋ ๊ฒฝ์ฐ์ ๊ณ ์น๋ ๋ฒ:** - `400` โ `url` ์ด HTTPS ๊ฐ ์๋๊ฑฐ๋ ํ์์ด ์๋ชป๋จ, `eventTypes` ๊ฐ ๋น์๊ฑฐ๋ ๋ชฉ๋ก ๋ฐ ๊ฐ (`ping` ์ ๊ตฌ๋
๋ถ๊ฐ). ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. - `400` โ `Idempotency-Key` ํค๋ ๋๋ฝ/ํ์ ์ค๋ฅ. UUID v4 ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `403` โ ํ ํฐ์ `webhooks:write` ์ค์ฝํ๊ฐ ์์. ํค ๋ฐ๊ธ ์ค์ ์ ๋ํ์ผ ํฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
330
|
+
* @summary ์นํ
๊ตฌ๋
๋ฑ๋ก
|
|
331
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
332
|
+
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
333
|
+
* @param {*} [options] Override http request option.
|
|
334
|
+
* @throws {RequiredError}
|
|
335
|
+
*/
|
|
336
|
+
createWebhookEndpoint: (idempotencyKey_1, createWebhookEndpointRequestDto_1, ...args_1) => __awaiter(this, [idempotencyKey_1, createWebhookEndpointRequestDto_1, ...args_1], void 0, function* (idempotencyKey, createWebhookEndpointRequestDto, options = {}) {
|
|
337
|
+
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
338
|
+
(0, common_1.assertParamExists)('createWebhookEndpoint', 'idempotencyKey', idempotencyKey);
|
|
339
|
+
// verify required parameter 'createWebhookEndpointRequestDto' is not null or undefined
|
|
340
|
+
(0, common_1.assertParamExists)('createWebhookEndpoint', 'createWebhookEndpointRequestDto', createWebhookEndpointRequestDto);
|
|
341
|
+
const localVarPath = `/v2/webhook-endpoints`;
|
|
342
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
343
|
+
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
344
|
+
let baseOptions;
|
|
345
|
+
if (configuration) {
|
|
346
|
+
baseOptions = configuration.baseOptions;
|
|
347
|
+
}
|
|
348
|
+
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
349
|
+
const localVarHeaderParameter = {};
|
|
350
|
+
const localVarQueryParameter = {};
|
|
351
|
+
// authentication partner-oauth2 required
|
|
352
|
+
// oauth required
|
|
353
|
+
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration);
|
|
354
|
+
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
355
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
356
|
+
if (idempotencyKey != null) {
|
|
357
|
+
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
358
|
+
}
|
|
359
|
+
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
360
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
361
|
+
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
362
|
+
localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createWebhookEndpointRequestDto, localVarRequestOptions, configuration);
|
|
363
|
+
return {
|
|
364
|
+
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
365
|
+
options: localVarRequestOptions,
|
|
366
|
+
};
|
|
367
|
+
}),
|
|
368
|
+
/**
|
|
369
|
+
* ๊ตฌ๋
์ ์ญ์ ํฉ๋๋ค. ์ดํ ๊ทธ ์ฃผ์๋ก๋ ์๋ฌด ์ด๋ฒคํธ๋ ๋ฐ์ก๋์ง ์์ต๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋์ ์ข
๋ฃํ ๋. ์ ์๋ง ๋ฉ์ถ๋ ค๋ฉด ์ญ์ ํ์ง ๋ง๊ณ `PATCH โฆ {\"status\":\"DISABLED\"}` ๋ฅผ ์ฐ์ธ์ โ ์ํฌ๋ฆฟ๊ณผ ์ด๋ฒคํธ ๊ตฌ์ฑ์ด ๋จ์ ๊ทธ๋๋ก ๋์ด๋ฆด ์ ์์ต๋๋ค. **๋๋๋ฆด ์ ์์ต๋๋ค.** ๋ค์ ๋ฑ๋กํ๋ฉด ์ ๊ตฌ๋
์ด๊ณ ์๋ช
์ํฌ๋ฆฟ๋ ์ ๊ฐ์
๋๋ค. **`If-Match` ๊ฐ ํ์์
๋๋ค.** `GET` ์ผ๋ก ๋ฐ์ `ETag` ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `428` โ ํค๋ ๋๋ฝ. ์กฐํ ํ ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค(๋๊ตฐ๊ฐ ์์ ํ๊ฑฐ๋ ๋ฐ์ก๊ธฐ๊ฐ ์ํ๋ฅผ ๋ด๋ ธ์ต๋๋ค). ๋ค์ ์กฐํํด ์ ๋ง ์ง์ธ ๋์์ด ๋ง๋์ง ํ์ธํ๊ณ ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
370
|
+
* @summary ์นํ
๊ตฌ๋
์ญ์
|
|
371
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
372
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
373
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
374
|
+
* @param {*} [options] Override http request option.
|
|
375
|
+
* @throws {RequiredError}
|
|
376
|
+
*/
|
|
377
|
+
deleteWebhookEndpoint: (endpointId_1, ifMatch_1, idempotencyKey_1, ...args_1) => __awaiter(this, [endpointId_1, ifMatch_1, idempotencyKey_1, ...args_1], void 0, function* (endpointId, ifMatch, idempotencyKey, options = {}) {
|
|
378
|
+
// verify required parameter 'endpointId' is not null or undefined
|
|
379
|
+
(0, common_1.assertParamExists)('deleteWebhookEndpoint', 'endpointId', endpointId);
|
|
380
|
+
// verify required parameter 'ifMatch' is not null or undefined
|
|
381
|
+
(0, common_1.assertParamExists)('deleteWebhookEndpoint', 'ifMatch', ifMatch);
|
|
382
|
+
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
383
|
+
(0, common_1.assertParamExists)('deleteWebhookEndpoint', 'idempotencyKey', idempotencyKey);
|
|
384
|
+
const localVarPath = `/v2/webhook-endpoints/{endpointId}`
|
|
385
|
+
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
386
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
387
|
+
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
388
|
+
let baseOptions;
|
|
389
|
+
if (configuration) {
|
|
390
|
+
baseOptions = configuration.baseOptions;
|
|
391
|
+
}
|
|
392
|
+
const localVarRequestOptions = Object.assign(Object.assign({ method: 'DELETE' }, baseOptions), options);
|
|
393
|
+
const localVarHeaderParameter = {};
|
|
394
|
+
const localVarQueryParameter = {};
|
|
395
|
+
// authentication partner-oauth2 required
|
|
396
|
+
// oauth required
|
|
397
|
+
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration);
|
|
398
|
+
localVarHeaderParameter['Accept'] = 'application/problem+json';
|
|
399
|
+
if (ifMatch != null) {
|
|
400
|
+
localVarHeaderParameter['If-Match'] = String(ifMatch);
|
|
401
|
+
}
|
|
402
|
+
if (idempotencyKey != null) {
|
|
403
|
+
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
404
|
+
}
|
|
405
|
+
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
406
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
407
|
+
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
408
|
+
return {
|
|
409
|
+
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
410
|
+
options: localVarRequestOptions,
|
|
411
|
+
};
|
|
412
|
+
}),
|
|
328
413
|
/**
|
|
329
414
|
* ๋ฌด์ธ์ฆ โ `fileKey` ์์ฒด๊ฐ capability ๋ค(ํค๋ฅผ ์๋ ์ชฝ์ด ๊ณง ์ ๊ทผ ๊ถํ์ ๊ฐ์ง๋ค). ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ์ด URL ์ ๊ฐ๋ฆฌํจ๋ค. ์์ฒญ ์์ ์ ์๋ช
ํ๋ฏ๋ก URL ์ ์ ์ฅํด ๋์ด๋ ๋ง๋ฃ๋์ง ์๋๋ค. ์๋ต์ ์ค์ ์ ์ฅ์ URL ๋ก์ 302 ๋ฆฌ๋ค์ด๋ ํธ์ด๋ฉฐ ๋ฆฌ๋ค์ด๋ ํธ ํ๊น์ 1์๊ฐ ๋ค ๋ง๋ฃ๋๋ฏ๋ก 302 ์์ฒด๋ฅผ ์บ์ํ์ง ๋ง ๊ฒ(`Cache-Control: no-store`). --- **์๋ต ํํ๊ฐ ๋๊ฒฐ๋ ํ๋ฉด์
๋๋ค.** ์ด๋ฏธ ์ฐ๋ ์ค์ธ ์์คํ
์ด ์์ด ์๋ต ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊พธ์ง ์์ต๋๋ค. ๋ค๋ฅธ `/v2` ์๋ํฌ์ธํธ์ ๋ฌ๋ฆฌ `{data,meta}` ๋ดํฌ๋ฅผ ์์ฐ์ง ์์ผ๋ฏ๋ก ์๋ต ๋ณธ๋ฌธ์ด ๊ณง ์ ์คํค๋ง์
๋๋ค. ์ง๊ธ ์ฐ๋ํ์
๋ ๊ณ์ ๋์ํฉ๋๋ค โ ๋ค๋ง ์ด ๊ฒฝ๋ก์ ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ง๋ ์์ต๋๋ค. **๋์ฒด ๊ณํ:** ์ด๋ฏธ ์์ต๋๋ค โ `GET /v2/files/{fileKey}` ๊ฐ ํ์ผ ๋ฉํ์ `downloadUrl` ์ v2 ์๋ต ๊ท์ฝ์ผ๋ก ๋๋ ค์ค๋๋ค. ์ด ์์ URL ์ ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ผ ๊ณ์ ์ ์ง๋๋ฉฐ ์ค๋จ ์ผ์ ์ ์์ต๋๋ค.
|
|
330
415
|
* @summary ํ์ผ ๋ค์ด๋ก๋
|
|
@@ -556,6 +641,39 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
556
641
|
options: localVarRequestOptions,
|
|
557
642
|
};
|
|
558
643
|
}),
|
|
644
|
+
/**
|
|
645
|
+
* ๊ตฌ๋
1๊ฑด์ ํ์ฌ ์ํ๋ฅผ ์กฐํํฉ๋๋ค. ์๋ช
์ํฌ๋ฆฟ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **์์ ยท์ญ์ ์ ์ ๋จผ์ ํธ์ถํ์ธ์.** ์๋ต ํค๋ `ETag` ๋ฅผ `If-Match` ์ ๊ทธ๋๋ก ์ค์ด์ผ `PATCH`/`DELETE` ๊ฐ ํต๊ณผํฉ๋๋ค. **`404`:** ์๋ ๊ตฌ๋
์ด๊ฑฐ๋ ๋ค๋ฅธ ํํธ๋ ํค์ ๊ตฌ๋
์
๋๋ค โ `endpointId` ๋ฅผ ํ์ธํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
646
|
+
* @summary ์นํ
๊ตฌ๋
๋จ๊ฑด ์กฐํ
|
|
647
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
648
|
+
* @param {*} [options] Override http request option.
|
|
649
|
+
* @throws {RequiredError}
|
|
650
|
+
*/
|
|
651
|
+
getWebhookEndpoint: (endpointId_1, ...args_1) => __awaiter(this, [endpointId_1, ...args_1], void 0, function* (endpointId, options = {}) {
|
|
652
|
+
// verify required parameter 'endpointId' is not null or undefined
|
|
653
|
+
(0, common_1.assertParamExists)('getWebhookEndpoint', 'endpointId', endpointId);
|
|
654
|
+
const localVarPath = `/v2/webhook-endpoints/{endpointId}`
|
|
655
|
+
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
656
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
657
|
+
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
658
|
+
let baseOptions;
|
|
659
|
+
if (configuration) {
|
|
660
|
+
baseOptions = configuration.baseOptions;
|
|
661
|
+
}
|
|
662
|
+
const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
|
|
663
|
+
const localVarHeaderParameter = {};
|
|
664
|
+
const localVarQueryParameter = {};
|
|
665
|
+
// authentication partner-oauth2 required
|
|
666
|
+
// oauth required
|
|
667
|
+
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:read"], configuration);
|
|
668
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
669
|
+
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
670
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
671
|
+
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
672
|
+
return {
|
|
673
|
+
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
674
|
+
options: localVarRequestOptions,
|
|
675
|
+
};
|
|
676
|
+
}),
|
|
559
677
|
/**
|
|
560
678
|
* ERP ์ฐ๋ ์ง์ ํ์ ยท์ธ์ฆ endpoint ๋์ ํ์ธ์ฉ.
|
|
561
679
|
* @summary Partner API ํฌ์ค์ฒดํฌ
|
|
@@ -707,6 +825,80 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
707
825
|
options: localVarRequestOptions,
|
|
708
826
|
};
|
|
709
827
|
}),
|
|
828
|
+
/**
|
|
829
|
+
* ์ด API ํค์ ์นํ
๋ฐ์ก ์๋๋ฅผ ์ต์ ์์ผ๋ก ์กฐํํฉ๋๋ค. ๋ณด๋ธ ๋ณธ๋ฌธยท์์ ์ธก ์๋ต ์ํยท ๋ค์ ์ฌ์๋ ์์ ์๊ฐ์ด ํจ๊ป ์ค๋ฆฝ๋๋ค. **ํธ์ถ ์์ :** - ์์ ์ธก ์ฅ์ ๋ก ๋์น ์ด๋ฒคํธ๋ฅผ ๋ฉ์ธ ๋. ์ด ์๋ํฌ์ธํธ๊ฐ ์นํ
์ **ํด๋ง ๋์ฒด ๊ฒฝ๋ก**์
๋๋ค โ `status=EXHAUSTED` ๋ก ๊ฑธ๋ฌ ๋ค์ ์ฒ๋ฆฌํ๋ฉด ๋ฉ๋๋ค. - \"์ด๋ฒคํธ๊ฐ ์ ์จ๋ค\" ๋ฅผ ์ง๋จํ ๋. ๋ฐ์ก ์๋ ์์ฒด๊ฐ ์๋์ง(๊ตฌ๋
ยท์ด๋ฒคํธ ํ์
๋ฌธ์ ), ์๋ํ์ง๋ง ์คํจํ๋์ง(`responseStatus`ยท`responseBodyExcerpt`)๋ฅผ ์ฌ๊ธฐ์ ๊ฐ๋ฆ
๋๋ค. **๊ฐ์ ์ด๋ฒคํธ๊ฐ ์ฌ๋ฌ ํ์ผ๋ก ๋ณด์
๋๋ค.** ์ฌ์๋๋ง๋ค ํ ํ์ด๋ฉฐ `eventId` ๊ฐ ๊ฐ๊ณ `attempt` ๋ง ์ฌ๋ผ๊ฐ๋๋ค. ์ฒ๋ฆฌ ์ฌ๋ถ๋ `eventId` ๊ธฐ์ค์ผ๋ก ํ๋จํ์ธ์. **ํ์ด์ง๋ค์ด์
:** `nextCursor` ๋ฅผ ๋ค์ ์์ฒญ์ `cursor` ๋ก ์ ๋ฌํฉ๋๋ค. null ์ด๋ฉด ๋ง์ง๋ง ํ์ด์ง์
๋๋ค. **`400`:** `status` ๊ฐ ํ์ฉ ๊ฐ ๋ฐ์ด๊ฑฐ๋ `limit` ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค โ ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
830
|
+
* @summary ์นํ
์ ์ก ์ด๋ ฅ ์กฐํ
|
|
831
|
+
* @param {string} [endpointId] ์ด ๊ตฌ๋
์ ์ ์ก๋ง ์กฐํํฉ๋๋ค. ๋ฏธ์ง์ ์ด๋ฉด ์ด ํค์ ๋ชจ๋ ๊ตฌ๋
์ ํจ๊ป ์กฐํํฉ๋๋ค.
|
|
832
|
+
* @param {PartnerWebhookDeliveryStatus} [status] ์ ์ก ์ํ ํํฐ. ๋ฏธ์ง์ ์ด๋ฉด ์ ๋ถ.
|
|
833
|
+
* @param {number} [limit] ํ์ด์ง ํฌ๊ธฐ(1~200, ๊ธฐ๋ณธ 50).
|
|
834
|
+
* @param {string} [cursor] ๋ค์ ํ์ด์ง ์ปค์(๋ถํฌ๋ช
ํ ํฐ). ์ง์ ์๋ต์ `nextCursor` ๋ฅผ ๊ทธ๋๋ก ์ ๋ฌํฉ๋๋ค. ๋ฏธ์ง์ ์ ์ฒซ ํ์ด์ง.
|
|
835
|
+
* @param {*} [options] Override http request option.
|
|
836
|
+
* @throws {RequiredError}
|
|
837
|
+
*/
|
|
838
|
+
listWebhookDeliveries: (endpointId_1, status_1, limit_1, cursor_1, ...args_1) => __awaiter(this, [endpointId_1, status_1, limit_1, cursor_1, ...args_1], void 0, function* (endpointId, status, limit, cursor, options = {}) {
|
|
839
|
+
const localVarPath = `/v2/webhook-deliveries`;
|
|
840
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
841
|
+
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
842
|
+
let baseOptions;
|
|
843
|
+
if (configuration) {
|
|
844
|
+
baseOptions = configuration.baseOptions;
|
|
845
|
+
}
|
|
846
|
+
const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
|
|
847
|
+
const localVarHeaderParameter = {};
|
|
848
|
+
const localVarQueryParameter = {};
|
|
849
|
+
// authentication partner-oauth2 required
|
|
850
|
+
// oauth required
|
|
851
|
+
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:read"], configuration);
|
|
852
|
+
if (endpointId !== undefined) {
|
|
853
|
+
localVarQueryParameter['endpointId'] = endpointId;
|
|
854
|
+
}
|
|
855
|
+
if (status !== undefined) {
|
|
856
|
+
localVarQueryParameter['status'] = status;
|
|
857
|
+
}
|
|
858
|
+
if (limit !== undefined) {
|
|
859
|
+
localVarQueryParameter['limit'] = limit;
|
|
860
|
+
}
|
|
861
|
+
if (cursor !== undefined) {
|
|
862
|
+
localVarQueryParameter['cursor'] = cursor;
|
|
863
|
+
}
|
|
864
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
865
|
+
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
866
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
867
|
+
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
868
|
+
return {
|
|
869
|
+
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
870
|
+
options: localVarRequestOptions,
|
|
871
|
+
};
|
|
872
|
+
}),
|
|
873
|
+
/**
|
|
874
|
+
* ์ด API ํค๊ฐ ๋ฑ๋กํ ์นํ
๊ตฌ๋
์ ๋ชจ๋ ์กฐํํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ํ๋ฅผ ์ ๊ฒํ ๋, ๋๋ ๋ฐ์ก์ด ๋ฉ์ถ ์ด์ (`status`ยท`consecutiveFailures`)๋ฅผ ํ์ธํ ๋. ์๋ช
์ํฌ๋ฆฟ์ ์ฌ๊ธฐ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:read` ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
875
|
+
* @summary ์นํ
๊ตฌ๋
๋ชฉ๋ก ์กฐํ
|
|
876
|
+
* @param {*} [options] Override http request option.
|
|
877
|
+
* @throws {RequiredError}
|
|
878
|
+
*/
|
|
879
|
+
listWebhookEndpoints: (...args_1) => __awaiter(this, [...args_1], void 0, function* (options = {}) {
|
|
880
|
+
const localVarPath = `/v2/webhook-endpoints`;
|
|
881
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
882
|
+
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
883
|
+
let baseOptions;
|
|
884
|
+
if (configuration) {
|
|
885
|
+
baseOptions = configuration.baseOptions;
|
|
886
|
+
}
|
|
887
|
+
const localVarRequestOptions = Object.assign(Object.assign({ method: 'GET' }, baseOptions), options);
|
|
888
|
+
const localVarHeaderParameter = {};
|
|
889
|
+
const localVarQueryParameter = {};
|
|
890
|
+
// authentication partner-oauth2 required
|
|
891
|
+
// oauth required
|
|
892
|
+
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:read"], configuration);
|
|
893
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
894
|
+
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
895
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
896
|
+
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
897
|
+
return {
|
|
898
|
+
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
899
|
+
options: localVarRequestOptions,
|
|
900
|
+
};
|
|
901
|
+
}),
|
|
710
902
|
/**
|
|
711
903
|
* ๊ณต๊ณ ๋ฅผ ์ ์ฐฐ ์ํ๋ก ์ ํํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ์ ์ฐฐ ์ฌ์ ๊ฐ ํ์ ๋์์ ๋. ๊ณต๊ณ ๊ฐ ์
์ฐฐ์๋ฃ(๋ง๊ฐ) ์ํ์์ ํธ์ถํฉ๋๋ค. **๋ถ์ํจ๊ณผ:** - ๊ณต๊ณ ์ํ๊ฐ ์ ์ฐฐ(FAILED)๋ก ์ ํ๋ฉ๋๋ค. - ์ ์ฐฐ์ฌ์ ์ฝ๋์ ์์ธ๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. **์ ์ฐฐ์ฌ์ ๊ฐ ๋ชฉ๋ก(failureReasonCode โ ๊ณต๊ฐ๊ฐ):** | ๊ฐ | ์๋ฏธ | |------|------| | `ABOVE_TARGET_PRICE` | ์์ ๊ฐ๊ฒฉ ์ด๊ณผ | | `DEPT_MISMATCH` | ์๊ฒฉ ๋ฏธ๋ฌ | | `NEEDS_EXPERTISE` | ์ ๋ฌธ์ฑ ํ์ | | `OTHER` | ๊ธฐํ (`failureReasonDetail` ํ์) | | `NO_PARTICIPANT` | ์ฐธ๊ฐ์ ์์ | | `SINGLE_PARTICIPANT` | ๋จ๋
์ฐธ๊ฐ | | `LESS_THAN_TWO` | 2์ธ ๋ฏธ๋ง | | `BELOW_MINIMUM` | ์ต์ ๊ฐ ๋ฏธ๋ฌ | **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
712
904
|
* @summary ์ ์ฐฐ ์ฒ๋ฆฌ
|
|
@@ -963,6 +1155,84 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
963
1155
|
options: localVarRequestOptions,
|
|
964
1156
|
};
|
|
965
1157
|
}),
|
|
1158
|
+
/**
|
|
1159
|
+
* ์๋ช
์ํฌ๋ฆฟ์ ์๋ก ๋ฐ๊ธํฉ๋๋ค. ์๋ต์ `secretVersion` ์ด 1 ์ฌ๋ผ๊ฐ๋๋ค. **ํธ์ถ ์์ :** ์ํฌ๋ฆฟ์ ๋ถ์คํ๊ฑฐ๋ ์ ์ถ์ด ์์ฌ๋ ๋, ๋๋ ์ฃผ๊ธฐ์ ๊ต์ฒด ์ ์ฑ
์ด ์์ ๋. **์ ์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. **์ ์ํฌ๋ฆฟ์ ์ฆ์ ๋ฌดํจ์
๋๋ค.** ์ ์ ๊ธฐ๊ฐ์ด ์์ผ๋ฏ๋ก, ์์ ์ธก์ด ์ ๊ฐ์ ๋ฐ์ํ๊ธฐ ์ ์ ๋์ฐฉํ ์ด๋ฒคํธ๋ ์๋ช
๊ฒ์ฆ์ ์คํจํฉ๋๋ค. ๋ฐฐํฌ ์์๋ฅผ ์ด๋ ๊ฒ ์ก์ผ์ธ์ โ โ ์์ ์ธก์ด ์ ๊ฐ๊ณผ ์ ๊ฐ์ **๋ ๋ค** ๋ฐ์๋ค์ด๋๋ก ๋ฐฐํฌ โ โก ์ด ์๋ํฌ์ธํธ ํธ์ถ โ โข ์๋ต์ ์ ๊ฐ์ ๋ฐ์ โ โฃ ์ ๊ฐ ์ ๊ฑฐ. ๊ฒ์ฆ ์คํจ๋ก non-2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์คํจ๋ก ์ง๊ณ๋์ด 20ํ ์ฐ์ ์ ๊ตฌ๋
์ด ์ค์ง๋ฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๊ฐ์ ํค๋ก ์ฌ์ ์กํ๋ฉด **์๋ก ๋ฐ๊ธํ์ง ์๊ณ ** ์ฒ์ ๋ฐ๊ธํ ๊ฐ์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(24์๊ฐ) โ ๋คํธ์ํฌ ์ค๋ฅ๋ก ์๋ต์ ๋์ณค์ ๋ ๊ฐ์ ํค๋ก ๋ค์ ๋ถ๋ฅด์ธ์.
|
|
1160
|
+
* @summary ์นํ
์๋ช
์ํฌ๋ฆฟ ์ฌ๋ฐ๊ธ
|
|
1161
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1162
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
1163
|
+
* @param {*} [options] Override http request option.
|
|
1164
|
+
* @throws {RequiredError}
|
|
1165
|
+
*/
|
|
1166
|
+
rotateWebhookSecret: (endpointId_1, idempotencyKey_1, ...args_1) => __awaiter(this, [endpointId_1, idempotencyKey_1, ...args_1], void 0, function* (endpointId, idempotencyKey, options = {}) {
|
|
1167
|
+
// verify required parameter 'endpointId' is not null or undefined
|
|
1168
|
+
(0, common_1.assertParamExists)('rotateWebhookSecret', 'endpointId', endpointId);
|
|
1169
|
+
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1170
|
+
(0, common_1.assertParamExists)('rotateWebhookSecret', 'idempotencyKey', idempotencyKey);
|
|
1171
|
+
const localVarPath = `/v2/webhook-endpoints/{endpointId}/rotate-secret`
|
|
1172
|
+
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
1173
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1174
|
+
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
1175
|
+
let baseOptions;
|
|
1176
|
+
if (configuration) {
|
|
1177
|
+
baseOptions = configuration.baseOptions;
|
|
1178
|
+
}
|
|
1179
|
+
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
1180
|
+
const localVarHeaderParameter = {};
|
|
1181
|
+
const localVarQueryParameter = {};
|
|
1182
|
+
// authentication partner-oauth2 required
|
|
1183
|
+
// oauth required
|
|
1184
|
+
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration);
|
|
1185
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1186
|
+
if (idempotencyKey != null) {
|
|
1187
|
+
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1188
|
+
}
|
|
1189
|
+
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
1190
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1191
|
+
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
1192
|
+
return {
|
|
1193
|
+
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
1194
|
+
options: localVarRequestOptions,
|
|
1195
|
+
};
|
|
1196
|
+
}),
|
|
1197
|
+
/**
|
|
1198
|
+
* ๋ฑ๋ก๋ ์ฃผ์๋ก `ping` ์ด๋ฒคํธ๋ฅผ ์ฆ์ 1ํ ๋ณด๋ด๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค์ค๋๋ค. **ํธ์ถ ์์ :** ๊ตฌ๋
์ ๋ฑ๋กํ ์งํ, ์์ ์ฃผ์๋ฅผ ๋ฐ๊พผ ์งํ, ๋ฐฉํ๋ฒฝยท์ธ์ฆ์๋ฅผ ์๋ณธ ๋ค. **์๋ต์ ๋ฐ์ก ๊ฒฐ๊ณผ์ด์ง ์์ฒญ ์คํจ๊ฐ ์๋๋๋ค.** ์์ ์ธก์ด ๋ฐ์ง ๋ชปํด๋ HTTP `200` ์ `delivered: false` ๋ก ์ต๋๋ค โ `responseStatus`(์์ ์ธก ์ํ)์ `error`(์ฐ๊ฒฐ ๊ฑฐ๋ถยทํ์์์ยท TLS ์ค๋ฅ)๋ฅผ ๋ณด๊ณ ์์ธ์ ์ขํ์ธ์. ์ด ๋ฐ์ก์๋ ์ค์ ์ด๋ฒคํธ์ **๋๊ฐ์ ์๋ช
ํค๋**๊ฐ ์ค๋ฆฌ๋ฏ๋ก ๊ฒ์ฆ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์ํํ ์ ์์ต๋๋ค. `ping` ์ ๊ตฌ๋
๋ชฉ๋ก์ ๋ฃ์ ์ ์๋ ํ์
์ด๋, ์์ ์ธก์ด ๋ชจ๋ฅด๋ `eventType` ์ ๋ง๋๋ฉด ๋ฒ๋ฆฌ๋๋ก ์ง์ฌ ์๋ค๋ฉด ์ด ํ์ธ๋ง ์คํจํ ์ ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋ค์ ๋ณด๋ด๋ ค๋ฉด **์ ํค**๋ฅผ ์ฐ์ธ์ โ ๊ฐ์ ํค๋ 24์๊ฐ ๋์ ์ง์ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(์ฌ๋ฐ์กํ์ง ์์ต๋๋ค).
|
|
1199
|
+
* @summary ์นํ
์ฐ๊ฒฐ ํ์ธ ๋ฐ์ก
|
|
1200
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1201
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
1202
|
+
* @param {*} [options] Override http request option.
|
|
1203
|
+
* @throws {RequiredError}
|
|
1204
|
+
*/
|
|
1205
|
+
sendWebhookTestEvent: (endpointId_1, idempotencyKey_1, ...args_1) => __awaiter(this, [endpointId_1, idempotencyKey_1, ...args_1], void 0, function* (endpointId, idempotencyKey, options = {}) {
|
|
1206
|
+
// verify required parameter 'endpointId' is not null or undefined
|
|
1207
|
+
(0, common_1.assertParamExists)('sendWebhookTestEvent', 'endpointId', endpointId);
|
|
1208
|
+
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1209
|
+
(0, common_1.assertParamExists)('sendWebhookTestEvent', 'idempotencyKey', idempotencyKey);
|
|
1210
|
+
const localVarPath = `/v2/webhook-endpoints/{endpointId}/test`
|
|
1211
|
+
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
1212
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1213
|
+
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
1214
|
+
let baseOptions;
|
|
1215
|
+
if (configuration) {
|
|
1216
|
+
baseOptions = configuration.baseOptions;
|
|
1217
|
+
}
|
|
1218
|
+
const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
|
|
1219
|
+
const localVarHeaderParameter = {};
|
|
1220
|
+
const localVarQueryParameter = {};
|
|
1221
|
+
// authentication partner-oauth2 required
|
|
1222
|
+
// oauth required
|
|
1223
|
+
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration);
|
|
1224
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1225
|
+
if (idempotencyKey != null) {
|
|
1226
|
+
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1227
|
+
}
|
|
1228
|
+
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
1229
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1230
|
+
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
1231
|
+
return {
|
|
1232
|
+
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
1233
|
+
options: localVarRequestOptions,
|
|
1234
|
+
};
|
|
1235
|
+
}),
|
|
966
1236
|
/**
|
|
967
1237
|
* ํ์๋ฐฉ์(NEGOTIATION/NEGOTIATION_AUTO) ๊ณต๊ณ ์ ์์ฐฐ์๋ณ ์ ์๋ฅผ ์
๋ ฅํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ๋์ฐฐ(`POST /v2/bids/{bidRef}/award`) ์ . ํ์๋ฐฉ์ ๊ณต๊ณ ๋ ์ด ํ๊ฐ๋ฅผ ์๋ฃํด์ผ ๋์ฐฐ์ ์ง์
ํ ์ ์์ต๋๋ค. **๋ถ์ํจ๊ณผ:** - ์์ฐฐ์๋ณ ๊ธฐ์ ์ ์(๋ฐ ์ ํ์ ๊ฐ๊ฒฉ์ ์ override)๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. - `complete=true` ๋ฉด ํ๊ฐ์๋ฃ ๊ฒ์ดํธ๊น์ง ์ ์ฉ๋ผ ๋์ฐฐ ์ง์
์ด ๊ฐ๋ฅํด์ง๋๋ค. **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋์ผ ํค + ๋์ผ body ์ฌ์ ์ก ์ 24์๊ฐ ๋ด ์บ์ ์๋ต ๋ฐํ.
|
|
968
1238
|
* @summary ํ์ ์ ์ํ๊ฐ
|
|
@@ -1057,6 +1327,56 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
|
|
|
1057
1327
|
options: localVarRequestOptions,
|
|
1058
1328
|
};
|
|
1059
1329
|
}),
|
|
1330
|
+
/**
|
|
1331
|
+
* ์์ ์ฃผ์ยท๊ตฌ๋
์ด๋ฒคํธยท์ํ๋ฅผ ์์ ํฉ๋๋ค. ๋ณด๋ธ ํ๋๋ง ๋ฐ๋๋๋ค. **ํธ์ถ ์์ :** ์์ ์ฃผ์๊ฐ ๋ฐ๋์์ ๋, ๊ตฌ๋
์ด๋ฒคํธ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ๋, ์ฐ์ ์คํจ๋ก ์๋ ์ค์ง๋ ๊ตฌ๋
์ ๊ณ ์น ๋ค ๋์ด๋ฆด ๋(`{\"status\":\"ACTIVE\"}`). **`eventTypes` ๋ ์นํ์
๋๋ค** โ ๋ณด๋ธ ๋ชฉ๋ก์ด ๊ณง ์ ๊ตฌ๋
๋ชฉ๋ก์
๋๋ค. ํ๋๋ฅผ ๋ํ๋ ค๋ฉด ๊ธฐ์กด ๋ชฉ๋ก์ ๋ํ **์ ์ฒด**๋ฅผ ๋ณด๋ด์ธ์. **`If-Match` ๊ฐ ํ์์
๋๋ค.** ๋จผ์ `GET /v2/webhook-endpoints/{endpointId}` ๋ก ํ์ฌ `ETag` ๋ฅผ ๋ฐ์ ๊ทธ๋๋ก ์ค์ด ๋ณด๋ด์ธ์. ์ด ํค๋๊ฐ ์์ผ๋ฉด ๋ ์์ฒญ์ด ์์๊ฑฐ๋ ๋ค์๊ฑฐ๋ ํ๋ฉฐ ๋จผ์ ํ ์์ ์ ์กฐ์ฉํ ๋ฎ์ด์๋๋ค. - `428` โ ํค๋๋ฅผ ๋นผ๋จน์์ต๋๋ค. ์กฐํ ํ `ETag` ๋ฅผ ์ค์ด ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค. ๋ค์ ์กฐํํด ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. ์๋ฌด๊ฒ๋ ์์ ๋์ง ์์์ต๋๋ค. **์ํฌ๋ฆฟ์ ์ด ๊ฒฝ๋ก๋ก ๋ฐ๋์ง ์์ต๋๋ค** โ ์ฌ๋ฐ๊ธ์ `rotate-secret` ์
๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1332
|
+
* @summary ์นํ
๊ตฌ๋
์์
|
|
1333
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1334
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
1335
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
1336
|
+
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
1337
|
+
* @param {*} [options] Override http request option.
|
|
1338
|
+
* @throws {RequiredError}
|
|
1339
|
+
*/
|
|
1340
|
+
updateWebhookEndpoint: (endpointId_1, ifMatch_1, idempotencyKey_1, updateWebhookEndpointRequestDto_1, ...args_1) => __awaiter(this, [endpointId_1, ifMatch_1, idempotencyKey_1, updateWebhookEndpointRequestDto_1, ...args_1], void 0, function* (endpointId, ifMatch, idempotencyKey, updateWebhookEndpointRequestDto, options = {}) {
|
|
1341
|
+
// verify required parameter 'endpointId' is not null or undefined
|
|
1342
|
+
(0, common_1.assertParamExists)('updateWebhookEndpoint', 'endpointId', endpointId);
|
|
1343
|
+
// verify required parameter 'ifMatch' is not null or undefined
|
|
1344
|
+
(0, common_1.assertParamExists)('updateWebhookEndpoint', 'ifMatch', ifMatch);
|
|
1345
|
+
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1346
|
+
(0, common_1.assertParamExists)('updateWebhookEndpoint', 'idempotencyKey', idempotencyKey);
|
|
1347
|
+
// verify required parameter 'updateWebhookEndpointRequestDto' is not null or undefined
|
|
1348
|
+
(0, common_1.assertParamExists)('updateWebhookEndpoint', 'updateWebhookEndpointRequestDto', updateWebhookEndpointRequestDto);
|
|
1349
|
+
const localVarPath = `/v2/webhook-endpoints/{endpointId}`
|
|
1350
|
+
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
1351
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1352
|
+
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
|
|
1353
|
+
let baseOptions;
|
|
1354
|
+
if (configuration) {
|
|
1355
|
+
baseOptions = configuration.baseOptions;
|
|
1356
|
+
}
|
|
1357
|
+
const localVarRequestOptions = Object.assign(Object.assign({ method: 'PATCH' }, baseOptions), options);
|
|
1358
|
+
const localVarHeaderParameter = {};
|
|
1359
|
+
const localVarQueryParameter = {};
|
|
1360
|
+
// authentication partner-oauth2 required
|
|
1361
|
+
// oauth required
|
|
1362
|
+
yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration);
|
|
1363
|
+
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
1364
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1365
|
+
if (ifMatch != null) {
|
|
1366
|
+
localVarHeaderParameter['If-Match'] = String(ifMatch);
|
|
1367
|
+
}
|
|
1368
|
+
if (idempotencyKey != null) {
|
|
1369
|
+
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1370
|
+
}
|
|
1371
|
+
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
|
|
1372
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1373
|
+
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
|
|
1374
|
+
localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(updateWebhookEndpointRequestDto, localVarRequestOptions, configuration);
|
|
1375
|
+
return {
|
|
1376
|
+
url: (0, common_1.toPathString)(localVarUrlObj),
|
|
1377
|
+
options: localVarRequestOptions,
|
|
1378
|
+
};
|
|
1379
|
+
}),
|
|
1060
1380
|
/**
|
|
1061
1381
|
* **์ฒจ๋ถ ์
๋ก๋์ ๊ธฐ๋ณธ ๊ฒฝ๋ก์
๋๋ค. 23MB ์ดํ๋ฉด ์ด ํธ์ถ ํ๋๋ก ๋๋ฉ๋๋ค.** ํ์ผ ๋ณธ๋ฌธ์ `base64` ๋๋ `url` ์ค ์ ํํ ํ๋๋ก ์ ์ถํ๋ฉด `fileKey` ๋ฅผ ๋๋ ค์ค๋๋ค. ์ด ๊ฐ์ ๊ณต๊ณ ๋ฑ๋กยท์์ ์ ์ฒจ๋ถ ํ๋์ ์ค์ผ์ธ์. **23MB ๋ฅผ ๋์ผ๋ฉด ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ผ ํฉ๋๋ค.** ์ํ์ด ์
์ผ๋ก ๊ฐ๋ฆฝ๋๋ค. | ์ ์ถ ๋ฐฉ์ | ์ํ | ํธ์ถ ์ | | --- | --- | --- | | ์ด ํธ์ถ + `base64` | **23MB** (๋ณธ๋ฌธ์ด c-market ์ ํต๊ณผํ๋ฉฐ base64 ํฝ์ฐฝ 4/3 ์ด ์นํ) | 1 | | ์ด ํธ์ถ + `url` | **30MB** (c-market ์ด ๋์ ๋ด๋ ค๋ฐ์ ํฝ์ฐฝ์ ์์ง๋ง ์๋ฒ ๊ฒฝ์ ์ฒ์ฅ์ ๊ทธ๋๋ก) | 1 | | `POST /v2/files/upload-url` ๋ก ์์ํ๋ 2๋จ๊ณ | **100MB** (๋ฐ์ดํธ๊ฐ c-market ์ ์ง๋์ง ์์) | 2 + ์คํ ๋ฆฌ์ง PUT | c-market ์ด ๋ด๋ ค๋ฐ์ ์ ์๋ https ์ฃผ์์ ํ์ผ์ ์ฌ๋ ค ๋ ์ ์๋ค๋ฉด `url` ์ด 30MB ๊น์ง๋ฅผ 1์ฝ๋ก ๋ฎ์ต๋๋ค. ๊ทธ ์ด์์ด๊ฑฐ๋ ์ฃผ์๋ฅผ ์ด ์ ์์ผ๋ฉด 2๋จ๊ณ ๊ฒฝ๋ก๋ฅผ ์ฐ์ธ์. **๊ณต๊ณ ๋ฑ๋ก์ ํ์ผ์ ํจ๊ป ์ค์ ์๋ ์์ต๋๋ค.** `POST /v2/bids` ์ `attachments` ์์์ `{ fileName, url }`ยท`{ fileName, base64 }` ๋ฅผ ๊ทธ๋๋ก ๋ฃ์ผ๋ฉด ์ด ํธ์ถ ์์ด ํ ๋ฒ์ ๋๋ฉ๋๋ค. ์ฌ๋ฌ ๊ณต๊ณ ์ ๊ฐ์ ํ์ผ์ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ํฐ ํ์ผ์ ๋ค๋ฃฐ ๋๋ง `fileKey` ๋ฅผ ๋จผ์ ๋ง๋์ธ์. **ํ์ ์ค์ฝํ:** `files:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1062
1382
|
* @summary ๊ณต๊ณ ์ฒจ๋ถํ์ผ ์
๋ก๋ (๊ธฐ๋ณธ)
|
|
@@ -1228,6 +1548,41 @@ const PartnerApiApiFp = function (configuration) {
|
|
|
1228
1548
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1229
1549
|
});
|
|
1230
1550
|
},
|
|
1551
|
+
/**
|
|
1552
|
+
* ์์ ์ฃผ์์ ๊ตฌ๋
ํ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ด๊ธฐ 1ํ. ์์ ์ฃผ์๊ฐ ๋ฐ๋๋ฉด ์๋ก ๋ง๋ค์ง ๋ง๊ณ `PATCH` ๋ก ๊ณ ์น์ธ์ โ ๊ทธ๋์ผ ์ํฌ๋ฆฟ๊ณผ ์ ์ก ์ด๋ ฅ์ด ์ ์ง๋ฉ๋๋ค. **์๋ช
์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์๋ฒ๋ ํด์๋ง ๋ณด๊ดํ๋ฏ๋ก ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. ์๋ต์ `secret` ์ ์ฆ์ ์์ ํ ๊ณณ์ ๋ณด๊ดํ์ธ์. ์์ด๋ฒ๋ ธ๋ค๋ฉด ๋ณต๊ตฌ๊ฐ ์๋๋ผ `POST /v2/webhook-endpoints/{endpointId}/rotate-secret` ์ผ๋ก **์ฌ๋ฐ๊ธ**ํด์ผ ํฉ๋๋ค. **๊ฑฐ์ ๋๋ ๊ฒฝ์ฐ์ ๊ณ ์น๋ ๋ฒ:** - `400` โ `url` ์ด HTTPS ๊ฐ ์๋๊ฑฐ๋ ํ์์ด ์๋ชป๋จ, `eventTypes` ๊ฐ ๋น์๊ฑฐ๋ ๋ชฉ๋ก ๋ฐ ๊ฐ (`ping` ์ ๊ตฌ๋
๋ถ๊ฐ). ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. - `400` โ `Idempotency-Key` ํค๋ ๋๋ฝ/ํ์ ์ค๋ฅ. UUID v4 ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `403` โ ํ ํฐ์ `webhooks:write` ์ค์ฝํ๊ฐ ์์. ํค ๋ฐ๊ธ ์ค์ ์ ๋ํ์ผ ํฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
1553
|
+
* @summary ์นํ
๊ตฌ๋
๋ฑ๋ก
|
|
1554
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
1555
|
+
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
1556
|
+
* @param {*} [options] Override http request option.
|
|
1557
|
+
* @throws {RequiredError}
|
|
1558
|
+
*/
|
|
1559
|
+
createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options) {
|
|
1560
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1561
|
+
var _a, _b, _c;
|
|
1562
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options);
|
|
1563
|
+
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1564
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerApiApi.createWebhookEndpoint']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1565
|
+
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1566
|
+
});
|
|
1567
|
+
},
|
|
1568
|
+
/**
|
|
1569
|
+
* ๊ตฌ๋
์ ์ญ์ ํฉ๋๋ค. ์ดํ ๊ทธ ์ฃผ์๋ก๋ ์๋ฌด ์ด๋ฒคํธ๋ ๋ฐ์ก๋์ง ์์ต๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋์ ์ข
๋ฃํ ๋. ์ ์๋ง ๋ฉ์ถ๋ ค๋ฉด ์ญ์ ํ์ง ๋ง๊ณ `PATCH โฆ {\"status\":\"DISABLED\"}` ๋ฅผ ์ฐ์ธ์ โ ์ํฌ๋ฆฟ๊ณผ ์ด๋ฒคํธ ๊ตฌ์ฑ์ด ๋จ์ ๊ทธ๋๋ก ๋์ด๋ฆด ์ ์์ต๋๋ค. **๋๋๋ฆด ์ ์์ต๋๋ค.** ๋ค์ ๋ฑ๋กํ๋ฉด ์ ๊ตฌ๋
์ด๊ณ ์๋ช
์ํฌ๋ฆฟ๋ ์ ๊ฐ์
๋๋ค. **`If-Match` ๊ฐ ํ์์
๋๋ค.** `GET` ์ผ๋ก ๋ฐ์ `ETag` ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `428` โ ํค๋ ๋๋ฝ. ์กฐํ ํ ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค(๋๊ตฐ๊ฐ ์์ ํ๊ฑฐ๋ ๋ฐ์ก๊ธฐ๊ฐ ์ํ๋ฅผ ๋ด๋ ธ์ต๋๋ค). ๋ค์ ์กฐํํด ์ ๋ง ์ง์ธ ๋์์ด ๋ง๋์ง ํ์ธํ๊ณ ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1570
|
+
* @summary ์นํ
๊ตฌ๋
์ญ์
|
|
1571
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1572
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
1573
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
1574
|
+
* @param {*} [options] Override http request option.
|
|
1575
|
+
* @throws {RequiredError}
|
|
1576
|
+
*/
|
|
1577
|
+
deleteWebhookEndpoint(endpointId, ifMatch, idempotencyKey, options) {
|
|
1578
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1579
|
+
var _a, _b, _c;
|
|
1580
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.deleteWebhookEndpoint(endpointId, ifMatch, idempotencyKey, options);
|
|
1581
|
+
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1582
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerApiApi.deleteWebhookEndpoint']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1583
|
+
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1584
|
+
});
|
|
1585
|
+
},
|
|
1231
1586
|
/**
|
|
1232
1587
|
* ๋ฌด์ธ์ฆ โ `fileKey` ์์ฒด๊ฐ capability ๋ค(ํค๋ฅผ ์๋ ์ชฝ์ด ๊ณง ์ ๊ทผ ๊ถํ์ ๊ฐ์ง๋ค). ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ์ด URL ์ ๊ฐ๋ฆฌํจ๋ค. ์์ฒญ ์์ ์ ์๋ช
ํ๋ฏ๋ก URL ์ ์ ์ฅํด ๋์ด๋ ๋ง๋ฃ๋์ง ์๋๋ค. ์๋ต์ ์ค์ ์ ์ฅ์ URL ๋ก์ 302 ๋ฆฌ๋ค์ด๋ ํธ์ด๋ฉฐ ๋ฆฌ๋ค์ด๋ ํธ ํ๊น์ 1์๊ฐ ๋ค ๋ง๋ฃ๋๋ฏ๋ก 302 ์์ฒด๋ฅผ ์บ์ํ์ง ๋ง ๊ฒ(`Cache-Control: no-store`). --- **์๋ต ํํ๊ฐ ๋๊ฒฐ๋ ํ๋ฉด์
๋๋ค.** ์ด๋ฏธ ์ฐ๋ ์ค์ธ ์์คํ
์ด ์์ด ์๋ต ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊พธ์ง ์์ต๋๋ค. ๋ค๋ฅธ `/v2` ์๋ํฌ์ธํธ์ ๋ฌ๋ฆฌ `{data,meta}` ๋ดํฌ๋ฅผ ์์ฐ์ง ์์ผ๋ฏ๋ก ์๋ต ๋ณธ๋ฌธ์ด ๊ณง ์ ์คํค๋ง์
๋๋ค. ์ง๊ธ ์ฐ๋ํ์
๋ ๊ณ์ ๋์ํฉ๋๋ค โ ๋ค๋ง ์ด ๊ฒฝ๋ก์ ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ง๋ ์์ต๋๋ค. **๋์ฒด ๊ณํ:** ์ด๋ฏธ ์์ต๋๋ค โ `GET /v2/files/{fileKey}` ๊ฐ ํ์ผ ๋ฉํ์ `downloadUrl` ์ v2 ์๋ต ๊ท์ฝ์ผ๋ก ๋๋ ค์ค๋๋ค. ์ด ์์ URL ์ ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ผ ๊ณ์ ์ ์ง๋๋ฉฐ ์ค๋จ ์ผ์ ์ ์์ต๋๋ค.
|
|
1233
1588
|
* @summary ํ์ผ ๋ค์ด๋ก๋
|
|
@@ -1341,6 +1696,22 @@ const PartnerApiApiFp = function (configuration) {
|
|
|
1341
1696
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1342
1697
|
});
|
|
1343
1698
|
},
|
|
1699
|
+
/**
|
|
1700
|
+
* ๊ตฌ๋
1๊ฑด์ ํ์ฌ ์ํ๋ฅผ ์กฐํํฉ๋๋ค. ์๋ช
์ํฌ๋ฆฟ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **์์ ยท์ญ์ ์ ์ ๋จผ์ ํธ์ถํ์ธ์.** ์๋ต ํค๋ `ETag` ๋ฅผ `If-Match` ์ ๊ทธ๋๋ก ์ค์ด์ผ `PATCH`/`DELETE` ๊ฐ ํต๊ณผํฉ๋๋ค. **`404`:** ์๋ ๊ตฌ๋
์ด๊ฑฐ๋ ๋ค๋ฅธ ํํธ๋ ํค์ ๊ตฌ๋
์
๋๋ค โ `endpointId` ๋ฅผ ํ์ธํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
1701
|
+
* @summary ์นํ
๊ตฌ๋
๋จ๊ฑด ์กฐํ
|
|
1702
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1703
|
+
* @param {*} [options] Override http request option.
|
|
1704
|
+
* @throws {RequiredError}
|
|
1705
|
+
*/
|
|
1706
|
+
getWebhookEndpoint(endpointId, options) {
|
|
1707
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1708
|
+
var _a, _b, _c;
|
|
1709
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.getWebhookEndpoint(endpointId, options);
|
|
1710
|
+
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1711
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerApiApi.getWebhookEndpoint']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1712
|
+
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1713
|
+
});
|
|
1714
|
+
},
|
|
1344
1715
|
/**
|
|
1345
1716
|
* ERP ์ฐ๋ ์ง์ ํ์ ยท์ธ์ฆ endpoint ๋์ ํ์ธ์ฉ.
|
|
1346
1717
|
* @summary Partner API ํฌ์ค์ฒดํฌ
|
|
@@ -1409,6 +1780,40 @@ const PartnerApiApiFp = function (configuration) {
|
|
|
1409
1780
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1410
1781
|
});
|
|
1411
1782
|
},
|
|
1783
|
+
/**
|
|
1784
|
+
* ์ด API ํค์ ์นํ
๋ฐ์ก ์๋๋ฅผ ์ต์ ์์ผ๋ก ์กฐํํฉ๋๋ค. ๋ณด๋ธ ๋ณธ๋ฌธยท์์ ์ธก ์๋ต ์ํยท ๋ค์ ์ฌ์๋ ์์ ์๊ฐ์ด ํจ๊ป ์ค๋ฆฝ๋๋ค. **ํธ์ถ ์์ :** - ์์ ์ธก ์ฅ์ ๋ก ๋์น ์ด๋ฒคํธ๋ฅผ ๋ฉ์ธ ๋. ์ด ์๋ํฌ์ธํธ๊ฐ ์นํ
์ **ํด๋ง ๋์ฒด ๊ฒฝ๋ก**์
๋๋ค โ `status=EXHAUSTED` ๋ก ๊ฑธ๋ฌ ๋ค์ ์ฒ๋ฆฌํ๋ฉด ๋ฉ๋๋ค. - \"์ด๋ฒคํธ๊ฐ ์ ์จ๋ค\" ๋ฅผ ์ง๋จํ ๋. ๋ฐ์ก ์๋ ์์ฒด๊ฐ ์๋์ง(๊ตฌ๋
ยท์ด๋ฒคํธ ํ์
๋ฌธ์ ), ์๋ํ์ง๋ง ์คํจํ๋์ง(`responseStatus`ยท`responseBodyExcerpt`)๋ฅผ ์ฌ๊ธฐ์ ๊ฐ๋ฆ
๋๋ค. **๊ฐ์ ์ด๋ฒคํธ๊ฐ ์ฌ๋ฌ ํ์ผ๋ก ๋ณด์
๋๋ค.** ์ฌ์๋๋ง๋ค ํ ํ์ด๋ฉฐ `eventId` ๊ฐ ๊ฐ๊ณ `attempt` ๋ง ์ฌ๋ผ๊ฐ๋๋ค. ์ฒ๋ฆฌ ์ฌ๋ถ๋ `eventId` ๊ธฐ์ค์ผ๋ก ํ๋จํ์ธ์. **ํ์ด์ง๋ค์ด์
:** `nextCursor` ๋ฅผ ๋ค์ ์์ฒญ์ `cursor` ๋ก ์ ๋ฌํฉ๋๋ค. null ์ด๋ฉด ๋ง์ง๋ง ํ์ด์ง์
๋๋ค. **`400`:** `status` ๊ฐ ํ์ฉ ๊ฐ ๋ฐ์ด๊ฑฐ๋ `limit` ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค โ ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
1785
|
+
* @summary ์นํ
์ ์ก ์ด๋ ฅ ์กฐํ
|
|
1786
|
+
* @param {string} [endpointId] ์ด ๊ตฌ๋
์ ์ ์ก๋ง ์กฐํํฉ๋๋ค. ๋ฏธ์ง์ ์ด๋ฉด ์ด ํค์ ๋ชจ๋ ๊ตฌ๋
์ ํจ๊ป ์กฐํํฉ๋๋ค.
|
|
1787
|
+
* @param {PartnerWebhookDeliveryStatus} [status] ์ ์ก ์ํ ํํฐ. ๋ฏธ์ง์ ์ด๋ฉด ์ ๋ถ.
|
|
1788
|
+
* @param {number} [limit] ํ์ด์ง ํฌ๊ธฐ(1~200, ๊ธฐ๋ณธ 50).
|
|
1789
|
+
* @param {string} [cursor] ๋ค์ ํ์ด์ง ์ปค์(๋ถํฌ๋ช
ํ ํฐ). ์ง์ ์๋ต์ `nextCursor` ๋ฅผ ๊ทธ๋๋ก ์ ๋ฌํฉ๋๋ค. ๋ฏธ์ง์ ์ ์ฒซ ํ์ด์ง.
|
|
1790
|
+
* @param {*} [options] Override http request option.
|
|
1791
|
+
* @throws {RequiredError}
|
|
1792
|
+
*/
|
|
1793
|
+
listWebhookDeliveries(endpointId, status, limit, cursor, options) {
|
|
1794
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1795
|
+
var _a, _b, _c;
|
|
1796
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.listWebhookDeliveries(endpointId, status, limit, cursor, options);
|
|
1797
|
+
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1798
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerApiApi.listWebhookDeliveries']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1799
|
+
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1800
|
+
});
|
|
1801
|
+
},
|
|
1802
|
+
/**
|
|
1803
|
+
* ์ด API ํค๊ฐ ๋ฑ๋กํ ์นํ
๊ตฌ๋
์ ๋ชจ๋ ์กฐํํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ํ๋ฅผ ์ ๊ฒํ ๋, ๋๋ ๋ฐ์ก์ด ๋ฉ์ถ ์ด์ (`status`ยท`consecutiveFailures`)๋ฅผ ํ์ธํ ๋. ์๋ช
์ํฌ๋ฆฟ์ ์ฌ๊ธฐ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:read` ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
1804
|
+
* @summary ์นํ
๊ตฌ๋
๋ชฉ๋ก ์กฐํ
|
|
1805
|
+
* @param {*} [options] Override http request option.
|
|
1806
|
+
* @throws {RequiredError}
|
|
1807
|
+
*/
|
|
1808
|
+
listWebhookEndpoints(options) {
|
|
1809
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1810
|
+
var _a, _b, _c;
|
|
1811
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.listWebhookEndpoints(options);
|
|
1812
|
+
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1813
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerApiApi.listWebhookEndpoints']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1814
|
+
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1815
|
+
});
|
|
1816
|
+
},
|
|
1412
1817
|
/**
|
|
1413
1818
|
* ๊ณต๊ณ ๋ฅผ ์ ์ฐฐ ์ํ๋ก ์ ํํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ์ ์ฐฐ ์ฌ์ ๊ฐ ํ์ ๋์์ ๋. ๊ณต๊ณ ๊ฐ ์
์ฐฐ์๋ฃ(๋ง๊ฐ) ์ํ์์ ํธ์ถํฉ๋๋ค. **๋ถ์ํจ๊ณผ:** - ๊ณต๊ณ ์ํ๊ฐ ์ ์ฐฐ(FAILED)๋ก ์ ํ๋ฉ๋๋ค. - ์ ์ฐฐ์ฌ์ ์ฝ๋์ ์์ธ๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. **์ ์ฐฐ์ฌ์ ๊ฐ ๋ชฉ๋ก(failureReasonCode โ ๊ณต๊ฐ๊ฐ):** | ๊ฐ | ์๋ฏธ | |------|------| | `ABOVE_TARGET_PRICE` | ์์ ๊ฐ๊ฒฉ ์ด๊ณผ | | `DEPT_MISMATCH` | ์๊ฒฉ ๋ฏธ๋ฌ | | `NEEDS_EXPERTISE` | ์ ๋ฌธ์ฑ ํ์ | | `OTHER` | ๊ธฐํ (`failureReasonDetail` ํ์) | | `NO_PARTICIPANT` | ์ฐธ๊ฐ์ ์์ | | `SINGLE_PARTICIPANT` | ๋จ๋
์ฐธ๊ฐ | | `LESS_THAN_TWO` | 2์ธ ๋ฏธ๋ง | | `BELOW_MINIMUM` | ์ต์ ๊ฐ ๋ฏธ๋ฌ | **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1414
1819
|
* @summary ์ ์ฐฐ ์ฒ๋ฆฌ
|
|
@@ -1515,6 +1920,40 @@ const PartnerApiApiFp = function (configuration) {
|
|
|
1515
1920
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1516
1921
|
});
|
|
1517
1922
|
},
|
|
1923
|
+
/**
|
|
1924
|
+
* ์๋ช
์ํฌ๋ฆฟ์ ์๋ก ๋ฐ๊ธํฉ๋๋ค. ์๋ต์ `secretVersion` ์ด 1 ์ฌ๋ผ๊ฐ๋๋ค. **ํธ์ถ ์์ :** ์ํฌ๋ฆฟ์ ๋ถ์คํ๊ฑฐ๋ ์ ์ถ์ด ์์ฌ๋ ๋, ๋๋ ์ฃผ๊ธฐ์ ๊ต์ฒด ์ ์ฑ
์ด ์์ ๋. **์ ์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. **์ ์ํฌ๋ฆฟ์ ์ฆ์ ๋ฌดํจ์
๋๋ค.** ์ ์ ๊ธฐ๊ฐ์ด ์์ผ๋ฏ๋ก, ์์ ์ธก์ด ์ ๊ฐ์ ๋ฐ์ํ๊ธฐ ์ ์ ๋์ฐฉํ ์ด๋ฒคํธ๋ ์๋ช
๊ฒ์ฆ์ ์คํจํฉ๋๋ค. ๋ฐฐํฌ ์์๋ฅผ ์ด๋ ๊ฒ ์ก์ผ์ธ์ โ โ ์์ ์ธก์ด ์ ๊ฐ๊ณผ ์ ๊ฐ์ **๋ ๋ค** ๋ฐ์๋ค์ด๋๋ก ๋ฐฐํฌ โ โก ์ด ์๋ํฌ์ธํธ ํธ์ถ โ โข ์๋ต์ ์ ๊ฐ์ ๋ฐ์ โ โฃ ์ ๊ฐ ์ ๊ฑฐ. ๊ฒ์ฆ ์คํจ๋ก non-2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์คํจ๋ก ์ง๊ณ๋์ด 20ํ ์ฐ์ ์ ๊ตฌ๋
์ด ์ค์ง๋ฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๊ฐ์ ํค๋ก ์ฌ์ ์กํ๋ฉด **์๋ก ๋ฐ๊ธํ์ง ์๊ณ ** ์ฒ์ ๋ฐ๊ธํ ๊ฐ์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(24์๊ฐ) โ ๋คํธ์ํฌ ์ค๋ฅ๋ก ์๋ต์ ๋์ณค์ ๋ ๊ฐ์ ํค๋ก ๋ค์ ๋ถ๋ฅด์ธ์.
|
|
1925
|
+
* @summary ์นํ
์๋ช
์ํฌ๋ฆฟ ์ฌ๋ฐ๊ธ
|
|
1926
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1927
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
1928
|
+
* @param {*} [options] Override http request option.
|
|
1929
|
+
* @throws {RequiredError}
|
|
1930
|
+
*/
|
|
1931
|
+
rotateWebhookSecret(endpointId, idempotencyKey, options) {
|
|
1932
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1933
|
+
var _a, _b, _c;
|
|
1934
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.rotateWebhookSecret(endpointId, idempotencyKey, options);
|
|
1935
|
+
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1936
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerApiApi.rotateWebhookSecret']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1937
|
+
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1938
|
+
});
|
|
1939
|
+
},
|
|
1940
|
+
/**
|
|
1941
|
+
* ๋ฑ๋ก๋ ์ฃผ์๋ก `ping` ์ด๋ฒคํธ๋ฅผ ์ฆ์ 1ํ ๋ณด๋ด๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค์ค๋๋ค. **ํธ์ถ ์์ :** ๊ตฌ๋
์ ๋ฑ๋กํ ์งํ, ์์ ์ฃผ์๋ฅผ ๋ฐ๊พผ ์งํ, ๋ฐฉํ๋ฒฝยท์ธ์ฆ์๋ฅผ ์๋ณธ ๋ค. **์๋ต์ ๋ฐ์ก ๊ฒฐ๊ณผ์ด์ง ์์ฒญ ์คํจ๊ฐ ์๋๋๋ค.** ์์ ์ธก์ด ๋ฐ์ง ๋ชปํด๋ HTTP `200` ์ `delivered: false` ๋ก ์ต๋๋ค โ `responseStatus`(์์ ์ธก ์ํ)์ `error`(์ฐ๊ฒฐ ๊ฑฐ๋ถยทํ์์์ยท TLS ์ค๋ฅ)๋ฅผ ๋ณด๊ณ ์์ธ์ ์ขํ์ธ์. ์ด ๋ฐ์ก์๋ ์ค์ ์ด๋ฒคํธ์ **๋๊ฐ์ ์๋ช
ํค๋**๊ฐ ์ค๋ฆฌ๋ฏ๋ก ๊ฒ์ฆ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์ํํ ์ ์์ต๋๋ค. `ping` ์ ๊ตฌ๋
๋ชฉ๋ก์ ๋ฃ์ ์ ์๋ ํ์
์ด๋, ์์ ์ธก์ด ๋ชจ๋ฅด๋ `eventType` ์ ๋ง๋๋ฉด ๋ฒ๋ฆฌ๋๋ก ์ง์ฌ ์๋ค๋ฉด ์ด ํ์ธ๋ง ์คํจํ ์ ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋ค์ ๋ณด๋ด๋ ค๋ฉด **์ ํค**๋ฅผ ์ฐ์ธ์ โ ๊ฐ์ ํค๋ 24์๊ฐ ๋์ ์ง์ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(์ฌ๋ฐ์กํ์ง ์์ต๋๋ค).
|
|
1942
|
+
* @summary ์นํ
์ฐ๊ฒฐ ํ์ธ ๋ฐ์ก
|
|
1943
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1944
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
1945
|
+
* @param {*} [options] Override http request option.
|
|
1946
|
+
* @throws {RequiredError}
|
|
1947
|
+
*/
|
|
1948
|
+
sendWebhookTestEvent(endpointId, idempotencyKey, options) {
|
|
1949
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1950
|
+
var _a, _b, _c;
|
|
1951
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.sendWebhookTestEvent(endpointId, idempotencyKey, options);
|
|
1952
|
+
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
1953
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerApiApi.sendWebhookTestEvent']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
1954
|
+
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1955
|
+
});
|
|
1956
|
+
},
|
|
1518
1957
|
/**
|
|
1519
1958
|
* ํ์๋ฐฉ์(NEGOTIATION/NEGOTIATION_AUTO) ๊ณต๊ณ ์ ์์ฐฐ์๋ณ ์ ์๋ฅผ ์
๋ ฅํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ๋์ฐฐ(`POST /v2/bids/{bidRef}/award`) ์ . ํ์๋ฐฉ์ ๊ณต๊ณ ๋ ์ด ํ๊ฐ๋ฅผ ์๋ฃํด์ผ ๋์ฐฐ์ ์ง์
ํ ์ ์์ต๋๋ค. **๋ถ์ํจ๊ณผ:** - ์์ฐฐ์๋ณ ๊ธฐ์ ์ ์(๋ฐ ์ ํ์ ๊ฐ๊ฒฉ์ ์ override)๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. - `complete=true` ๋ฉด ํ๊ฐ์๋ฃ ๊ฒ์ดํธ๊น์ง ์ ์ฉ๋ผ ๋์ฐฐ ์ง์
์ด ๊ฐ๋ฅํด์ง๋๋ค. **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋์ผ ํค + ๋์ผ body ์ฌ์ ์ก ์ 24์๊ฐ ๋ด ์บ์ ์๋ต ๋ฐํ.
|
|
1520
1959
|
* @summary ํ์ ์ ์ํ๊ฐ
|
|
@@ -1552,6 +1991,25 @@ const PartnerApiApiFp = function (configuration) {
|
|
|
1552
1991
|
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1553
1992
|
});
|
|
1554
1993
|
},
|
|
1994
|
+
/**
|
|
1995
|
+
* ์์ ์ฃผ์ยท๊ตฌ๋
์ด๋ฒคํธยท์ํ๋ฅผ ์์ ํฉ๋๋ค. ๋ณด๋ธ ํ๋๋ง ๋ฐ๋๋๋ค. **ํธ์ถ ์์ :** ์์ ์ฃผ์๊ฐ ๋ฐ๋์์ ๋, ๊ตฌ๋
์ด๋ฒคํธ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ๋, ์ฐ์ ์คํจ๋ก ์๋ ์ค์ง๋ ๊ตฌ๋
์ ๊ณ ์น ๋ค ๋์ด๋ฆด ๋(`{\"status\":\"ACTIVE\"}`). **`eventTypes` ๋ ์นํ์
๋๋ค** โ ๋ณด๋ธ ๋ชฉ๋ก์ด ๊ณง ์ ๊ตฌ๋
๋ชฉ๋ก์
๋๋ค. ํ๋๋ฅผ ๋ํ๋ ค๋ฉด ๊ธฐ์กด ๋ชฉ๋ก์ ๋ํ **์ ์ฒด**๋ฅผ ๋ณด๋ด์ธ์. **`If-Match` ๊ฐ ํ์์
๋๋ค.** ๋จผ์ `GET /v2/webhook-endpoints/{endpointId}` ๋ก ํ์ฌ `ETag` ๋ฅผ ๋ฐ์ ๊ทธ๋๋ก ์ค์ด ๋ณด๋ด์ธ์. ์ด ํค๋๊ฐ ์์ผ๋ฉด ๋ ์์ฒญ์ด ์์๊ฑฐ๋ ๋ค์๊ฑฐ๋ ํ๋ฉฐ ๋จผ์ ํ ์์ ์ ์กฐ์ฉํ ๋ฎ์ด์๋๋ค. - `428` โ ํค๋๋ฅผ ๋นผ๋จน์์ต๋๋ค. ์กฐํ ํ `ETag` ๋ฅผ ์ค์ด ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค. ๋ค์ ์กฐํํด ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. ์๋ฌด๊ฒ๋ ์์ ๋์ง ์์์ต๋๋ค. **์ํฌ๋ฆฟ์ ์ด ๊ฒฝ๋ก๋ก ๋ฐ๋์ง ์์ต๋๋ค** โ ์ฌ๋ฐ๊ธ์ `rotate-secret` ์
๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1996
|
+
* @summary ์นํ
๊ตฌ๋
์์
|
|
1997
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1998
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
1999
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2000
|
+
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
2001
|
+
* @param {*} [options] Override http request option.
|
|
2002
|
+
* @throws {RequiredError}
|
|
2003
|
+
*/
|
|
2004
|
+
updateWebhookEndpoint(endpointId, ifMatch, idempotencyKey, updateWebhookEndpointRequestDto, options) {
|
|
2005
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2006
|
+
var _a, _b, _c;
|
|
2007
|
+
const localVarAxiosArgs = yield localVarAxiosParamCreator.updateWebhookEndpoint(endpointId, ifMatch, idempotencyKey, updateWebhookEndpointRequestDto, options);
|
|
2008
|
+
const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
|
|
2009
|
+
const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerApiApi.updateWebhookEndpoint']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
|
|
2010
|
+
return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
2011
|
+
});
|
|
2012
|
+
},
|
|
1555
2013
|
/**
|
|
1556
2014
|
* **์ฒจ๋ถ ์
๋ก๋์ ๊ธฐ๋ณธ ๊ฒฝ๋ก์
๋๋ค. 23MB ์ดํ๋ฉด ์ด ํธ์ถ ํ๋๋ก ๋๋ฉ๋๋ค.** ํ์ผ ๋ณธ๋ฌธ์ `base64` ๋๋ `url` ์ค ์ ํํ ํ๋๋ก ์ ์ถํ๋ฉด `fileKey` ๋ฅผ ๋๋ ค์ค๋๋ค. ์ด ๊ฐ์ ๊ณต๊ณ ๋ฑ๋กยท์์ ์ ์ฒจ๋ถ ํ๋์ ์ค์ผ์ธ์. **23MB ๋ฅผ ๋์ผ๋ฉด ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ผ ํฉ๋๋ค.** ์ํ์ด ์
์ผ๋ก ๊ฐ๋ฆฝ๋๋ค. | ์ ์ถ ๋ฐฉ์ | ์ํ | ํธ์ถ ์ | | --- | --- | --- | | ์ด ํธ์ถ + `base64` | **23MB** (๋ณธ๋ฌธ์ด c-market ์ ํต๊ณผํ๋ฉฐ base64 ํฝ์ฐฝ 4/3 ์ด ์นํ) | 1 | | ์ด ํธ์ถ + `url` | **30MB** (c-market ์ด ๋์ ๋ด๋ ค๋ฐ์ ํฝ์ฐฝ์ ์์ง๋ง ์๋ฒ ๊ฒฝ์ ์ฒ์ฅ์ ๊ทธ๋๋ก) | 1 | | `POST /v2/files/upload-url` ๋ก ์์ํ๋ 2๋จ๊ณ | **100MB** (๋ฐ์ดํธ๊ฐ c-market ์ ์ง๋์ง ์์) | 2 + ์คํ ๋ฆฌ์ง PUT | c-market ์ด ๋ด๋ ค๋ฐ์ ์ ์๋ https ์ฃผ์์ ํ์ผ์ ์ฌ๋ ค ๋ ์ ์๋ค๋ฉด `url` ์ด 30MB ๊น์ง๋ฅผ 1์ฝ๋ก ๋ฎ์ต๋๋ค. ๊ทธ ์ด์์ด๊ฑฐ๋ ์ฃผ์๋ฅผ ์ด ์ ์์ผ๋ฉด 2๋จ๊ณ ๊ฒฝ๋ก๋ฅผ ์ฐ์ธ์. **๊ณต๊ณ ๋ฑ๋ก์ ํ์ผ์ ํจ๊ป ์ค์ ์๋ ์์ต๋๋ค.** `POST /v2/bids` ์ `attachments` ์์์ `{ fileName, url }`ยท`{ fileName, base64 }` ๋ฅผ ๊ทธ๋๋ก ๋ฃ์ผ๋ฉด ์ด ํธ์ถ ์์ด ํ ๋ฒ์ ๋๋ฉ๋๋ค. ์ฌ๋ฌ ๊ณต๊ณ ์ ๊ฐ์ ํ์ผ์ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ํฐ ํ์ผ์ ๋ค๋ฃฐ ๋๋ง `fileKey` ๋ฅผ ๋จผ์ ๋ง๋์ธ์. **ํ์ ์ค์ฝํ:** `files:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1557
2015
|
* @summary ๊ณต๊ณ ์ฒจ๋ถํ์ผ ์
๋ก๋ (๊ธฐ๋ณธ)
|
|
@@ -1658,6 +2116,29 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
1658
2116
|
createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options) {
|
|
1659
2117
|
return localVarFp.createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options).then((request) => request(axios, basePath));
|
|
1660
2118
|
},
|
|
2119
|
+
/**
|
|
2120
|
+
* ์์ ์ฃผ์์ ๊ตฌ๋
ํ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ด๊ธฐ 1ํ. ์์ ์ฃผ์๊ฐ ๋ฐ๋๋ฉด ์๋ก ๋ง๋ค์ง ๋ง๊ณ `PATCH` ๋ก ๊ณ ์น์ธ์ โ ๊ทธ๋์ผ ์ํฌ๋ฆฟ๊ณผ ์ ์ก ์ด๋ ฅ์ด ์ ์ง๋ฉ๋๋ค. **์๋ช
์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์๋ฒ๋ ํด์๋ง ๋ณด๊ดํ๋ฏ๋ก ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. ์๋ต์ `secret` ์ ์ฆ์ ์์ ํ ๊ณณ์ ๋ณด๊ดํ์ธ์. ์์ด๋ฒ๋ ธ๋ค๋ฉด ๋ณต๊ตฌ๊ฐ ์๋๋ผ `POST /v2/webhook-endpoints/{endpointId}/rotate-secret` ์ผ๋ก **์ฌ๋ฐ๊ธ**ํด์ผ ํฉ๋๋ค. **๊ฑฐ์ ๋๋ ๊ฒฝ์ฐ์ ๊ณ ์น๋ ๋ฒ:** - `400` โ `url` ์ด HTTPS ๊ฐ ์๋๊ฑฐ๋ ํ์์ด ์๋ชป๋จ, `eventTypes` ๊ฐ ๋น์๊ฑฐ๋ ๋ชฉ๋ก ๋ฐ ๊ฐ (`ping` ์ ๊ตฌ๋
๋ถ๊ฐ). ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. - `400` โ `Idempotency-Key` ํค๋ ๋๋ฝ/ํ์ ์ค๋ฅ. UUID v4 ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `403` โ ํ ํฐ์ `webhooks:write` ์ค์ฝํ๊ฐ ์์. ํค ๋ฐ๊ธ ์ค์ ์ ๋ํ์ผ ํฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
2121
|
+
* @summary ์นํ
๊ตฌ๋
๋ฑ๋ก
|
|
2122
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2123
|
+
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
2124
|
+
* @param {*} [options] Override http request option.
|
|
2125
|
+
* @throws {RequiredError}
|
|
2126
|
+
*/
|
|
2127
|
+
createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options) {
|
|
2128
|
+
return localVarFp.createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options).then((request) => request(axios, basePath));
|
|
2129
|
+
},
|
|
2130
|
+
/**
|
|
2131
|
+
* ๊ตฌ๋
์ ์ญ์ ํฉ๋๋ค. ์ดํ ๊ทธ ์ฃผ์๋ก๋ ์๋ฌด ์ด๋ฒคํธ๋ ๋ฐ์ก๋์ง ์์ต๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋์ ์ข
๋ฃํ ๋. ์ ์๋ง ๋ฉ์ถ๋ ค๋ฉด ์ญ์ ํ์ง ๋ง๊ณ `PATCH โฆ {\"status\":\"DISABLED\"}` ๋ฅผ ์ฐ์ธ์ โ ์ํฌ๋ฆฟ๊ณผ ์ด๋ฒคํธ ๊ตฌ์ฑ์ด ๋จ์ ๊ทธ๋๋ก ๋์ด๋ฆด ์ ์์ต๋๋ค. **๋๋๋ฆด ์ ์์ต๋๋ค.** ๋ค์ ๋ฑ๋กํ๋ฉด ์ ๊ตฌ๋
์ด๊ณ ์๋ช
์ํฌ๋ฆฟ๋ ์ ๊ฐ์
๋๋ค. **`If-Match` ๊ฐ ํ์์
๋๋ค.** `GET` ์ผ๋ก ๋ฐ์ `ETag` ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `428` โ ํค๋ ๋๋ฝ. ์กฐํ ํ ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค(๋๊ตฐ๊ฐ ์์ ํ๊ฑฐ๋ ๋ฐ์ก๊ธฐ๊ฐ ์ํ๋ฅผ ๋ด๋ ธ์ต๋๋ค). ๋ค์ ์กฐํํด ์ ๋ง ์ง์ธ ๋์์ด ๋ง๋์ง ํ์ธํ๊ณ ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2132
|
+
* @summary ์นํ
๊ตฌ๋
์ญ์
|
|
2133
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2134
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
2135
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2136
|
+
* @param {*} [options] Override http request option.
|
|
2137
|
+
* @throws {RequiredError}
|
|
2138
|
+
*/
|
|
2139
|
+
deleteWebhookEndpoint(endpointId, ifMatch, idempotencyKey, options) {
|
|
2140
|
+
return localVarFp.deleteWebhookEndpoint(endpointId, ifMatch, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2141
|
+
},
|
|
1661
2142
|
/**
|
|
1662
2143
|
* ๋ฌด์ธ์ฆ โ `fileKey` ์์ฒด๊ฐ capability ๋ค(ํค๋ฅผ ์๋ ์ชฝ์ด ๊ณง ์ ๊ทผ ๊ถํ์ ๊ฐ์ง๋ค). ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ์ด URL ์ ๊ฐ๋ฆฌํจ๋ค. ์์ฒญ ์์ ์ ์๋ช
ํ๋ฏ๋ก URL ์ ์ ์ฅํด ๋์ด๋ ๋ง๋ฃ๋์ง ์๋๋ค. ์๋ต์ ์ค์ ์ ์ฅ์ URL ๋ก์ 302 ๋ฆฌ๋ค์ด๋ ํธ์ด๋ฉฐ ๋ฆฌ๋ค์ด๋ ํธ ํ๊น์ 1์๊ฐ ๋ค ๋ง๋ฃ๋๋ฏ๋ก 302 ์์ฒด๋ฅผ ์บ์ํ์ง ๋ง ๊ฒ(`Cache-Control: no-store`). --- **์๋ต ํํ๊ฐ ๋๊ฒฐ๋ ํ๋ฉด์
๋๋ค.** ์ด๋ฏธ ์ฐ๋ ์ค์ธ ์์คํ
์ด ์์ด ์๋ต ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊พธ์ง ์์ต๋๋ค. ๋ค๋ฅธ `/v2` ์๋ํฌ์ธํธ์ ๋ฌ๋ฆฌ `{data,meta}` ๋ดํฌ๋ฅผ ์์ฐ์ง ์์ผ๋ฏ๋ก ์๋ต ๋ณธ๋ฌธ์ด ๊ณง ์ ์คํค๋ง์
๋๋ค. ์ง๊ธ ์ฐ๋ํ์
๋ ๊ณ์ ๋์ํฉ๋๋ค โ ๋ค๋ง ์ด ๊ฒฝ๋ก์ ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ง๋ ์์ต๋๋ค. **๋์ฒด ๊ณํ:** ์ด๋ฏธ ์์ต๋๋ค โ `GET /v2/files/{fileKey}` ๊ฐ ํ์ผ ๋ฉํ์ `downloadUrl` ์ v2 ์๋ต ๊ท์ฝ์ผ๋ก ๋๋ ค์ค๋๋ค. ์ด ์์ URL ์ ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ผ ๊ณ์ ์ ์ง๋๋ฉฐ ์ค๋จ ์ผ์ ์ ์์ต๋๋ค.
|
|
1663
2144
|
* @summary ํ์ผ ๋ค์ด๋ก๋
|
|
@@ -1729,6 +2210,16 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
1729
2210
|
getSupplierCardPayableV2(memberId, options) {
|
|
1730
2211
|
return localVarFp.getSupplierCardPayableV2(memberId, options).then((request) => request(axios, basePath));
|
|
1731
2212
|
},
|
|
2213
|
+
/**
|
|
2214
|
+
* ๊ตฌ๋
1๊ฑด์ ํ์ฌ ์ํ๋ฅผ ์กฐํํฉ๋๋ค. ์๋ช
์ํฌ๋ฆฟ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **์์ ยท์ญ์ ์ ์ ๋จผ์ ํธ์ถํ์ธ์.** ์๋ต ํค๋ `ETag` ๋ฅผ `If-Match` ์ ๊ทธ๋๋ก ์ค์ด์ผ `PATCH`/`DELETE` ๊ฐ ํต๊ณผํฉ๋๋ค. **`404`:** ์๋ ๊ตฌ๋
์ด๊ฑฐ๋ ๋ค๋ฅธ ํํธ๋ ํค์ ๊ตฌ๋
์
๋๋ค โ `endpointId` ๋ฅผ ํ์ธํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
2215
|
+
* @summary ์นํ
๊ตฌ๋
๋จ๊ฑด ์กฐํ
|
|
2216
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2217
|
+
* @param {*} [options] Override http request option.
|
|
2218
|
+
* @throws {RequiredError}
|
|
2219
|
+
*/
|
|
2220
|
+
getWebhookEndpoint(endpointId, options) {
|
|
2221
|
+
return localVarFp.getWebhookEndpoint(endpointId, options).then((request) => request(axios, basePath));
|
|
2222
|
+
},
|
|
1732
2223
|
/**
|
|
1733
2224
|
* ERP ์ฐ๋ ์ง์ ํ์ ยท์ธ์ฆ endpoint ๋์ ํ์ธ์ฉ.
|
|
1734
2225
|
* @summary Partner API ํฌ์ค์ฒดํฌ
|
|
@@ -1773,6 +2264,28 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
1773
2264
|
listExternalContractDocuments(buyerId, bidType, options) {
|
|
1774
2265
|
return localVarFp.listExternalContractDocuments(buyerId, bidType, options).then((request) => request(axios, basePath));
|
|
1775
2266
|
},
|
|
2267
|
+
/**
|
|
2268
|
+
* ์ด API ํค์ ์นํ
๋ฐ์ก ์๋๋ฅผ ์ต์ ์์ผ๋ก ์กฐํํฉ๋๋ค. ๋ณด๋ธ ๋ณธ๋ฌธยท์์ ์ธก ์๋ต ์ํยท ๋ค์ ์ฌ์๋ ์์ ์๊ฐ์ด ํจ๊ป ์ค๋ฆฝ๋๋ค. **ํธ์ถ ์์ :** - ์์ ์ธก ์ฅ์ ๋ก ๋์น ์ด๋ฒคํธ๋ฅผ ๋ฉ์ธ ๋. ์ด ์๋ํฌ์ธํธ๊ฐ ์นํ
์ **ํด๋ง ๋์ฒด ๊ฒฝ๋ก**์
๋๋ค โ `status=EXHAUSTED` ๋ก ๊ฑธ๋ฌ ๋ค์ ์ฒ๋ฆฌํ๋ฉด ๋ฉ๋๋ค. - \"์ด๋ฒคํธ๊ฐ ์ ์จ๋ค\" ๋ฅผ ์ง๋จํ ๋. ๋ฐ์ก ์๋ ์์ฒด๊ฐ ์๋์ง(๊ตฌ๋
ยท์ด๋ฒคํธ ํ์
๋ฌธ์ ), ์๋ํ์ง๋ง ์คํจํ๋์ง(`responseStatus`ยท`responseBodyExcerpt`)๋ฅผ ์ฌ๊ธฐ์ ๊ฐ๋ฆ
๋๋ค. **๊ฐ์ ์ด๋ฒคํธ๊ฐ ์ฌ๋ฌ ํ์ผ๋ก ๋ณด์
๋๋ค.** ์ฌ์๋๋ง๋ค ํ ํ์ด๋ฉฐ `eventId` ๊ฐ ๊ฐ๊ณ `attempt` ๋ง ์ฌ๋ผ๊ฐ๋๋ค. ์ฒ๋ฆฌ ์ฌ๋ถ๋ `eventId` ๊ธฐ์ค์ผ๋ก ํ๋จํ์ธ์. **ํ์ด์ง๋ค์ด์
:** `nextCursor` ๋ฅผ ๋ค์ ์์ฒญ์ `cursor` ๋ก ์ ๋ฌํฉ๋๋ค. null ์ด๋ฉด ๋ง์ง๋ง ํ์ด์ง์
๋๋ค. **`400`:** `status` ๊ฐ ํ์ฉ ๊ฐ ๋ฐ์ด๊ฑฐ๋ `limit` ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค โ ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
2269
|
+
* @summary ์นํ
์ ์ก ์ด๋ ฅ ์กฐํ
|
|
2270
|
+
* @param {string} [endpointId] ์ด ๊ตฌ๋
์ ์ ์ก๋ง ์กฐํํฉ๋๋ค. ๋ฏธ์ง์ ์ด๋ฉด ์ด ํค์ ๋ชจ๋ ๊ตฌ๋
์ ํจ๊ป ์กฐํํฉ๋๋ค.
|
|
2271
|
+
* @param {PartnerWebhookDeliveryStatus} [status] ์ ์ก ์ํ ํํฐ. ๋ฏธ์ง์ ์ด๋ฉด ์ ๋ถ.
|
|
2272
|
+
* @param {number} [limit] ํ์ด์ง ํฌ๊ธฐ(1~200, ๊ธฐ๋ณธ 50).
|
|
2273
|
+
* @param {string} [cursor] ๋ค์ ํ์ด์ง ์ปค์(๋ถํฌ๋ช
ํ ํฐ). ์ง์ ์๋ต์ `nextCursor` ๋ฅผ ๊ทธ๋๋ก ์ ๋ฌํฉ๋๋ค. ๋ฏธ์ง์ ์ ์ฒซ ํ์ด์ง.
|
|
2274
|
+
* @param {*} [options] Override http request option.
|
|
2275
|
+
* @throws {RequiredError}
|
|
2276
|
+
*/
|
|
2277
|
+
listWebhookDeliveries(endpointId, status, limit, cursor, options) {
|
|
2278
|
+
return localVarFp.listWebhookDeliveries(endpointId, status, limit, cursor, options).then((request) => request(axios, basePath));
|
|
2279
|
+
},
|
|
2280
|
+
/**
|
|
2281
|
+
* ์ด API ํค๊ฐ ๋ฑ๋กํ ์นํ
๊ตฌ๋
์ ๋ชจ๋ ์กฐํํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ํ๋ฅผ ์ ๊ฒํ ๋, ๋๋ ๋ฐ์ก์ด ๋ฉ์ถ ์ด์ (`status`ยท`consecutiveFailures`)๋ฅผ ํ์ธํ ๋. ์๋ช
์ํฌ๋ฆฟ์ ์ฌ๊ธฐ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:read` ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
2282
|
+
* @summary ์นํ
๊ตฌ๋
๋ชฉ๋ก ์กฐํ
|
|
2283
|
+
* @param {*} [options] Override http request option.
|
|
2284
|
+
* @throws {RequiredError}
|
|
2285
|
+
*/
|
|
2286
|
+
listWebhookEndpoints(options) {
|
|
2287
|
+
return localVarFp.listWebhookEndpoints(options).then((request) => request(axios, basePath));
|
|
2288
|
+
},
|
|
1776
2289
|
/**
|
|
1777
2290
|
* ๊ณต๊ณ ๋ฅผ ์ ์ฐฐ ์ํ๋ก ์ ํํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ์ ์ฐฐ ์ฌ์ ๊ฐ ํ์ ๋์์ ๋. ๊ณต๊ณ ๊ฐ ์
์ฐฐ์๋ฃ(๋ง๊ฐ) ์ํ์์ ํธ์ถํฉ๋๋ค. **๋ถ์ํจ๊ณผ:** - ๊ณต๊ณ ์ํ๊ฐ ์ ์ฐฐ(FAILED)๋ก ์ ํ๋ฉ๋๋ค. - ์ ์ฐฐ์ฌ์ ์ฝ๋์ ์์ธ๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. **์ ์ฐฐ์ฌ์ ๊ฐ ๋ชฉ๋ก(failureReasonCode โ ๊ณต๊ฐ๊ฐ):** | ๊ฐ | ์๋ฏธ | |------|------| | `ABOVE_TARGET_PRICE` | ์์ ๊ฐ๊ฒฉ ์ด๊ณผ | | `DEPT_MISMATCH` | ์๊ฒฉ ๋ฏธ๋ฌ | | `NEEDS_EXPERTISE` | ์ ๋ฌธ์ฑ ํ์ | | `OTHER` | ๊ธฐํ (`failureReasonDetail` ํ์) | | `NO_PARTICIPANT` | ์ฐธ๊ฐ์ ์์ | | `SINGLE_PARTICIPANT` | ๋จ๋
์ฐธ๊ฐ | | `LESS_THAN_TWO` | 2์ธ ๋ฏธ๋ง | | `BELOW_MINIMUM` | ์ต์ ๊ฐ ๋ฏธ๋ฌ | **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1778
2291
|
* @summary ์ ์ฐฐ ์ฒ๋ฆฌ
|
|
@@ -1843,6 +2356,28 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
1843
2356
|
revertAward(bidRef, idempotencyKey, revertAwardRequestDto, options) {
|
|
1844
2357
|
return localVarFp.revertAward(bidRef, idempotencyKey, revertAwardRequestDto, options).then((request) => request(axios, basePath));
|
|
1845
2358
|
},
|
|
2359
|
+
/**
|
|
2360
|
+
* ์๋ช
์ํฌ๋ฆฟ์ ์๋ก ๋ฐ๊ธํฉ๋๋ค. ์๋ต์ `secretVersion` ์ด 1 ์ฌ๋ผ๊ฐ๋๋ค. **ํธ์ถ ์์ :** ์ํฌ๋ฆฟ์ ๋ถ์คํ๊ฑฐ๋ ์ ์ถ์ด ์์ฌ๋ ๋, ๋๋ ์ฃผ๊ธฐ์ ๊ต์ฒด ์ ์ฑ
์ด ์์ ๋. **์ ์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. **์ ์ํฌ๋ฆฟ์ ์ฆ์ ๋ฌดํจ์
๋๋ค.** ์ ์ ๊ธฐ๊ฐ์ด ์์ผ๋ฏ๋ก, ์์ ์ธก์ด ์ ๊ฐ์ ๋ฐ์ํ๊ธฐ ์ ์ ๋์ฐฉํ ์ด๋ฒคํธ๋ ์๋ช
๊ฒ์ฆ์ ์คํจํฉ๋๋ค. ๋ฐฐํฌ ์์๋ฅผ ์ด๋ ๊ฒ ์ก์ผ์ธ์ โ โ ์์ ์ธก์ด ์ ๊ฐ๊ณผ ์ ๊ฐ์ **๋ ๋ค** ๋ฐ์๋ค์ด๋๋ก ๋ฐฐํฌ โ โก ์ด ์๋ํฌ์ธํธ ํธ์ถ โ โข ์๋ต์ ์ ๊ฐ์ ๋ฐ์ โ โฃ ์ ๊ฐ ์ ๊ฑฐ. ๊ฒ์ฆ ์คํจ๋ก non-2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์คํจ๋ก ์ง๊ณ๋์ด 20ํ ์ฐ์ ์ ๊ตฌ๋
์ด ์ค์ง๋ฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๊ฐ์ ํค๋ก ์ฌ์ ์กํ๋ฉด **์๋ก ๋ฐ๊ธํ์ง ์๊ณ ** ์ฒ์ ๋ฐ๊ธํ ๊ฐ์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(24์๊ฐ) โ ๋คํธ์ํฌ ์ค๋ฅ๋ก ์๋ต์ ๋์ณค์ ๋ ๊ฐ์ ํค๋ก ๋ค์ ๋ถ๋ฅด์ธ์.
|
|
2361
|
+
* @summary ์นํ
์๋ช
์ํฌ๋ฆฟ ์ฌ๋ฐ๊ธ
|
|
2362
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2363
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2364
|
+
* @param {*} [options] Override http request option.
|
|
2365
|
+
* @throws {RequiredError}
|
|
2366
|
+
*/
|
|
2367
|
+
rotateWebhookSecret(endpointId, idempotencyKey, options) {
|
|
2368
|
+
return localVarFp.rotateWebhookSecret(endpointId, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2369
|
+
},
|
|
2370
|
+
/**
|
|
2371
|
+
* ๋ฑ๋ก๋ ์ฃผ์๋ก `ping` ์ด๋ฒคํธ๋ฅผ ์ฆ์ 1ํ ๋ณด๋ด๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค์ค๋๋ค. **ํธ์ถ ์์ :** ๊ตฌ๋
์ ๋ฑ๋กํ ์งํ, ์์ ์ฃผ์๋ฅผ ๋ฐ๊พผ ์งํ, ๋ฐฉํ๋ฒฝยท์ธ์ฆ์๋ฅผ ์๋ณธ ๋ค. **์๋ต์ ๋ฐ์ก ๊ฒฐ๊ณผ์ด์ง ์์ฒญ ์คํจ๊ฐ ์๋๋๋ค.** ์์ ์ธก์ด ๋ฐ์ง ๋ชปํด๋ HTTP `200` ์ `delivered: false` ๋ก ์ต๋๋ค โ `responseStatus`(์์ ์ธก ์ํ)์ `error`(์ฐ๊ฒฐ ๊ฑฐ๋ถยทํ์์์ยท TLS ์ค๋ฅ)๋ฅผ ๋ณด๊ณ ์์ธ์ ์ขํ์ธ์. ์ด ๋ฐ์ก์๋ ์ค์ ์ด๋ฒคํธ์ **๋๊ฐ์ ์๋ช
ํค๋**๊ฐ ์ค๋ฆฌ๋ฏ๋ก ๊ฒ์ฆ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์ํํ ์ ์์ต๋๋ค. `ping` ์ ๊ตฌ๋
๋ชฉ๋ก์ ๋ฃ์ ์ ์๋ ํ์
์ด๋, ์์ ์ธก์ด ๋ชจ๋ฅด๋ `eventType` ์ ๋ง๋๋ฉด ๋ฒ๋ฆฌ๋๋ก ์ง์ฌ ์๋ค๋ฉด ์ด ํ์ธ๋ง ์คํจํ ์ ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋ค์ ๋ณด๋ด๋ ค๋ฉด **์ ํค**๋ฅผ ์ฐ์ธ์ โ ๊ฐ์ ํค๋ 24์๊ฐ ๋์ ์ง์ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(์ฌ๋ฐ์กํ์ง ์์ต๋๋ค).
|
|
2372
|
+
* @summary ์นํ
์ฐ๊ฒฐ ํ์ธ ๋ฐ์ก
|
|
2373
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2374
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2375
|
+
* @param {*} [options] Override http request option.
|
|
2376
|
+
* @throws {RequiredError}
|
|
2377
|
+
*/
|
|
2378
|
+
sendWebhookTestEvent(endpointId, idempotencyKey, options) {
|
|
2379
|
+
return localVarFp.sendWebhookTestEvent(endpointId, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2380
|
+
},
|
|
1846
2381
|
/**
|
|
1847
2382
|
* ํ์๋ฐฉ์(NEGOTIATION/NEGOTIATION_AUTO) ๊ณต๊ณ ์ ์์ฐฐ์๋ณ ์ ์๋ฅผ ์
๋ ฅํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ๋์ฐฐ(`POST /v2/bids/{bidRef}/award`) ์ . ํ์๋ฐฉ์ ๊ณต๊ณ ๋ ์ด ํ๊ฐ๋ฅผ ์๋ฃํด์ผ ๋์ฐฐ์ ์ง์
ํ ์ ์์ต๋๋ค. **๋ถ์ํจ๊ณผ:** - ์์ฐฐ์๋ณ ๊ธฐ์ ์ ์(๋ฐ ์ ํ์ ๊ฐ๊ฒฉ์ ์ override)๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. - `complete=true` ๋ฉด ํ๊ฐ์๋ฃ ๊ฒ์ดํธ๊น์ง ์ ์ฉ๋ผ ๋์ฐฐ ์ง์
์ด ๊ฐ๋ฅํด์ง๋๋ค. **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋์ผ ํค + ๋์ผ body ์ฌ์ ์ก ์ 24์๊ฐ ๋ด ์บ์ ์๋ต ๋ฐํ.
|
|
1848
2383
|
* @summary ํ์ ์ ์ํ๊ฐ
|
|
@@ -1868,6 +2403,19 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
|
|
|
1868
2403
|
updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options) {
|
|
1869
2404
|
return localVarFp.updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options).then((request) => request(axios, basePath));
|
|
1870
2405
|
},
|
|
2406
|
+
/**
|
|
2407
|
+
* ์์ ์ฃผ์ยท๊ตฌ๋
์ด๋ฒคํธยท์ํ๋ฅผ ์์ ํฉ๋๋ค. ๋ณด๋ธ ํ๋๋ง ๋ฐ๋๋๋ค. **ํธ์ถ ์์ :** ์์ ์ฃผ์๊ฐ ๋ฐ๋์์ ๋, ๊ตฌ๋
์ด๋ฒคํธ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ๋, ์ฐ์ ์คํจ๋ก ์๋ ์ค์ง๋ ๊ตฌ๋
์ ๊ณ ์น ๋ค ๋์ด๋ฆด ๋(`{\"status\":\"ACTIVE\"}`). **`eventTypes` ๋ ์นํ์
๋๋ค** โ ๋ณด๋ธ ๋ชฉ๋ก์ด ๊ณง ์ ๊ตฌ๋
๋ชฉ๋ก์
๋๋ค. ํ๋๋ฅผ ๋ํ๋ ค๋ฉด ๊ธฐ์กด ๋ชฉ๋ก์ ๋ํ **์ ์ฒด**๋ฅผ ๋ณด๋ด์ธ์. **`If-Match` ๊ฐ ํ์์
๋๋ค.** ๋จผ์ `GET /v2/webhook-endpoints/{endpointId}` ๋ก ํ์ฌ `ETag` ๋ฅผ ๋ฐ์ ๊ทธ๋๋ก ์ค์ด ๋ณด๋ด์ธ์. ์ด ํค๋๊ฐ ์์ผ๋ฉด ๋ ์์ฒญ์ด ์์๊ฑฐ๋ ๋ค์๊ฑฐ๋ ํ๋ฉฐ ๋จผ์ ํ ์์ ์ ์กฐ์ฉํ ๋ฎ์ด์๋๋ค. - `428` โ ํค๋๋ฅผ ๋นผ๋จน์์ต๋๋ค. ์กฐํ ํ `ETag` ๋ฅผ ์ค์ด ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค. ๋ค์ ์กฐํํด ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. ์๋ฌด๊ฒ๋ ์์ ๋์ง ์์์ต๋๋ค. **์ํฌ๋ฆฟ์ ์ด ๊ฒฝ๋ก๋ก ๋ฐ๋์ง ์์ต๋๋ค** โ ์ฌ๋ฐ๊ธ์ `rotate-secret` ์
๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2408
|
+
* @summary ์นํ
๊ตฌ๋
์์
|
|
2409
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2410
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
2411
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2412
|
+
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
2413
|
+
* @param {*} [options] Override http request option.
|
|
2414
|
+
* @throws {RequiredError}
|
|
2415
|
+
*/
|
|
2416
|
+
updateWebhookEndpoint(endpointId, ifMatch, idempotencyKey, updateWebhookEndpointRequestDto, options) {
|
|
2417
|
+
return localVarFp.updateWebhookEndpoint(endpointId, ifMatch, idempotencyKey, updateWebhookEndpointRequestDto, options).then((request) => request(axios, basePath));
|
|
2418
|
+
},
|
|
1871
2419
|
/**
|
|
1872
2420
|
* **์ฒจ๋ถ ์
๋ก๋์ ๊ธฐ๋ณธ ๊ฒฝ๋ก์
๋๋ค. 23MB ์ดํ๋ฉด ์ด ํธ์ถ ํ๋๋ก ๋๋ฉ๋๋ค.** ํ์ผ ๋ณธ๋ฌธ์ `base64` ๋๋ `url` ์ค ์ ํํ ํ๋๋ก ์ ์ถํ๋ฉด `fileKey` ๋ฅผ ๋๋ ค์ค๋๋ค. ์ด ๊ฐ์ ๊ณต๊ณ ๋ฑ๋กยท์์ ์ ์ฒจ๋ถ ํ๋์ ์ค์ผ์ธ์. **23MB ๋ฅผ ๋์ผ๋ฉด ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ผ ํฉ๋๋ค.** ์ํ์ด ์
์ผ๋ก ๊ฐ๋ฆฝ๋๋ค. | ์ ์ถ ๋ฐฉ์ | ์ํ | ํธ์ถ ์ | | --- | --- | --- | | ์ด ํธ์ถ + `base64` | **23MB** (๋ณธ๋ฌธ์ด c-market ์ ํต๊ณผํ๋ฉฐ base64 ํฝ์ฐฝ 4/3 ์ด ์นํ) | 1 | | ์ด ํธ์ถ + `url` | **30MB** (c-market ์ด ๋์ ๋ด๋ ค๋ฐ์ ํฝ์ฐฝ์ ์์ง๋ง ์๋ฒ ๊ฒฝ์ ์ฒ์ฅ์ ๊ทธ๋๋ก) | 1 | | `POST /v2/files/upload-url` ๋ก ์์ํ๋ 2๋จ๊ณ | **100MB** (๋ฐ์ดํธ๊ฐ c-market ์ ์ง๋์ง ์์) | 2 + ์คํ ๋ฆฌ์ง PUT | c-market ์ด ๋ด๋ ค๋ฐ์ ์ ์๋ https ์ฃผ์์ ํ์ผ์ ์ฌ๋ ค ๋ ์ ์๋ค๋ฉด `url` ์ด 30MB ๊น์ง๋ฅผ 1์ฝ๋ก ๋ฎ์ต๋๋ค. ๊ทธ ์ด์์ด๊ฑฐ๋ ์ฃผ์๋ฅผ ์ด ์ ์์ผ๋ฉด 2๋จ๊ณ ๊ฒฝ๋ก๋ฅผ ์ฐ์ธ์. **๊ณต๊ณ ๋ฑ๋ก์ ํ์ผ์ ํจ๊ป ์ค์ ์๋ ์์ต๋๋ค.** `POST /v2/bids` ์ `attachments` ์์์ `{ fileName, url }`ยท`{ fileName, base64 }` ๋ฅผ ๊ทธ๋๋ก ๋ฃ์ผ๋ฉด ์ด ํธ์ถ ์์ด ํ ๋ฒ์ ๋๋ฉ๋๋ค. ์ฌ๋ฌ ๊ณต๊ณ ์ ๊ฐ์ ํ์ผ์ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ํฐ ํ์ผ์ ๋ค๋ฃฐ ๋๋ง `fileKey` ๋ฅผ ๋จผ์ ๋ง๋์ธ์. **ํ์ ์ค์ฝํ:** `files:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1873
2421
|
* @summary ๊ณต๊ณ ์ฒจ๋ถํ์ผ ์
๋ก๋ (๊ธฐ๋ณธ)
|
|
@@ -1966,6 +2514,29 @@ class PartnerApiApi extends base_1.BaseAPI {
|
|
|
1966
2514
|
createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options) {
|
|
1967
2515
|
return (0, exports.PartnerApiApiFp)(this.configuration).createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
1968
2516
|
}
|
|
2517
|
+
/**
|
|
2518
|
+
* ์์ ์ฃผ์์ ๊ตฌ๋
ํ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ด๊ธฐ 1ํ. ์์ ์ฃผ์๊ฐ ๋ฐ๋๋ฉด ์๋ก ๋ง๋ค์ง ๋ง๊ณ `PATCH` ๋ก ๊ณ ์น์ธ์ โ ๊ทธ๋์ผ ์ํฌ๋ฆฟ๊ณผ ์ ์ก ์ด๋ ฅ์ด ์ ์ง๋ฉ๋๋ค. **์๋ช
์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์๋ฒ๋ ํด์๋ง ๋ณด๊ดํ๋ฏ๋ก ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. ์๋ต์ `secret` ์ ์ฆ์ ์์ ํ ๊ณณ์ ๋ณด๊ดํ์ธ์. ์์ด๋ฒ๋ ธ๋ค๋ฉด ๋ณต๊ตฌ๊ฐ ์๋๋ผ `POST /v2/webhook-endpoints/{endpointId}/rotate-secret` ์ผ๋ก **์ฌ๋ฐ๊ธ**ํด์ผ ํฉ๋๋ค. **๊ฑฐ์ ๋๋ ๊ฒฝ์ฐ์ ๊ณ ์น๋ ๋ฒ:** - `400` โ `url` ์ด HTTPS ๊ฐ ์๋๊ฑฐ๋ ํ์์ด ์๋ชป๋จ, `eventTypes` ๊ฐ ๋น์๊ฑฐ๋ ๋ชฉ๋ก ๋ฐ ๊ฐ (`ping` ์ ๊ตฌ๋
๋ถ๊ฐ). ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. - `400` โ `Idempotency-Key` ํค๋ ๋๋ฝ/ํ์ ์ค๋ฅ. UUID v4 ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `403` โ ํ ํฐ์ `webhooks:write` ์ค์ฝํ๊ฐ ์์. ํค ๋ฐ๊ธ ์ค์ ์ ๋ํ์ผ ํฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
2519
|
+
* @summary ์นํ
๊ตฌ๋
๋ฑ๋ก
|
|
2520
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2521
|
+
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
2522
|
+
* @param {*} [options] Override http request option.
|
|
2523
|
+
* @throws {RequiredError}
|
|
2524
|
+
*/
|
|
2525
|
+
createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options) {
|
|
2526
|
+
return (0, exports.PartnerApiApiFp)(this.configuration).createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2527
|
+
}
|
|
2528
|
+
/**
|
|
2529
|
+
* ๊ตฌ๋
์ ์ญ์ ํฉ๋๋ค. ์ดํ ๊ทธ ์ฃผ์๋ก๋ ์๋ฌด ์ด๋ฒคํธ๋ ๋ฐ์ก๋์ง ์์ต๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋์ ์ข
๋ฃํ ๋. ์ ์๋ง ๋ฉ์ถ๋ ค๋ฉด ์ญ์ ํ์ง ๋ง๊ณ `PATCH โฆ {\"status\":\"DISABLED\"}` ๋ฅผ ์ฐ์ธ์ โ ์ํฌ๋ฆฟ๊ณผ ์ด๋ฒคํธ ๊ตฌ์ฑ์ด ๋จ์ ๊ทธ๋๋ก ๋์ด๋ฆด ์ ์์ต๋๋ค. **๋๋๋ฆด ์ ์์ต๋๋ค.** ๋ค์ ๋ฑ๋กํ๋ฉด ์ ๊ตฌ๋
์ด๊ณ ์๋ช
์ํฌ๋ฆฟ๋ ์ ๊ฐ์
๋๋ค. **`If-Match` ๊ฐ ํ์์
๋๋ค.** `GET` ์ผ๋ก ๋ฐ์ `ETag` ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `428` โ ํค๋ ๋๋ฝ. ์กฐํ ํ ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค(๋๊ตฐ๊ฐ ์์ ํ๊ฑฐ๋ ๋ฐ์ก๊ธฐ๊ฐ ์ํ๋ฅผ ๋ด๋ ธ์ต๋๋ค). ๋ค์ ์กฐํํด ์ ๋ง ์ง์ธ ๋์์ด ๋ง๋์ง ํ์ธํ๊ณ ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2530
|
+
* @summary ์นํ
๊ตฌ๋
์ญ์
|
|
2531
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2532
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
2533
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2534
|
+
* @param {*} [options] Override http request option.
|
|
2535
|
+
* @throws {RequiredError}
|
|
2536
|
+
*/
|
|
2537
|
+
deleteWebhookEndpoint(endpointId, ifMatch, idempotencyKey, options) {
|
|
2538
|
+
return (0, exports.PartnerApiApiFp)(this.configuration).deleteWebhookEndpoint(endpointId, ifMatch, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2539
|
+
}
|
|
1969
2540
|
/**
|
|
1970
2541
|
* ๋ฌด์ธ์ฆ โ `fileKey` ์์ฒด๊ฐ capability ๋ค(ํค๋ฅผ ์๋ ์ชฝ์ด ๊ณง ์ ๊ทผ ๊ถํ์ ๊ฐ์ง๋ค). ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ์ด URL ์ ๊ฐ๋ฆฌํจ๋ค. ์์ฒญ ์์ ์ ์๋ช
ํ๋ฏ๋ก URL ์ ์ ์ฅํด ๋์ด๋ ๋ง๋ฃ๋์ง ์๋๋ค. ์๋ต์ ์ค์ ์ ์ฅ์ URL ๋ก์ 302 ๋ฆฌ๋ค์ด๋ ํธ์ด๋ฉฐ ๋ฆฌ๋ค์ด๋ ํธ ํ๊น์ 1์๊ฐ ๋ค ๋ง๋ฃ๋๋ฏ๋ก 302 ์์ฒด๋ฅผ ์บ์ํ์ง ๋ง ๊ฒ(`Cache-Control: no-store`). --- **์๋ต ํํ๊ฐ ๋๊ฒฐ๋ ํ๋ฉด์
๋๋ค.** ์ด๋ฏธ ์ฐ๋ ์ค์ธ ์์คํ
์ด ์์ด ์๋ต ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊พธ์ง ์์ต๋๋ค. ๋ค๋ฅธ `/v2` ์๋ํฌ์ธํธ์ ๋ฌ๋ฆฌ `{data,meta}` ๋ดํฌ๋ฅผ ์์ฐ์ง ์์ผ๋ฏ๋ก ์๋ต ๋ณธ๋ฌธ์ด ๊ณง ์ ์คํค๋ง์
๋๋ค. ์ง๊ธ ์ฐ๋ํ์
๋ ๊ณ์ ๋์ํฉ๋๋ค โ ๋ค๋ง ์ด ๊ฒฝ๋ก์ ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ง๋ ์์ต๋๋ค. **๋์ฒด ๊ณํ:** ์ด๋ฏธ ์์ต๋๋ค โ `GET /v2/files/{fileKey}` ๊ฐ ํ์ผ ๋ฉํ์ `downloadUrl` ์ v2 ์๋ต ๊ท์ฝ์ผ๋ก ๋๋ ค์ค๋๋ค. ์ด ์์ URL ์ ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ผ ๊ณ์ ์ ์ง๋๋ฉฐ ์ค๋จ ์ผ์ ์ ์์ต๋๋ค.
|
|
1971
2542
|
* @summary ํ์ผ ๋ค์ด๋ก๋
|
|
@@ -2037,6 +2608,16 @@ class PartnerApiApi extends base_1.BaseAPI {
|
|
|
2037
2608
|
getSupplierCardPayableV2(memberId, options) {
|
|
2038
2609
|
return (0, exports.PartnerApiApiFp)(this.configuration).getSupplierCardPayableV2(memberId, options).then((request) => request(this.axios, this.basePath));
|
|
2039
2610
|
}
|
|
2611
|
+
/**
|
|
2612
|
+
* ๊ตฌ๋
1๊ฑด์ ํ์ฌ ์ํ๋ฅผ ์กฐํํฉ๋๋ค. ์๋ช
์ํฌ๋ฆฟ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **์์ ยท์ญ์ ์ ์ ๋จผ์ ํธ์ถํ์ธ์.** ์๋ต ํค๋ `ETag` ๋ฅผ `If-Match` ์ ๊ทธ๋๋ก ์ค์ด์ผ `PATCH`/`DELETE` ๊ฐ ํต๊ณผํฉ๋๋ค. **`404`:** ์๋ ๊ตฌ๋
์ด๊ฑฐ๋ ๋ค๋ฅธ ํํธ๋ ํค์ ๊ตฌ๋
์
๋๋ค โ `endpointId` ๋ฅผ ํ์ธํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
2613
|
+
* @summary ์นํ
๊ตฌ๋
๋จ๊ฑด ์กฐํ
|
|
2614
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2615
|
+
* @param {*} [options] Override http request option.
|
|
2616
|
+
* @throws {RequiredError}
|
|
2617
|
+
*/
|
|
2618
|
+
getWebhookEndpoint(endpointId, options) {
|
|
2619
|
+
return (0, exports.PartnerApiApiFp)(this.configuration).getWebhookEndpoint(endpointId, options).then((request) => request(this.axios, this.basePath));
|
|
2620
|
+
}
|
|
2040
2621
|
/**
|
|
2041
2622
|
* ERP ์ฐ๋ ์ง์ ํ์ ยท์ธ์ฆ endpoint ๋์ ํ์ธ์ฉ.
|
|
2042
2623
|
* @summary Partner API ํฌ์ค์ฒดํฌ
|
|
@@ -2081,6 +2662,28 @@ class PartnerApiApi extends base_1.BaseAPI {
|
|
|
2081
2662
|
listExternalContractDocuments(buyerId, bidType, options) {
|
|
2082
2663
|
return (0, exports.PartnerApiApiFp)(this.configuration).listExternalContractDocuments(buyerId, bidType, options).then((request) => request(this.axios, this.basePath));
|
|
2083
2664
|
}
|
|
2665
|
+
/**
|
|
2666
|
+
* ์ด API ํค์ ์นํ
๋ฐ์ก ์๋๋ฅผ ์ต์ ์์ผ๋ก ์กฐํํฉ๋๋ค. ๋ณด๋ธ ๋ณธ๋ฌธยท์์ ์ธก ์๋ต ์ํยท ๋ค์ ์ฌ์๋ ์์ ์๊ฐ์ด ํจ๊ป ์ค๋ฆฝ๋๋ค. **ํธ์ถ ์์ :** - ์์ ์ธก ์ฅ์ ๋ก ๋์น ์ด๋ฒคํธ๋ฅผ ๋ฉ์ธ ๋. ์ด ์๋ํฌ์ธํธ๊ฐ ์นํ
์ **ํด๋ง ๋์ฒด ๊ฒฝ๋ก**์
๋๋ค โ `status=EXHAUSTED` ๋ก ๊ฑธ๋ฌ ๋ค์ ์ฒ๋ฆฌํ๋ฉด ๋ฉ๋๋ค. - \"์ด๋ฒคํธ๊ฐ ์ ์จ๋ค\" ๋ฅผ ์ง๋จํ ๋. ๋ฐ์ก ์๋ ์์ฒด๊ฐ ์๋์ง(๊ตฌ๋
ยท์ด๋ฒคํธ ํ์
๋ฌธ์ ), ์๋ํ์ง๋ง ์คํจํ๋์ง(`responseStatus`ยท`responseBodyExcerpt`)๋ฅผ ์ฌ๊ธฐ์ ๊ฐ๋ฆ
๋๋ค. **๊ฐ์ ์ด๋ฒคํธ๊ฐ ์ฌ๋ฌ ํ์ผ๋ก ๋ณด์
๋๋ค.** ์ฌ์๋๋ง๋ค ํ ํ์ด๋ฉฐ `eventId` ๊ฐ ๊ฐ๊ณ `attempt` ๋ง ์ฌ๋ผ๊ฐ๋๋ค. ์ฒ๋ฆฌ ์ฌ๋ถ๋ `eventId` ๊ธฐ์ค์ผ๋ก ํ๋จํ์ธ์. **ํ์ด์ง๋ค์ด์
:** `nextCursor` ๋ฅผ ๋ค์ ์์ฒญ์ `cursor` ๋ก ์ ๋ฌํฉ๋๋ค. null ์ด๋ฉด ๋ง์ง๋ง ํ์ด์ง์
๋๋ค. **`400`:** `status` ๊ฐ ํ์ฉ ๊ฐ ๋ฐ์ด๊ฑฐ๋ `limit` ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค โ ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
2667
|
+
* @summary ์นํ
์ ์ก ์ด๋ ฅ ์กฐํ
|
|
2668
|
+
* @param {string} [endpointId] ์ด ๊ตฌ๋
์ ์ ์ก๋ง ์กฐํํฉ๋๋ค. ๋ฏธ์ง์ ์ด๋ฉด ์ด ํค์ ๋ชจ๋ ๊ตฌ๋
์ ํจ๊ป ์กฐํํฉ๋๋ค.
|
|
2669
|
+
* @param {PartnerWebhookDeliveryStatus} [status] ์ ์ก ์ํ ํํฐ. ๋ฏธ์ง์ ์ด๋ฉด ์ ๋ถ.
|
|
2670
|
+
* @param {number} [limit] ํ์ด์ง ํฌ๊ธฐ(1~200, ๊ธฐ๋ณธ 50).
|
|
2671
|
+
* @param {string} [cursor] ๋ค์ ํ์ด์ง ์ปค์(๋ถํฌ๋ช
ํ ํฐ). ์ง์ ์๋ต์ `nextCursor` ๋ฅผ ๊ทธ๋๋ก ์ ๋ฌํฉ๋๋ค. ๋ฏธ์ง์ ์ ์ฒซ ํ์ด์ง.
|
|
2672
|
+
* @param {*} [options] Override http request option.
|
|
2673
|
+
* @throws {RequiredError}
|
|
2674
|
+
*/
|
|
2675
|
+
listWebhookDeliveries(endpointId, status, limit, cursor, options) {
|
|
2676
|
+
return (0, exports.PartnerApiApiFp)(this.configuration).listWebhookDeliveries(endpointId, status, limit, cursor, options).then((request) => request(this.axios, this.basePath));
|
|
2677
|
+
}
|
|
2678
|
+
/**
|
|
2679
|
+
* ์ด API ํค๊ฐ ๋ฑ๋กํ ์นํ
๊ตฌ๋
์ ๋ชจ๋ ์กฐํํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ํ๋ฅผ ์ ๊ฒํ ๋, ๋๋ ๋ฐ์ก์ด ๋ฉ์ถ ์ด์ (`status`ยท`consecutiveFailures`)๋ฅผ ํ์ธํ ๋. ์๋ช
์ํฌ๋ฆฟ์ ์ฌ๊ธฐ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:read` ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
2680
|
+
* @summary ์นํ
๊ตฌ๋
๋ชฉ๋ก ์กฐํ
|
|
2681
|
+
* @param {*} [options] Override http request option.
|
|
2682
|
+
* @throws {RequiredError}
|
|
2683
|
+
*/
|
|
2684
|
+
listWebhookEndpoints(options) {
|
|
2685
|
+
return (0, exports.PartnerApiApiFp)(this.configuration).listWebhookEndpoints(options).then((request) => request(this.axios, this.basePath));
|
|
2686
|
+
}
|
|
2084
2687
|
/**
|
|
2085
2688
|
* ๊ณต๊ณ ๋ฅผ ์ ์ฐฐ ์ํ๋ก ์ ํํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ์ ์ฐฐ ์ฌ์ ๊ฐ ํ์ ๋์์ ๋. ๊ณต๊ณ ๊ฐ ์
์ฐฐ์๋ฃ(๋ง๊ฐ) ์ํ์์ ํธ์ถํฉ๋๋ค. **๋ถ์ํจ๊ณผ:** - ๊ณต๊ณ ์ํ๊ฐ ์ ์ฐฐ(FAILED)๋ก ์ ํ๋ฉ๋๋ค. - ์ ์ฐฐ์ฌ์ ์ฝ๋์ ์์ธ๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. **์ ์ฐฐ์ฌ์ ๊ฐ ๋ชฉ๋ก(failureReasonCode โ ๊ณต๊ฐ๊ฐ):** | ๊ฐ | ์๋ฏธ | |------|------| | `ABOVE_TARGET_PRICE` | ์์ ๊ฐ๊ฒฉ ์ด๊ณผ | | `DEPT_MISMATCH` | ์๊ฒฉ ๋ฏธ๋ฌ | | `NEEDS_EXPERTISE` | ์ ๋ฌธ์ฑ ํ์ | | `OTHER` | ๊ธฐํ (`failureReasonDetail` ํ์) | | `NO_PARTICIPANT` | ์ฐธ๊ฐ์ ์์ | | `SINGLE_PARTICIPANT` | ๋จ๋
์ฐธ๊ฐ | | `LESS_THAN_TWO` | 2์ธ ๋ฏธ๋ง | | `BELOW_MINIMUM` | ์ต์ ๊ฐ ๋ฏธ๋ฌ | **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2086
2689
|
* @summary ์ ์ฐฐ ์ฒ๋ฆฌ
|
|
@@ -2151,6 +2754,28 @@ class PartnerApiApi extends base_1.BaseAPI {
|
|
|
2151
2754
|
revertAward(bidRef, idempotencyKey, revertAwardRequestDto, options) {
|
|
2152
2755
|
return (0, exports.PartnerApiApiFp)(this.configuration).revertAward(bidRef, idempotencyKey, revertAwardRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2153
2756
|
}
|
|
2757
|
+
/**
|
|
2758
|
+
* ์๋ช
์ํฌ๋ฆฟ์ ์๋ก ๋ฐ๊ธํฉ๋๋ค. ์๋ต์ `secretVersion` ์ด 1 ์ฌ๋ผ๊ฐ๋๋ค. **ํธ์ถ ์์ :** ์ํฌ๋ฆฟ์ ๋ถ์คํ๊ฑฐ๋ ์ ์ถ์ด ์์ฌ๋ ๋, ๋๋ ์ฃผ๊ธฐ์ ๊ต์ฒด ์ ์ฑ
์ด ์์ ๋. **์ ์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. **์ ์ํฌ๋ฆฟ์ ์ฆ์ ๋ฌดํจ์
๋๋ค.** ์ ์ ๊ธฐ๊ฐ์ด ์์ผ๋ฏ๋ก, ์์ ์ธก์ด ์ ๊ฐ์ ๋ฐ์ํ๊ธฐ ์ ์ ๋์ฐฉํ ์ด๋ฒคํธ๋ ์๋ช
๊ฒ์ฆ์ ์คํจํฉ๋๋ค. ๋ฐฐํฌ ์์๋ฅผ ์ด๋ ๊ฒ ์ก์ผ์ธ์ โ โ ์์ ์ธก์ด ์ ๊ฐ๊ณผ ์ ๊ฐ์ **๋ ๋ค** ๋ฐ์๋ค์ด๋๋ก ๋ฐฐํฌ โ โก ์ด ์๋ํฌ์ธํธ ํธ์ถ โ โข ์๋ต์ ์ ๊ฐ์ ๋ฐ์ โ โฃ ์ ๊ฐ ์ ๊ฑฐ. ๊ฒ์ฆ ์คํจ๋ก non-2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์คํจ๋ก ์ง๊ณ๋์ด 20ํ ์ฐ์ ์ ๊ตฌ๋
์ด ์ค์ง๋ฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๊ฐ์ ํค๋ก ์ฌ์ ์กํ๋ฉด **์๋ก ๋ฐ๊ธํ์ง ์๊ณ ** ์ฒ์ ๋ฐ๊ธํ ๊ฐ์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(24์๊ฐ) โ ๋คํธ์ํฌ ์ค๋ฅ๋ก ์๋ต์ ๋์ณค์ ๋ ๊ฐ์ ํค๋ก ๋ค์ ๋ถ๋ฅด์ธ์.
|
|
2759
|
+
* @summary ์นํ
์๋ช
์ํฌ๋ฆฟ ์ฌ๋ฐ๊ธ
|
|
2760
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2761
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2762
|
+
* @param {*} [options] Override http request option.
|
|
2763
|
+
* @throws {RequiredError}
|
|
2764
|
+
*/
|
|
2765
|
+
rotateWebhookSecret(endpointId, idempotencyKey, options) {
|
|
2766
|
+
return (0, exports.PartnerApiApiFp)(this.configuration).rotateWebhookSecret(endpointId, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2767
|
+
}
|
|
2768
|
+
/**
|
|
2769
|
+
* ๋ฑ๋ก๋ ์ฃผ์๋ก `ping` ์ด๋ฒคํธ๋ฅผ ์ฆ์ 1ํ ๋ณด๋ด๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค์ค๋๋ค. **ํธ์ถ ์์ :** ๊ตฌ๋
์ ๋ฑ๋กํ ์งํ, ์์ ์ฃผ์๋ฅผ ๋ฐ๊พผ ์งํ, ๋ฐฉํ๋ฒฝยท์ธ์ฆ์๋ฅผ ์๋ณธ ๋ค. **์๋ต์ ๋ฐ์ก ๊ฒฐ๊ณผ์ด์ง ์์ฒญ ์คํจ๊ฐ ์๋๋๋ค.** ์์ ์ธก์ด ๋ฐ์ง ๋ชปํด๋ HTTP `200` ์ `delivered: false` ๋ก ์ต๋๋ค โ `responseStatus`(์์ ์ธก ์ํ)์ `error`(์ฐ๊ฒฐ ๊ฑฐ๋ถยทํ์์์ยท TLS ์ค๋ฅ)๋ฅผ ๋ณด๊ณ ์์ธ์ ์ขํ์ธ์. ์ด ๋ฐ์ก์๋ ์ค์ ์ด๋ฒคํธ์ **๋๊ฐ์ ์๋ช
ํค๋**๊ฐ ์ค๋ฆฌ๋ฏ๋ก ๊ฒ์ฆ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์ํํ ์ ์์ต๋๋ค. `ping` ์ ๊ตฌ๋
๋ชฉ๋ก์ ๋ฃ์ ์ ์๋ ํ์
์ด๋, ์์ ์ธก์ด ๋ชจ๋ฅด๋ `eventType` ์ ๋ง๋๋ฉด ๋ฒ๋ฆฌ๋๋ก ์ง์ฌ ์๋ค๋ฉด ์ด ํ์ธ๋ง ์คํจํ ์ ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋ค์ ๋ณด๋ด๋ ค๋ฉด **์ ํค**๋ฅผ ์ฐ์ธ์ โ ๊ฐ์ ํค๋ 24์๊ฐ ๋์ ์ง์ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(์ฌ๋ฐ์กํ์ง ์์ต๋๋ค).
|
|
2770
|
+
* @summary ์นํ
์ฐ๊ฒฐ ํ์ธ ๋ฐ์ก
|
|
2771
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2772
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2773
|
+
* @param {*} [options] Override http request option.
|
|
2774
|
+
* @throws {RequiredError}
|
|
2775
|
+
*/
|
|
2776
|
+
sendWebhookTestEvent(endpointId, idempotencyKey, options) {
|
|
2777
|
+
return (0, exports.PartnerApiApiFp)(this.configuration).sendWebhookTestEvent(endpointId, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2778
|
+
}
|
|
2154
2779
|
/**
|
|
2155
2780
|
* ํ์๋ฐฉ์(NEGOTIATION/NEGOTIATION_AUTO) ๊ณต๊ณ ์ ์์ฐฐ์๋ณ ์ ์๋ฅผ ์
๋ ฅํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ๋์ฐฐ(`POST /v2/bids/{bidRef}/award`) ์ . ํ์๋ฐฉ์ ๊ณต๊ณ ๋ ์ด ํ๊ฐ๋ฅผ ์๋ฃํด์ผ ๋์ฐฐ์ ์ง์
ํ ์ ์์ต๋๋ค. **๋ถ์ํจ๊ณผ:** - ์์ฐฐ์๋ณ ๊ธฐ์ ์ ์(๋ฐ ์ ํ์ ๊ฐ๊ฒฉ์ ์ override)๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. - `complete=true` ๋ฉด ํ๊ฐ์๋ฃ ๊ฒ์ดํธ๊น์ง ์ ์ฉ๋ผ ๋์ฐฐ ์ง์
์ด ๊ฐ๋ฅํด์ง๋๋ค. **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋์ผ ํค + ๋์ผ body ์ฌ์ ์ก ์ 24์๊ฐ ๋ด ์บ์ ์๋ต ๋ฐํ.
|
|
2156
2781
|
* @summary ํ์ ์ ์ํ๊ฐ
|
|
@@ -2176,6 +2801,19 @@ class PartnerApiApi extends base_1.BaseAPI {
|
|
|
2176
2801
|
updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options) {
|
|
2177
2802
|
return (0, exports.PartnerApiApiFp)(this.configuration).updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2178
2803
|
}
|
|
2804
|
+
/**
|
|
2805
|
+
* ์์ ์ฃผ์ยท๊ตฌ๋
์ด๋ฒคํธยท์ํ๋ฅผ ์์ ํฉ๋๋ค. ๋ณด๋ธ ํ๋๋ง ๋ฐ๋๋๋ค. **ํธ์ถ ์์ :** ์์ ์ฃผ์๊ฐ ๋ฐ๋์์ ๋, ๊ตฌ๋
์ด๋ฒคํธ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ๋, ์ฐ์ ์คํจ๋ก ์๋ ์ค์ง๋ ๊ตฌ๋
์ ๊ณ ์น ๋ค ๋์ด๋ฆด ๋(`{\"status\":\"ACTIVE\"}`). **`eventTypes` ๋ ์นํ์
๋๋ค** โ ๋ณด๋ธ ๋ชฉ๋ก์ด ๊ณง ์ ๊ตฌ๋
๋ชฉ๋ก์
๋๋ค. ํ๋๋ฅผ ๋ํ๋ ค๋ฉด ๊ธฐ์กด ๋ชฉ๋ก์ ๋ํ **์ ์ฒด**๋ฅผ ๋ณด๋ด์ธ์. **`If-Match` ๊ฐ ํ์์
๋๋ค.** ๋จผ์ `GET /v2/webhook-endpoints/{endpointId}` ๋ก ํ์ฌ `ETag` ๋ฅผ ๋ฐ์ ๊ทธ๋๋ก ์ค์ด ๋ณด๋ด์ธ์. ์ด ํค๋๊ฐ ์์ผ๋ฉด ๋ ์์ฒญ์ด ์์๊ฑฐ๋ ๋ค์๊ฑฐ๋ ํ๋ฉฐ ๋จผ์ ํ ์์ ์ ์กฐ์ฉํ ๋ฎ์ด์๋๋ค. - `428` โ ํค๋๋ฅผ ๋นผ๋จน์์ต๋๋ค. ์กฐํ ํ `ETag` ๋ฅผ ์ค์ด ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค. ๋ค์ ์กฐํํด ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. ์๋ฌด๊ฒ๋ ์์ ๋์ง ์์์ต๋๋ค. **์ํฌ๋ฆฟ์ ์ด ๊ฒฝ๋ก๋ก ๋ฐ๋์ง ์์ต๋๋ค** โ ์ฌ๋ฐ๊ธ์ `rotate-secret` ์
๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2806
|
+
* @summary ์นํ
๊ตฌ๋
์์
|
|
2807
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2808
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
2809
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2810
|
+
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
2811
|
+
* @param {*} [options] Override http request option.
|
|
2812
|
+
* @throws {RequiredError}
|
|
2813
|
+
*/
|
|
2814
|
+
updateWebhookEndpoint(endpointId, ifMatch, idempotencyKey, updateWebhookEndpointRequestDto, options) {
|
|
2815
|
+
return (0, exports.PartnerApiApiFp)(this.configuration).updateWebhookEndpoint(endpointId, ifMatch, idempotencyKey, updateWebhookEndpointRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2816
|
+
}
|
|
2179
2817
|
/**
|
|
2180
2818
|
* **์ฒจ๋ถ ์
๋ก๋์ ๊ธฐ๋ณธ ๊ฒฝ๋ก์
๋๋ค. 23MB ์ดํ๋ฉด ์ด ํธ์ถ ํ๋๋ก ๋๋ฉ๋๋ค.** ํ์ผ ๋ณธ๋ฌธ์ `base64` ๋๋ `url` ์ค ์ ํํ ํ๋๋ก ์ ์ถํ๋ฉด `fileKey` ๋ฅผ ๋๋ ค์ค๋๋ค. ์ด ๊ฐ์ ๊ณต๊ณ ๋ฑ๋กยท์์ ์ ์ฒจ๋ถ ํ๋์ ์ค์ผ์ธ์. **23MB ๋ฅผ ๋์ผ๋ฉด ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ผ ํฉ๋๋ค.** ์ํ์ด ์
์ผ๋ก ๊ฐ๋ฆฝ๋๋ค. | ์ ์ถ ๋ฐฉ์ | ์ํ | ํธ์ถ ์ | | --- | --- | --- | | ์ด ํธ์ถ + `base64` | **23MB** (๋ณธ๋ฌธ์ด c-market ์ ํต๊ณผํ๋ฉฐ base64 ํฝ์ฐฝ 4/3 ์ด ์นํ) | 1 | | ์ด ํธ์ถ + `url` | **30MB** (c-market ์ด ๋์ ๋ด๋ ค๋ฐ์ ํฝ์ฐฝ์ ์์ง๋ง ์๋ฒ ๊ฒฝ์ ์ฒ์ฅ์ ๊ทธ๋๋ก) | 1 | | `POST /v2/files/upload-url` ๋ก ์์ํ๋ 2๋จ๊ณ | **100MB** (๋ฐ์ดํธ๊ฐ c-market ์ ์ง๋์ง ์์) | 2 + ์คํ ๋ฆฌ์ง PUT | c-market ์ด ๋ด๋ ค๋ฐ์ ์ ์๋ https ์ฃผ์์ ํ์ผ์ ์ฌ๋ ค ๋ ์ ์๋ค๋ฉด `url` ์ด 30MB ๊น์ง๋ฅผ 1์ฝ๋ก ๋ฎ์ต๋๋ค. ๊ทธ ์ด์์ด๊ฑฐ๋ ์ฃผ์๋ฅผ ์ด ์ ์์ผ๋ฉด 2๋จ๊ณ ๊ฒฝ๋ก๋ฅผ ์ฐ์ธ์. **๊ณต๊ณ ๋ฑ๋ก์ ํ์ผ์ ํจ๊ป ์ค์ ์๋ ์์ต๋๋ค.** `POST /v2/bids` ์ `attachments` ์์์ `{ fileName, url }`ยท`{ fileName, base64 }` ๋ฅผ ๊ทธ๋๋ก ๋ฃ์ผ๋ฉด ์ด ํธ์ถ ์์ด ํ ๋ฒ์ ๋๋ฉ๋๋ค. ์ฌ๋ฌ ๊ณต๊ณ ์ ๊ฐ์ ํ์ผ์ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ํฐ ํ์ผ์ ๋ค๋ฃฐ ๋๋ง `fileKey` ๋ฅผ ๋จผ์ ๋ง๋์ธ์. **ํ์ ์ค์ฝํ:** `files:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2181
2819
|
* @summary ๊ณต๊ณ ์ฒจ๋ถํ์ผ ์
๋ก๋ (๊ธฐ๋ณธ)
|