Reference¶
Fejlkoder¶
Fejl returneres som detailedError med errorCode og errorText.
| HTTP | Betydning |
|---|---|
| 400 | Manglende/ugyldigt input, unikt felt i konflikt, ugyldig reservation |
| 401 | Manglende/ugyldig JWT, forkert rolle, manglende email/organisation |
| 403 | Møde tilhører ikke brugerens organisation, eller bruger er ikke arrangør |
| 404 | UUID/id findes ikke, eller pool har ingen ledig scheduling info |
| 406 | Ugyldig provisionStatus for operation, template/URI-konflikt |
| 500 | Uventet serverfejl |
Typiske 400-årsager¶
- Påkrævet parameter/property mangler eller er tom
- Unikt felt (fx
externalId) er allerede i brug schedulingInfoReservationIdkombineret medguestPin/hostPin- Ingen ledig scheduling info i pool
- Scheduling template ikke fundet
Typiske 401-årsager¶
- Token udløbet eller ugyldig signatur
- Bruger har ikke den rolle endpoint kræver
- Bruger mangler email eller organisation i token
Typiske 403-årsager¶
- Møde tilhører en anden organisation end brugeren
- Normal
meeting-userforsøger at opdatere andres møde - Brugerens organisation er ikke oprettet i Video API
Typiske 406-årsager¶
- Sletning af møde når provisionStatus ≠
AWAITS_PROVISION - Opdatering ud over
endTimenår provisionStatus erPROVISIONED_OK - Ugyldig template-konfiguration eller for lille URI-interval
Anbefalet klient-adfærd¶
| Status | Handling |
|---|---|
400 |
Vis valideringsfejl til bruger; ret input |
401 |
Forny token; ellers logud |
403 |
Vis adgangsfejl; foretag ikke retry |
404 |
Håndter som "ikke fundet" |
406 |
Tjek provisionStatus; tilpas operation |
500 |
Log fejl; retry med backoff; kontakt support ved gentagelse |
Se også Fejlhåndtering — eksempler.
JWT-claims og roller¶
v2 anvender OAuth2/JWT fra VDX Keycloak. Claim-navne er konfigurerbare, men følgende skal være til stede i token:
| Claim (typisk navn) | Påkrævet | Beskrivelse |
|---|---|---|
userservice.token.attribute.organisation |
Ja (create/update) | Brugerens organisation |
userservice.token.attribute.email |
Ja (create/update) | Brugerens email |
userservice.token.attribute.userrole |
Ja | Mindst én meeting-rolle |
Bekræft de konkrete claim-navne ved adgangsanmodning hos MedCom.
Meeting-roller¶
Følgende roller er relevante for eksterne integrationer (værdierne er ikke konfigurerbare):
| Rolle | Beskrivelse |
|---|---|
meeting-admin |
Admin — templates, pool-reservation, fuld adgang |
meeting-user |
Normal bruger — egne møder |
meeting-planner |
Planlægger — møder i organisation, evt. via organizedByEmail |
En bruger kan have flere roller samtidig. Endpoint-beskrivelser angiver hvilke roller der giver adgang.
Bemærk: Provisioner-roller (meeting-provisioner, meeting-provisioner-user) bruges kun internt i VDX og kan ikke tildeles eksterne brugere.
provisionStatus¶
| Værdi | Numerisk | Beskrivelse |
|---|---|---|
AWAITS_PROVISION |
0 | Afventer provisionering (default) |
STARTING_TO_PROVISION |
1 | Provisionering igangsat |
PROVISION_PROBLEMS |
2 | Fejl under provisionering |
PROVISIONED_OK |
3 | Succesfuldt provisioneret |
STARTING_TO_DEPROVISION |
4 | Deprovisionering igangsat |
DEPROVISION_PROBLEMS |
5 | Fejl under deprovisionering |
DEPROVISION_OK |
6 | Succesfuldt deprovisioneret |
Øvrige enums¶
guestMicrophone¶
on, off, muted
meetingType¶
NORMAL (default), POOL
vmrType¶
conference, lecture
vmrQuality¶
sd, hd, fullhd
directMedia¶
never, best_effort
viewType (udvalg)¶
one_main_zero_pips, one_main_seven_pips, one_main_twentyone_pips, two_mains_twentyone_pips, m.fl.
Se OpenAPI-kontrakt for komplet enum-liste.
Timestamp-format¶
v2 (anvend dette)¶
| Retning | Format | Eksempel |
|---|---|---|
| Input (query/body) | yyyy-MM-dd'T'HH:mm:ssXXX |
2026-06-28T10:00:00Z |
| Output (respons) | ISO 8601 med offset | 2026-06-28T12:00:00+02:00 |
- Sekundbrøkdele i input tillades men ignoreres
- Ved query med
+i timezone: URL-encode som%2B
v1/v2-forskelle¶
v1 er under udfasning. Nye integrationer skal bruge v2.
| Område | v1 | v2 |
|---|---|---|
| Base path | /meetings, /scheduling-info, ... |
/v2/meetings, /v2/scheduling-info, ... |
| Autentificering | SAML-attributter / sessiondata | OAuth2 JWT (Keycloak) |
| Query timestamp | 2019-10-02T14:01:00+%2B0000 |
2019-10-02T14:01:00Z |
| Output timestamp | 2019-10-02T13:00:00 +0000 |
2019-10-02T15:00:00+02:00 |
| Provisioner-rolle | meeting-provisioner (auto promoted) |
Eksplicit meeting-provisioner-user claim (kun intern) |
OpenAPI-kontrakt¶
Fuld API-kontrakt (SwaggerHub):
https://api-docs.vconf.dk/videoapi/v1/videoapi/
Kontrakten dækker både v1 og v2. v2-endpoints er under /v2/-prefix.
Flow-diagrammer¶
Booking-integration (mønster A)¶
sequenceDiagram
participant App as Din backend
participant Keycloak
participant VideoAPI as Video API v2
App->>Keycloak: Authorization Code login
Keycloak->>App: access_token
App->>VideoAPI: POST /v2/meetings
VideoAPI->>App: Meeting + uuid
App->>VideoAPI: GET /v2/scheduling-info/{uuid}
VideoAPI->>App: uriWithDomain, portalLink, pins
Se også Integrationsguide — flows.
Se også¶
Ændringshistorik¶
| Dato | Ændring |
|---|---|
| 2026-06-27 | Første reference-side for MedCom Video API v2 |