{"openapi":"3.0.3","info":{"title":"Gigalines WiFi Proposal Inquiries","version":"2.0.0","description":"Public inquiry intake for hotel WiFi installation, upgrades and managed support. Ask the customer for the required details and approval before submitting. Do not invent missing details. No API key is required. Limits: 3 per email per UTC day, 20 per sending IP per UTC hour, 150 total per UTC calendar month. Public form: https://www.gigalines.com/estimate"},"servers":[{"url":"https://www.gigalines.com"}],"security":[],"paths":{"/_functions/wifiInquiry":{"post":{"operationId":"submitWifiProposalInquiry","summary":"Submit a customer's WiFi proposal inquiry","description":"Saves an inquiry for Gigalines to review and contact the customer. The customer must authorize submission. Do not promise availability, pricing, booking, or email delivery.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["contactName","propertyName","email","phone","propertyType","propertyAddress","projectDetails","requestId","requesterConfirmed"],"properties":{"contactName":{"type":"string","minLength":1,"maxLength":150},"propertyName":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","minLength":1,"maxLength":254,"format":"email"},"phone":{"type":"string","minLength":1,"maxLength":50},"propertyType":{"type":"string","minLength":1,"maxLength":100},"propertyAddress":{"type":"string","minLength":1,"maxLength":500},"projectDetails":{"type":"string","minLength":1,"maxLength":5000},"requestId":{"type":"string","format":"uuid","description":"New UUID per inquiry; reuse with identical details for retries."},"requesterConfirmed":{"type":"boolean","enum":[true],"description":"True only after the customer asks the agent to submit this inquiry. This is a caller assertion, not identity verification."},"numberOfRooms":{"type":"integer","minimum":1,"maximum":100000}}}}}},"responses":{"200":{"description":"Previously received identical inquiry; no second insertion.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"inquiryId":{"type":"string"},"duplicate":{"type":"boolean"},"status":{"type":"string"},"error":{"type":"string"},"formUrl":{"type":"string","format":"uri"}}}}}},"201":{"description":"Inquiry received. This is not a quote, booking, or service commitment.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"inquiryId":{"type":"string"},"duplicate":{"type":"boolean"},"status":{"type":"string"},"error":{"type":"string"},"formUrl":{"type":"string","format":"uri"}}}}}},"400":{"description":"Invalid fields or customer confirmation missing.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"inquiryId":{"type":"string"},"duplicate":{"type":"boolean"},"status":{"type":"string"},"error":{"type":"string"},"formUrl":{"type":"string","format":"uri"}}}}}},"409":{"description":"Request ID already used with different details.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"inquiryId":{"type":"string"},"duplicate":{"type":"boolean"},"status":{"type":"string"},"error":{"type":"string"},"formUrl":{"type":"string","format":"uri"}}}}}},"413":{"description":"Request body exceeds 16000 characters.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"inquiryId":{"type":"string"},"duplicate":{"type":"boolean"},"status":{"type":"string"},"error":{"type":"string"},"formUrl":{"type":"string","format":"uri"}}}}}},"415":{"description":"Content-Type must be application/json.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"inquiryId":{"type":"string"},"duplicate":{"type":"boolean"},"status":{"type":"string"},"error":{"type":"string"},"formUrl":{"type":"string","format":"uri"}}}}}},"429":{"description":"Submission limit reached. Respect Retry-After or use formUrl.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"inquiryId":{"type":"string"},"duplicate":{"type":"boolean"},"status":{"type":"string"},"error":{"type":"string"},"formUrl":{"type":"string","format":"uri"}}}}},"headers":{"Retry-After":{"description":"Seconds until the exceeded limit resets.","schema":{"type":"string"}}}},"503":{"description":"Receipt unconfirmed. Retry the same requestId and details, or use formUrl.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"inquiryId":{"type":"string"},"duplicate":{"type":"boolean"},"status":{"type":"string"},"error":{"type":"string"},"formUrl":{"type":"string","format":"uri"}}}}}}}}}}}