{"openapi":"3.1.0","info":{"title":"RelayDock API","description":"RelayDock connects LiveKit agents to phone carriers and PBXs: SIP registration, a fixed IP and self-service diagnostics.\n\n**Authentication.** Send `Authorization: Bearer rdk_…` with an API key from the panel (Settings → API keys). Keys act with member rights on the team that created them.\n\n**Team.** `X-RelayDock-Tenant: <team id>` is optional with an API key; if you send it, it must be the key's team.\n\n**Pagination.** Paged lists take `limit` and `cursor` and return `{\"items\": [...], \"next_cursor\": \"…\"}`; `next_cursor` is `null` on the last page.\n\n**Errors.** Errors are JSON: `{\"code\": \"<area>.<error>\", \"message\": \"…\"}`; validation errors (422) add `fields`.\n\n**Rate limits.** Too many requests return 429 `{\"code\": \"rate_limited\"}` with `Retry-After` in seconds.\n\n**Versioning.** `/api/v1` changes only additively: new fields and endpoints, nothing removed.","version":"0.1.0"},"servers":[{"url":"https://api.relaydock.io"}],"paths":{"/api/v1/health":{"get":{"tags":["health"],"summary":"Health","description":"Canlılık (compose sağlık denetimi): veritabanı yanıt veriyor mu. Kurulumun kimliği release.json'dan.","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Api V1 Health Get"}}}}}}},"/api/v1/health/full":{"get":{"tags":["health"],"summary":"Health Full","description":"Derin sağlık (kimliksiz; dış izlemenin anahtar kelimesi \"status\":\"ok\"). Denetimler ok | bad | skipped:\ndb (SELECT 1), redis (PING), worker (arq'ın sağlık anahtarı; en çok ~61 sn bayat), edge (son 5 dk'da görülmüş ve\nKamailio'su çalışan bir düğüm; görülmüş düğüm yoksa skipped), email (SMTP'de gönderim ve yoklama sayaçları; console'da\nskipped), tls (edge'in TLS yoklaması ve sertifika bitişi; yoklama hiç koşmadıysa skipped). Her denetim CHECK_TIMEOUT'ta\nsınırlı (inceleme sonrası düzeltme turu 1): donmuş ama reddetmeyen bir\nbağlantı bu kimliksiz, sık yoklanan ucu asılı bırakmasın; zaman aşımı da ilgili denetimde \"bad\" sayılır.","operationId":"health_full_api_v1_health_full_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/tenant":{"get":{"tags":["tenant"],"summary":"Get Tenant","operationId":"get_tenant_api_v1_tenant_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantOut"}}}}},"security":[{"ApiKey":[]}]}},"/api/v1/tenant/members":{"get":{"tags":["tenant"],"summary":"List Members","operationId":"list_members_api_v1_tenant_members_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MembersOut"}}}}},"security":[{"ApiKey":[]}]}},"/api/v1/target":{"get":{"tags":["target"],"summary":"Read Target","operationId":"read_target_api_v1_target_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetOut"}}}}},"security":[{"ApiKey":[]}]}},"/api/v1/target/verify":{"post":{"tags":["target"],"summary":"Verify Target","operationId":"verify_target_api_v1_target_verify_post","responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueuedOut"}}}}},"security":[{"ApiKey":[]}]}},"/api/v1/target/resync":{"post":{"tags":["target"],"summary":"Resync Target","operationId":"resync_target_api_v1_target_resync_post","responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueuedOut"}}}}},"security":[{"ApiKey":[]}]}},"/api/v1/provider-templates":{"get":{"tags":["providers"],"summary":"Provider Templates","operationId":"provider_templates_api_v1_provider_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProviderTemplateOut"},"type":"array","title":"Response Provider Templates Api V1 Provider Templates Get"}}}}},"security":[{"ApiKey":[]}]}},"/api/v1/endpoints":{"get":{"tags":["endpoints"],"summary":"List Endpoints","operationId":"list_endpoints_api_v1_endpoints_get","security":[{"ApiKey":[]}],"parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"enum":["registration","trunk"],"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"const":"problem","type":"string"},{"type":"null"}],"title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EndpointOut"},"title":"Response List Endpoints Api V1 Endpoints Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["endpoints"],"summary":"Add Endpoint","operationId":"add_endpoint_api_v1_endpoints_post","security":[{"ApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/endpoints/{endpoint_id}":{"get":{"tags":["endpoints"],"summary":"Read Endpoint","operationId":"read_endpoint_api_v1_endpoints__endpoint_id__get","security":[{"ApiKey":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["endpoints"],"summary":"Update Endpoint","operationId":"update_endpoint_api_v1_endpoints__endpoint_id__patch","security":[{"ApiKey":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EndpointDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["endpoints"],"summary":"Delete Endpoint","operationId":"delete_endpoint_api_v1_endpoints__endpoint_id__delete","security":[{"ApiKey":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/endpoints/{endpoint_id}/retry-registration":{"post":{"tags":["endpoints"],"summary":"Retry Registration","operationId":"retry_registration_api_v1_endpoints__endpoint_id__retry_registration_post","security":[{"ApiKey":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/events":{"get":{"tags":["activity"],"summary":"List Events","description":"Yeniden eskiye; sonraki sayfa için son öğenin id'si `before` olarak verilir.","operationId":"list_events_api_v1_events_get","security":[{"ApiKey":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Before"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EventOut"},"title":"Response List Events Api V1 Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/endpoints/{endpoint_id}/events":{"get":{"tags":["activity"],"summary":"Endpoint Events","operationId":"endpoint_events_api_v1_endpoints__endpoint_id__events_get","security":[{"ApiKey":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Before"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EventOut"},"title":"Response Endpoint Events Api V1 Endpoints  Endpoint Id  Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/endpoints/{endpoint_id}/registration-history":{"get":{"tags":["activity"],"summary":"Registration History","operationId":"registration_history_api_v1_endpoints__endpoint_id__registration_history_get","security":[{"ApiKey":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"default":24,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationHistoryOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/numbers":{"get":{"tags":["numbers"],"summary":"List Numbers","operationId":"list_numbers_api_v1_numbers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/NumberOut"},"type":"array","title":"Response List Numbers Api V1 Numbers Get"}}}}},"security":[{"ApiKey":[]}]}},"/api/v1/calls":{"get":{"tags":["calls"],"summary":"List Calls","operationId":"list_calls_api_v1_calls_get","security":[{"ApiKey":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"direction","in":"query","required":false,"schema":{"anyOf":[{"enum":["inbound","outbound"],"type":"string"},{"type":"null"}],"title":"Direction"}},{"name":"endpoint_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Endpoint Id"}},{"name":"outcome","in":"query","required":false,"schema":{"anyOf":[{"enum":["answered","failed"],"type":"string"},{"type":"null"}],"title":"Outcome"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Q"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"}},{"name":"until","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Until"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calls/export":{"get":{"tags":["calls"],"summary":"Export Calls","description":"Çağrı kayıtları CSV olarak (davet anına göre [from, to), varsayılan son 30 gün). Silme planlanmış kiracıda da açık:\ndışa aktarma penceresi. Rota /{call_id}'den önce tanımlı olmalı.","operationId":"export_calls_api_v1_calls_export_get","security":[{"ApiKey":[]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calls/{call_id}":{"get":{"tags":["calls"],"summary":"Read Call","operationId":"read_call_api_v1_calls__call_id__get","security":[{"ApiKey":[]}],"parameters":[{"name":"call_id","in":"path","required":true,"schema":{"type":"integer","title":"Call Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallDetailOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/usage/overview":{"get":{"tags":["usage"],"summary":"Usage Overview","operationId":"usage_overview_api_v1_usage_overview_get","security":[{"ApiKey":[]}],"parameters":[{"name":"range","in":"query","required":false,"schema":{"enum":["24h","7d","30d"],"type":"string","default":"24h","title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OverviewOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/usage/monthly":{"get":{"tags":["usage"],"summary":"Usage Monthly","description":"Yeniden eskiye; kiracının açıldığı aydan öncesi yok. Satırı olmayan ay anında hesaplanır. Aşım o ayın paketiyle:\ngeçmiş ay toplamanın yazdığı paketi kullanır (paket sonradan değişse de eski ayın aşımı değişmez; deneme ayı deneme\nlimitleriyle); bu ay ve paketi bilinmeyen ay güncel paketi.","operationId":"usage_monthly_api_v1_usage_monthly_get","security":[{"ApiKey":[]}],"parameters":[{"name":"months","in":"query","required":false,"schema":{"type":"integer","maximum":24,"minimum":1,"default":6,"title":"Months"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonthOut"},"title":"Response Usage Monthly Api V1 Usage Monthly Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing":{"get":{"tags":["billing"],"summary":"Read Billing","operationId":"read_billing_api_v1_billing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingOut"}}}}},"security":[{"ApiKey":[]}]}},"/api/v1/endpoints/{endpoint_id}/test-calls":{"post":{"tags":["test-calls"],"summary":"Create Test Call","operationId":"create_test_call_api_v1_endpoints__endpoint_id__test_calls_post","security":[{"ApiKey":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestCallIn"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestCallOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/endpoints/{endpoint_id}/inbound-checks":{"post":{"tags":["test-calls"],"summary":"Create Inbound Check","description":"Gelen çağrı testi (Plan 10 10.6): uç RD_INBOUND_CHECK_WAIT_SECONDS boyunca bir gelen çağrı bekler. Müşteri kendi\noperatörünün numarasını arar; edge'in kaydı (ya da \"uç yok\" olayı) adımları doldurur, süre dolarsa inbound.no_call.","operationId":"create_inbound_check_api_v1_endpoints__endpoint_id__inbound_checks_post","security":[{"ApiKey":[]}],"parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestCallOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/test-calls/{test_call_id}":{"get":{"tags":["test-calls"],"summary":"Read Test Call","operationId":"read_test_call_api_v1_test_calls__test_call_id__get","security":[{"ApiKey":[]}],"parameters":[{"name":"test_call_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Test Call Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestCallOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BillingOut":{"properties":{"plan":{"type":"string","title":"Plan"},"limits":{"$ref":"#/components/schemas/LimitsOut"},"state":{"type":"string","title":"State"},"trial_ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial Ends At"},"grace_ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Grace Ends At"},"subscription":{"anyOf":[{"$ref":"#/components/schemas/SubscriptionOut"},{"type":"null"}]},"processing":{"type":"boolean","title":"Processing"},"usage":{"$ref":"#/components/schemas/BillingUsageOut"},"plans":{"items":{"$ref":"#/components/schemas/PlanOut"},"type":"array","title":"Plans"},"pricing":{"$ref":"#/components/schemas/PricingOut"}},"type":"object","required":["plan","limits","state","trial_ends_at","grace_ends_at","subscription","processing","usage","plans","pricing"],"title":"BillingOut"},"BillingUsageOut":{"properties":{"endpoints":{"type":"integer","title":"Endpoints"},"extra_endpoints":{"type":"integer","title":"Extra Endpoints"},"extra_endpoints_usd":{"type":"integer","title":"Extra Endpoints Usd"},"over_limit":{"type":"integer","title":"Over Limit"},"minutes_direct":{"type":"number","title":"Minutes Direct"},"minutes_relay":{"type":"number","title":"Minutes Relay"},"peak_concurrency_month":{"type":"integer","title":"Peak Concurrency Month"},"overage":{"$ref":"#/components/schemas/OverageOut"}},"type":"object","required":["endpoints","extra_endpoints","extra_endpoints_usd","over_limit","minutes_direct","minutes_relay","peak_concurrency_month","overage"],"title":"BillingUsageOut"},"BucketOut":{"properties":{"start":{"type":"string","format":"date-time","title":"Start"},"state":{"type":"string","title":"State"}},"type":"object","required":["start","state"],"title":"BucketOut"},"CallDetailOut":{"properties":{"id":{"type":"integer","title":"Id"},"call_id":{"type":"string","title":"Call Id"},"invited_at":{"type":"string","format":"date-time","title":"Invited At"},"direction":{"type":"string","title":"Direction"},"endpoint":{"anyOf":[{"$ref":"#/components/schemas/CallEndpoint"},{"type":"null"}]},"caller":{"type":"string","title":"Caller"},"callee":{"type":"string","title":"Callee"},"mode":{"type":"string","title":"Mode"},"duration_s":{"type":"integer","title":"Duration S"},"sip_code":{"type":"integer","title":"Sip Code"},"reason":{"type":"string","title":"Reason"},"answered":{"type":"boolean","title":"Answered"},"anonymized":{"type":"boolean","title":"Anonymized","default":false},"relay_reason":{"type":"string","title":"Relay Reason"},"sdp_c":{"type":"string","title":"Sdp C"},"answered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Answered At"},"ended_at":{"type":"string","format":"date-time","title":"Ended At"},"edge_node":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Edge Node"},"test_call_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Test Call Id"},"transfer_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Transfer Code"},"timeline":{"items":{"$ref":"#/components/schemas/TimelineStep"},"type":"array","title":"Timeline"},"source_ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Ip"}},"type":"object","required":["id","call_id","invited_at","direction","endpoint","caller","callee","mode","duration_s","sip_code","reason","answered","relay_reason","sdp_c","answered_at","ended_at","edge_node","test_call_id","transfer_code","timeline"],"title":"CallDetailOut"},"CallEndpoint":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"CallEndpoint"},"CallOut":{"properties":{"id":{"type":"integer","title":"Id"},"call_id":{"type":"string","title":"Call Id"},"invited_at":{"type":"string","format":"date-time","title":"Invited At"},"direction":{"type":"string","title":"Direction"},"endpoint":{"anyOf":[{"$ref":"#/components/schemas/CallEndpoint"},{"type":"null"}]},"caller":{"type":"string","title":"Caller"},"callee":{"type":"string","title":"Callee"},"mode":{"type":"string","title":"Mode"},"duration_s":{"type":"integer","title":"Duration S"},"sip_code":{"type":"integer","title":"Sip Code"},"reason":{"type":"string","title":"Reason"},"answered":{"type":"boolean","title":"Answered"},"anonymized":{"type":"boolean","title":"Anonymized","default":false}},"type":"object","required":["id","call_id","invited_at","direction","endpoint","caller","callee","mode","duration_s","sip_code","reason","answered"],"title":"CallOut"},"CallPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CallOut"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"CallPage"},"ChartOut":{"properties":{"range":{"type":"string","title":"Range"},"bucket_seconds":{"type":"integer","title":"Bucket Seconds"},"points":{"items":{"$ref":"#/components/schemas/ChartPoint"},"type":"array","title":"Points"}},"type":"object","required":["range","bucket_seconds","points"],"title":"ChartOut"},"ChartPoint":{"properties":{"t":{"type":"string","format":"date-time","title":"T"},"v":{"type":"integer","title":"V"}},"type":"object","required":["t","v"],"title":"ChartPoint"},"ConcurrentOut":{"properties":{"now":{"type":"integer","title":"Now"},"limit":{"type":"integer","title":"Limit"},"peak_today":{"type":"integer","title":"Peak Today"},"spark":{"items":{"type":"integer"},"type":"array","title":"Spark"}},"type":"object","required":["now","limit","peak_today","spark"],"title":"ConcurrentOut"},"ConnectionOut":{"properties":{"public_ip":{"type":"string","title":"Public Ip"},"sip_domain":{"type":"string","title":"Sip Domain"},"region":{"type":"string","title":"Region"},"edge_synced":{"type":"boolean","title":"Edge Synced"},"edge_lag_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Edge Lag Seconds"},"edge_sip_ok":{"type":"boolean","title":"Edge Sip Ok"},"edge_sip_down_since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Edge Sip Down Since"}},"type":"object","required":["public_ip","sip_domain","region","edge_synced","edge_lag_seconds","edge_sip_ok","edge_sip_down_since"],"title":"ConnectionOut"},"DiagnosisOut":{"properties":{"severity":{"type":"string","enum":["bad","warn"],"title":"Severity"},"key":{"type":"string","title":"Key"},"code":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Code"},"since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action"}},"type":"object","required":["severity","key","code","since","action"],"title":"DiagnosisOut"},"EndpointDetailOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"sip_id":{"type":"string","title":"Sip Id"},"name":{"type":"string","title":"Name"},"kind":{"type":"string","title":"Kind"},"provider":{"type":"string","title":"Provider"},"mode":{"type":"string","title":"Mode"},"agent_name":{"type":"string","title":"Agent Name"},"enabled":{"type":"boolean","title":"Enabled"},"provision_state":{"type":"string","title":"Provision State"},"provision_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provision Error"},"numbers":{"items":{"type":"string"},"type":"array","title":"Numbers"},"history_24h":{"type":"string","title":"History 24H"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"diagnosis":{"anyOf":[{"$ref":"#/components/schemas/DiagnosisOut"},{"type":"null"}]},"registration":{"anyOf":[{"$ref":"#/components/schemas/RegistrationDetail"},{"type":"null"}]},"trunk":{"anyOf":[{"$ref":"#/components/schemas/TrunkDetail"},{"type":"null"}]},"outbound_numbers":{"items":{"type":"string"},"type":"array","title":"Outbound Numbers"},"dial_format":{"type":"string","title":"Dial Format"},"platform_objects":{"anyOf":[{"$ref":"#/components/schemas/PlatformObjectsOut"},{"type":"null"}]},"sip_domain":{"type":"string","title":"Sip Domain"},"public_ip":{"type":"string","title":"Public Ip"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","sip_id","name","kind","provider","mode","agent_name","enabled","provision_state","provision_error","numbers","history_24h","created_at","diagnosis","registration","trunk","outbound_numbers","dial_format","platform_objects","sip_domain","public_ip","updated_at"],"title":"EndpointDetailOut"},"EndpointIn":{"properties":{"kind":{"type":"string","enum":["registration","trunk"],"title":"Kind"},"name":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Name"},"provider":{"type":"string","maxLength":16,"title":"Provider","default":"other"},"mode":{"type":"string","enum":["auto","direct_only","relay_always"],"title":"Mode","default":"auto"},"agent_name":{"type":"string","maxLength":128,"title":"Agent Name","default":""},"outbound_numbers":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":20},{"type":"null"}],"title":"Outbound Numbers"},"dial_format":{"anyOf":[{"type":"string","enum":["e164","national_tr"]},{"type":"null"}],"title":"Dial Format"},"registration":{"anyOf":[{"$ref":"#/components/schemas/RegistrationIn"},{"type":"null"}]},"trunk":{"anyOf":[{"$ref":"#/components/schemas/TrunkIn"},{"type":"null"}]}},"type":"object","required":["kind"],"title":"EndpointIn"},"EndpointOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"sip_id":{"type":"string","title":"Sip Id"},"name":{"type":"string","title":"Name"},"kind":{"type":"string","title":"Kind"},"provider":{"type":"string","title":"Provider"},"mode":{"type":"string","title":"Mode"},"agent_name":{"type":"string","title":"Agent Name"},"enabled":{"type":"boolean","title":"Enabled"},"provision_state":{"type":"string","title":"Provision State"},"provision_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provision Error"},"numbers":{"items":{"type":"string"},"type":"array","title":"Numbers"},"history_24h":{"type":"string","title":"History 24H"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"registration":{"anyOf":[{"$ref":"#/components/schemas/RegistrationSummary"},{"type":"null"}]},"trunk":{"anyOf":[{"$ref":"#/components/schemas/TrunkSummary"},{"type":"null"}]},"problem":{"type":"boolean","title":"Problem"}},"type":"object","required":["id","sip_id","name","kind","provider","mode","agent_name","enabled","provision_state","provision_error","numbers","history_24h","created_at","registration","trunk","problem"],"title":"EndpointOut"},"EndpointPatch":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":120,"minLength":1},{"type":"null"}],"title":"Name"},"provider":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Provider"},"mode":{"anyOf":[{"type":"string","enum":["auto","direct_only","relay_always"]},{"type":"null"}],"title":"Mode"},"agent_name":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Agent Name"},"outbound_numbers":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":20},{"type":"null"}],"title":"Outbound Numbers"},"dial_format":{"anyOf":[{"type":"string","enum":["e164","national_tr"]},{"type":"null"}],"title":"Dial Format"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"registration":{"anyOf":[{"$ref":"#/components/schemas/RegistrationPatch"},{"type":"null"}]},"trunk":{"anyOf":[{"$ref":"#/components/schemas/TrunkPatch"},{"type":"null"}]}},"type":"object","title":"EndpointPatch","description":"Gönderilmeyen alan değişmez. Açıkça null: name ve outbound_numbers varsayılana döner, number/digest/outbound\nkaldırılır, source_ips (kayıt ucunda) yeniden şablon + DNS'ten hesaplanır. Şifre null ise mevcut şifre kalır."},"EventOut":{"properties":{"id":{"type":"integer","title":"Id"},"kind":{"type":"string","title":"Kind"},"severity":{"type":"string","title":"Severity"},"params":{"additionalProperties":true,"type":"object","title":"Params"},"endpoint":{"anyOf":[{"$ref":"#/components/schemas/relaydock_cp__api__routers__activity__EndpointRef"},{"type":"null"}]},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","kind","severity","params","endpoint","created_at"],"title":"EventOut"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InviteOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"role":{"type":"string","title":"Role"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","email","role","expires_at","created_at"],"title":"InviteOut"},"LimitsOut":{"properties":{"endpoints_included":{"type":"integer","title":"Endpoints Included"},"endpoints_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Endpoints Max"},"channels":{"type":"integer","title":"Channels"},"minutes_included":{"type":"integer","title":"Minutes Included"},"price_usd":{"type":"integer","title":"Price Usd"}},"type":"object","required":["endpoints_included","endpoints_max","channels","minutes_included","price_usd"],"title":"LimitsOut"},"MemberOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"email":{"type":"string","title":"Email"},"name":{"type":"string","title":"Name"},"role":{"type":"string","title":"Role"},"joined_at":{"type":"string","format":"date-time","title":"Joined At"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At"}},"type":"object","required":["id","user_id","email","name","role","joined_at","last_login_at"],"title":"MemberOut"},"MembersOut":{"properties":{"members":{"items":{"$ref":"#/components/schemas/MemberOut"},"type":"array","title":"Members"},"invites":{"items":{"$ref":"#/components/schemas/InviteOut"},"type":"array","title":"Invites"}},"type":"object","required":["members","invites"],"title":"MembersOut"},"MinutesOut":{"properties":{"direct":{"type":"number","title":"Direct"},"relay":{"type":"number","title":"Relay"},"included":{"type":"integer","title":"Included"},"spark":{"items":{"type":"number"},"type":"array","title":"Spark"}},"type":"object","required":["direct","relay","included","spark"],"title":"MinutesOut"},"MonthOut":{"properties":{"month":{"type":"string","format":"date","title":"Month"},"direct_minutes":{"type":"number","title":"Direct Minutes"},"relay_minutes":{"type":"number","title":"Relay Minutes"},"calls":{"type":"integer","title":"Calls"},"peak_concurrency":{"type":"integer","title":"Peak Concurrency"},"endpoints":{"type":"integer","title":"Endpoints"},"plan":{"type":"string","title":"Plan"},"included_minutes":{"type":"integer","title":"Included Minutes"},"extra_endpoints":{"type":"integer","title":"Extra Endpoints"},"extra_endpoints_usd":{"type":"integer","title":"Extra Endpoints Usd"},"overage":{"$ref":"#/components/schemas/OverageOut"}},"type":"object","required":["month","direct_minutes","relay_minutes","calls","peak_concurrency","endpoints","plan","included_minutes","extra_endpoints","extra_endpoints_usd","overage"],"title":"MonthOut"},"NumberEndpoint":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"sip_id":{"type":"string","title":"Sip Id"},"kind":{"type":"string","title":"Kind"}},"type":"object","required":["id","name","sip_id","kind"],"title":"NumberEndpoint"},"NumberOut":{"properties":{"e164":{"type":"string","title":"E164"},"endpoint":{"$ref":"#/components/schemas/NumberEndpoint"},"agent_name":{"type":"string","title":"Agent Name"},"last_call_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Call At"}},"type":"object","required":["e164","endpoint","agent_name","last_call_at"],"title":"NumberOut"},"OutboundDetail":{"properties":{"host":{"type":"string","title":"Host"},"port":{"type":"integer","title":"Port"},"transport":{"type":"string","title":"Transport"},"auth_type":{"type":"string","title":"Auth Type"},"username":{"type":"string","title":"Username"},"has_password":{"type":"boolean","title":"Has Password"}},"type":"object","required":["host","port","transport","auth_type","username","has_password"],"title":"OutboundDetail"},"OutboundIn":{"properties":{"host":{"type":"string","maxLength":255,"minLength":1,"title":"Host"},"port":{"type":"integer","maximum":65535.0,"minimum":1.0,"title":"Port","default":5060},"transport":{"type":"string","enum":["udp","tcp","tls"],"title":"Transport","default":"udp"},"auth_type":{"type":"string","enum":["none","digest"],"title":"Auth Type","default":"none"},"username":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Username"},"password":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Password"}},"type":"object","required":["host"],"title":"OutboundIn"},"OverageOut":{"properties":{"direct_minutes":{"type":"number","title":"Direct Minutes"},"relay_minutes":{"type":"number","title":"Relay Minutes"},"cost_usd":{"type":"number","title":"Cost Usd"},"cap_usd":{"type":"number","title":"Cap Usd"},"billable_usd":{"type":"number","title":"Billable Usd"}},"type":"object","required":["direct_minutes","relay_minutes","cost_usd","cap_usd","billable_usd"],"title":"OverageOut"},"OverviewOut":{"properties":{"concurrent":{"$ref":"#/components/schemas/ConcurrentOut"},"registrations":{"$ref":"#/components/schemas/RegistrationsOut"},"minutes":{"$ref":"#/components/schemas/MinutesOut"},"success":{"$ref":"#/components/schemas/SuccessOut"},"chart":{"$ref":"#/components/schemas/ChartOut"},"connection":{"$ref":"#/components/schemas/ConnectionOut"}},"type":"object","required":["concurrent","registrations","minutes","success","chart","connection"],"title":"OverviewOut"},"PlanOut":{"properties":{"endpoints_included":{"type":"integer","title":"Endpoints Included"},"endpoints_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Endpoints Max"},"channels":{"type":"integer","title":"Channels"},"minutes_included":{"type":"integer","title":"Minutes Included"},"price_usd":{"type":"integer","title":"Price Usd"},"code":{"type":"string","title":"Code"}},"type":"object","required":["endpoints_included","endpoints_max","channels","minutes_included","price_usd","code"],"title":"PlanOut"},"PlatformObjectsOut":{"properties":{"inbound_trunk_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inbound Trunk Id"},"outbound_trunk_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outbound Trunk Id"},"dispatch_rule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dispatch Rule Id"},"reconciled_at":{"type":"string","format":"date-time","title":"Reconciled At"},"reconcile_state":{"type":"string","title":"Reconcile State"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"}},"type":"object","required":["inbound_trunk_id","outbound_trunk_id","dispatch_rule_id","reconciled_at","reconcile_state","last_error"],"title":"PlatformObjectsOut"},"PricingOut":{"properties":{"currency":{"type":"string","const":"USD","title":"Currency","default":"USD"},"tax_included":{"type":"boolean","title":"Tax Included","default":false},"direct_usd_per_minute":{"type":"number","title":"Direct Usd Per Minute"},"relay_usd_per_minute":{"type":"number","title":"Relay Usd Per Minute"},"cap_usd_per_channel":{"type":"integer","title":"Cap Usd Per Channel"},"extra_endpoint_usd":{"type":"integer","title":"Extra Endpoint Usd"},"overage_billing":{"type":"string","const":"manual_month_end","title":"Overage Billing","default":"manual_month_end"},"timeout_billable_minutes":{"type":"integer","title":"Timeout Billable Minutes"},"trial_days":{"type":"integer","title":"Trial Days"},"grace_days":{"type":"integer","title":"Grace Days"},"cdr_retention_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cdr Retention Days"}},"type":"object","required":["direct_usd_per_minute","relay_usd_per_minute","cap_usd_per_channel","extra_endpoint_usd","timeout_billable_minutes","trial_days","grace_days"],"title":"PricingOut","description":"Paket kartlarının ince yazısı (Plan 10 10.11): panel bu değerleri yazar, kendisi sayı tutmaz."},"ProviderTemplateOut":{"properties":{"code":{"type":"string","title":"Code"},"label":{"type":"string","title":"Label"},"kind":{"type":"string","title":"Kind"},"registrar_host":{"type":"string","title":"Registrar Host"},"registrar_port":{"type":"integer","title":"Registrar Port"},"transport":{"type":"string","title":"Transport"},"source_ips":{"items":{"type":"string"},"type":"array","title":"Source Ips"},"dial_format":{"type":"string","title":"Dial Format"},"verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Verified"},"verified_at":{"type":"string","title":"Verified At"}},"type":"object","required":["code","label","kind","registrar_host","registrar_port","transport","source_ips","dial_format","verified","verified_at"],"title":"ProviderTemplateOut"},"QueuedOut":{"properties":{"status":{"type":"string","title":"Status","default":"queued"}},"type":"object","title":"QueuedOut"},"RegistrationDetail":{"properties":{"state":{"type":"string","title":"State"},"last_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Code"},"last_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Reason"},"expires_in":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires In"},"registrar_host":{"type":"string","title":"Registrar Host"},"registrar_port":{"type":"integer","title":"Registrar Port"},"transport":{"type":"string","title":"Transport"},"domain":{"type":"string","title":"Domain"},"username":{"type":"string","title":"Username"},"auth_username":{"type":"string","title":"Auth Username"},"realm":{"type":"string","title":"Realm"},"expires":{"type":"integer","title":"Expires"},"source_ips":{"items":{"type":"string"},"type":"array","title":"Source Ips"},"last_attempt":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Last Attempt"},"last_registered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Registered At"},"state_changed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"State Changed At"},"generation":{"type":"integer","title":"Generation"},"has_password":{"type":"boolean","title":"Has Password"}},"type":"object","required":["state","last_code","last_reason","expires_in","registrar_host","registrar_port","transport","domain","username","auth_username","realm","expires","source_ips","last_attempt","last_registered_at","state_changed_at","generation","has_password"],"title":"RegistrationDetail"},"RegistrationHistoryOut":{"properties":{"buckets":{"items":{"$ref":"#/components/schemas/BucketOut"},"type":"array","title":"Buckets"},"transitions":{"items":{"$ref":"#/components/schemas/TransitionOut"},"type":"array","title":"Transitions"}},"type":"object","required":["buckets","transitions"],"title":"RegistrationHistoryOut"},"RegistrationIn":{"properties":{"registrar_host":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Registrar Host"},"registrar_port":{"anyOf":[{"type":"integer","maximum":65535.0,"minimum":1.0},{"type":"null"}],"title":"Registrar Port"},"transport":{"anyOf":[{"type":"string","enum":["udp","tcp","tls"]},{"type":"null"}],"title":"Transport"},"domain":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Domain"},"username":{"type":"string","maxLength":128,"minLength":1,"title":"Username"},"auth_username":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Auth Username"},"password":{"type":"string","maxLength":128,"minLength":1,"title":"Password"},"realm":{"type":"string","maxLength":128,"title":"Realm","default":""},"expires":{"type":"integer","maximum":3600.0,"minimum":60.0,"title":"Expires","default":300},"number":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Number"},"source_ips":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":50},{"type":"null"}],"title":"Source Ips"}},"type":"object","required":["username","password"],"title":"RegistrationIn"},"RegistrationPatch":{"properties":{"registrar_host":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Registrar Host"},"registrar_port":{"anyOf":[{"type":"integer","maximum":65535.0,"minimum":1.0},{"type":"null"}],"title":"Registrar Port"},"transport":{"anyOf":[{"type":"string","enum":["udp","tcp","tls"]},{"type":"null"}],"title":"Transport"},"domain":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Domain"},"username":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Username"},"auth_username":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Auth Username"},"password":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Password"},"realm":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Realm"},"expires":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":60.0},{"type":"null"}],"title":"Expires"},"number":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Number"},"source_ips":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":50},{"type":"null"}],"title":"Source Ips"}},"type":"object","title":"RegistrationPatch"},"RegistrationSummary":{"properties":{"state":{"type":"string","title":"State"},"last_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Code"},"last_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Reason"},"expires_in":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires In"}},"type":"object","required":["state","last_code","last_reason","expires_in"],"title":"RegistrationSummary"},"RegistrationsOut":{"properties":{"online":{"type":"integer","title":"Online"},"total":{"type":"integer","title":"Total"},"failing":{"additionalProperties":{"type":"integer"},"type":"object","title":"Failing"},"spark":{"items":{"type":"integer"},"type":"array","title":"Spark"}},"type":"object","required":["online","total","failing","spark"],"title":"RegistrationsOut"},"RetryOut":{"properties":{"status":{"type":"string","title":"Status","default":"queued"},"generation":{"type":"integer","title":"Generation"}},"type":"object","required":["generation"],"title":"RetryOut"},"StepOut":{"properties":{"key":{"type":"string","title":"Key"},"status":{"type":"string","enum":["pending","ok","bad","skipped"],"title":"Status"},"code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Code"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"},"at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"At"},"extra":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra"}},"type":"object","required":["key","status","code","detail","at"],"title":"StepOut"},"SubscriptionOut":{"properties":{"status":{"type":"string","title":"Status"},"current_period_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Period End"},"cancel_at_period_end":{"type":"boolean","title":"Cancel At Period End"}},"type":"object","required":["status","current_period_end","cancel_at_period_end"],"title":"SubscriptionOut"},"SuccessOut":{"properties":{"rate":{"type":"number","title":"Rate"},"calls":{"type":"integer","title":"Calls"},"previous_rate":{"type":"number","title":"Previous Rate"},"spark":{"items":{"type":"number"},"type":"array","title":"Spark"}},"type":"object","required":["rate","calls","previous_rate","spark"],"title":"SuccessOut"},"TargetObjectOut":{"properties":{"endpoint":{"$ref":"#/components/schemas/relaydock_cp__api__routers__targets__EndpointRef"},"inbound_trunk_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inbound Trunk Id"},"outbound_trunk_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outbound Trunk Id"},"dispatch_rule_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dispatch Rule Id"},"reconciled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reconciled At"},"reconcile_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reconcile State"},"provision_state":{"type":"string","title":"Provision State"}},"type":"object","required":["endpoint","inbound_trunk_id","outbound_trunk_id","dispatch_rule_id","reconciled_at","reconcile_state","provision_state"],"title":"TargetObjectOut"},"TargetOut":{"properties":{"sip_host":{"type":"string","title":"Sip Host"},"api_url":{"type":"string","title":"Api Url"},"api_key_hint":{"type":"string","title":"Api Key Hint"},"status":{"type":"string","title":"Status"},"last_error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error Code"},"verification":{"type":"string","title":"Verification"},"verification_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Error"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"objects":{"items":{"$ref":"#/components/schemas/TargetObjectOut"},"type":"array","title":"Objects"}},"type":"object","required":["sip_host","api_url","api_key_hint","status","last_error_code","verification","verification_error","verified_at","objects"],"title":"TargetOut"},"TenantOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"status":{"type":"string","title":"Status"},"plan":{"type":"string","title":"Plan"},"trial_ends_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trial Ends At"},"notification_emails":{"items":{"type":"string"},"type":"array","title":"Notification Emails"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"role":{"type":"string","title":"Role"},"read_only":{"type":"boolean","title":"Read Only"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"terms_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Version"},"terms_accepted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Terms Accepted At"},"vat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vat Id"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"purge_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Purge At"}},"type":"object","required":["id","name","slug","status","plan","trial_ends_at","notification_emails","created_at","role","read_only"],"title":"TenantOut"},"TestCallIn":{"properties":{"to":{"type":"string","maxLength":32,"minLength":1,"title":"To"},"caller":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Caller"}},"type":"object","required":["to"],"title":"TestCallIn"},"TestCallOut":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"endpoint_id":{"type":"string","format":"uuid","title":"Endpoint Id"},"callee":{"type":"string","title":"Callee"},"caller":{"type":"string","title":"Caller"},"state":{"type":"string","title":"State"},"steps":{"items":{"$ref":"#/components/schemas/StepOut"},"type":"array","title":"Steps"},"result_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Result Code"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"direction":{"type":"string","title":"Direction","default":"outbound"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"numbers":{"items":{"type":"string"},"type":"array","title":"Numbers","default":[]}},"type":"object","required":["id","endpoint_id","callee","caller","state","steps","result_code","error","created_at","updated_at"],"title":"TestCallOut"},"TimelineStep":{"properties":{"at":{"type":"string","format":"date-time","title":"At"},"key":{"type":"string","title":"Key"},"detail":{"additionalProperties":true,"type":"object","title":"Detail"}},"type":"object","required":["at","key","detail"],"title":"TimelineStep"},"TransitionOut":{"properties":{"at":{"type":"string","format":"date-time","title":"At"},"state":{"type":"string","title":"State"},"sip_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sip Code"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["at","state","sip_code","reason"],"title":"TransitionOut"},"TrunkDetail":{"properties":{"source_ips":{"items":{"type":"string"},"type":"array","title":"Source Ips"},"source_ip_count":{"type":"integer","title":"Source Ip Count"},"digest_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Digest Username"},"has_digest_password":{"type":"boolean","title":"Has Digest Password"},"outbound":{"anyOf":[{"$ref":"#/components/schemas/OutboundDetail"},{"type":"null"}]}},"type":"object","required":["source_ips","source_ip_count","digest_username","has_digest_password","outbound"],"title":"TrunkDetail"},"TrunkIn":{"properties":{"source_ips":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":50},{"type":"null"}],"title":"Source Ips"},"digest_username":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Digest Username"},"digest_password":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Digest Password"},"numbers":{"items":{"type":"string"},"type":"array","maxItems":100,"title":"Numbers"},"outbound":{"anyOf":[{"$ref":"#/components/schemas/OutboundIn"},{"type":"null"}]}},"type":"object","title":"TrunkIn"},"TrunkPatch":{"properties":{"source_ips":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":50},{"type":"null"}],"title":"Source Ips"},"digest_username":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Digest Username"},"digest_password":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Digest Password"},"numbers":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":100},{"type":"null"}],"title":"Numbers"},"outbound":{"anyOf":[{"$ref":"#/components/schemas/OutboundIn"},{"type":"null"}]}},"type":"object","title":"TrunkPatch"},"TrunkSummary":{"properties":{"source_ip_count":{"type":"integer","title":"Source Ip Count"},"digest":{"type":"boolean","title":"Digest"},"outbound":{"type":"boolean","title":"Outbound"}},"type":"object","required":["source_ip_count","digest","outbound"],"title":"TrunkSummary"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"relaydock_cp__api__routers__activity__EndpointRef":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"EndpointRef"},"relaydock_cp__api__routers__targets__EndpointRef":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"sip_id":{"type":"string","title":"Sip Id"}},"type":"object","required":["id","name","sip_id"],"title":"EndpointRef"}},"securitySchemes":{"ApiKey":{"type":"http","description":"An API key from the RelayDock panel (Settings → API keys), sent as `Authorization: Bearer rdk_…`. Keys act with member rights on the team that created them.","scheme":"bearer"}}},"tags":[{"name":"health","description":"Service health. No authentication."},{"name":"tenant","description":"The team that owns the key, and its members."},{"name":"target","description":"The connected LiveKit project and its verification."},{"name":"providers","description":"Carrier and PBX templates for new endpoints."},{"name":"endpoints","description":"Registration and trunk endpoints."},{"name":"activity","description":"Event feed and registration history."},{"name":"numbers","description":"Phone numbers routed to your agents."},{"name":"calls","description":"Call records with the edge's timeline."},{"name":"usage","description":"Usage overview and monthly minutes."},{"name":"billing","description":"Plan, limits, this month's usage and the pricing terms."},{"name":"test-calls","description":"Outbound test calls and inbound checks."}]}