openapi: "3.1.0"
info:
  title: "HvorErDen Public API"
  version: "1.0.0"
  summary: "Offentlig OpenAPI 3.1-spesifikasjon for web, mobil, support og webhook-integrasjoner."
  description: "Denne spesifikasjonen beskriver alle navngitte `api.*`-ruter som faktisk er registrert i Laravel-applikasjonen.\n\nBeskyttede endepunkter bruker enten web/session-auth, mobile Bearer-tokens eller provider-signaturer for webhooker.\n\nSystemet tilbyr forelopig ikke selvbetjente, langlivede API-nokler for tredjepartsintegrasjoner. Dokumentasjonen forklarer derfor hvordan tilgang hentes i dag."
servers:
  -
    url: "https://lager.aiportalen.cloud"
    description: "Primar applikasjonshost"
tags:
  -
    name: "Public & Core"
    description: "Offentlige status- og kontraktendepunkter som kan leses uten innlogging."
  -
    name: "Mobile Auth"
    description: "Innlogging, registrering, refresh og passordreset for mobile klienter."
  -
    name: "Mobile Core"
    description: "Bootstrap, devices, households og systemlogg for mobilklienter."
  -
    name: "Mobile AI"
    description: "Mobiltilgang til AI-sok, AI-vision, intake og plasseringsforslag."
  -
    name: "Mobile Billing"
    description: "Mobiltilgang til abonnementsstatus, entitlements, bruk og kundeportal."
  -
    name: "Mobile Inventory"
    description: "Inventarsok, detaljer og capability-endepunkter for mobil."
  -
    name: "Mobile Sync"
    description: "Manifest, snapshots, mediaopplasting og mutations for mobil synk."
  -
    name: "Mobile Organizer"
    description: "Mobil planlegging, utførelse og feedback rundt organisering."
  -
    name: "Mobile Security"
    description: "Mobil sikkerhetsstatus, dataeksporter og cache purge-hendelser."
  -
    name: "Mobile Privacy"
    description: "Mobil personvernstatus."
  -
    name: "Mobile Release"
    description: "Offentlige release-notes og versjonspolicy for Android-klienten."
  -
    name: "Mobile Support"
    description: "Supportflyt som mobilklient kan bruke i tvungne oppgraderingssituasjoner."
  -
    name: "AI"
    description: "Server-side AI-sok, svar, intake, vision og organizer."
  -
    name: "Audit"
    description: "Audit trail og hendelsessporing."
  -
    name: "Billing"
    description: "Planer, checkout, fakturaer, customer portal og entitlements."
  -
    name: "Billing Webhook"
    description: "Provider-webhooker for autoritativ abonnementsstatus."
  -
    name: "Containers"
    description: "CRUD, plassering og historikk for beholdere."
  -
    name: "Data Portability"
    description: "Eksporter, import-jobber og nedlastinger."
  -
    name: "Documentation"
    description: "Offentlig dokumentasjon og superadmin-artikler."
  -
    name: "Incidents"
    description: "Hendelser og maintenance windows for drift."
  -
    name: "Items"
    description: "CRUD, media, produktkoder, mengde og bevegelser for gjenstander."
  -
    name: "Labels"
    description: "QR/etikettforhandsvisning, printjobber og maler."
  -
    name: "Launch Readiness"
    description: "Go/no-go og sjekklister for release readiness."
  -
    name: "Media"
    description: "Privat medialevering og varianter."
  -
    name: "Observability"
    description: "Driftsmetrikker og manuelle observability-kjoringer."
  -
    name: "Operations"
    description: "Backup health, attestasjoner, restore drills og readiness."
  -
    name: "Organization"
    description: "Plan-godkjenning, feedback og guidet execution."
  -
    name: "Privacy"
    description: "Privacy requests, AI-purge og personvernstatus."
  -
    name: "Product Codes"
    description: "Produktoppslag og kodebehandling."
  -
    name: "Quality"
    description: "Kvalitetslop, manuelle checks og oppsummeringer."
  -
    name: "Release"
    description: "Release candidates og gates."
  -
    name: "Scanning"
    description: "Scan resolve, scan sessions, actions og historikk."
  -
    name: "Security"
    description: "MFA, session security, mobile devices og CSP-rapporter."
  -
    name: "Structure"
    description: "Lagerstruktur: lokasjoner, reoler, hyller, plasser og tree/search."
  -
    name: "Superadmin"
    description: "Superadmin-oversikter, support sessions og manuelle overstyringer."
  -
    name: "Support"
    description: "Support tickets, kommentarer, vedlegg og diagnostikk."
  -
    name: "Taxonomy"
    description: "Kategorier, tags og assignments."
  -
    name: "Usage"
    description: "Bruksmetrikker og kvoteforbruk."
paths:
  /api/v1/ai/answer:
    post:
      tags:
        - "AI"
      summary: "Create AI Answer"
      description: "Laravel route name `api.ai.answer`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 20 requests per minute."
      operationId: "api_ai_answer"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.answer"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-answer"
      x-rate-limit:
        name: "ai-answer"
        limit: "20 requests per minute"
        scope: "User + household + IP"
  /api/v1/ai/capabilities:
    get:
      tags:
        - "AI"
      summary: "Get Ai capabilities"
      description: "Laravel route name `api.ai.capabilities`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_ai_capabilities"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.capabilities"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/ai/intake/container-suggestions:
    post:
      tags:
        - "AI"
      summary: "Create AI Intake Container Suggestions"
      description: "Laravel route name `api.ai.intake.container-suggestions.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 20 requests per minute."
      operationId: "api_ai_intake_container_suggestions_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.intake.container-suggestions.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "ai-vision"
        limit: "20 requests per minute"
        scope: "User + household + IP"
  "/api/v1/ai/intake/container-suggestions/{public_id}/accept":
    post:
      tags:
        - "AI"
      summary: "Create AI Intake Container Suggestions Accept"
      description: "Laravel route name `api.ai.intake.container-suggestions.accept`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_ai_intake_container_suggestions_accept"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.intake.container-suggestions.accept"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/ai/intake/item-suggestions:
    post:
      tags:
        - "AI"
      summary: "Create AI Intake Item Suggestions"
      description: "Laravel route name `api.ai.intake.item-suggestions.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 20 requests per minute."
      operationId: "api_ai_intake_item_suggestions_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.intake.item-suggestions.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "ai-vision"
        limit: "20 requests per minute"
        scope: "User + household + IP"
  "/api/v1/ai/intake/item-suggestions/{public_id}/accept":
    post:
      tags:
        - "AI"
      summary: "Create AI Intake Item Suggestions Accept"
      description: "Laravel route name `api.ai.intake.item-suggestions.accept`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_ai_intake_item_suggestions_accept"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.intake.item-suggestions.accept"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/ai/organizer/capabilities:
    get:
      tags:
        - "AI"
      summary: "Get AI Organizer capabilities"
      description: "Laravel route name `api.ai.organizer.capabilities`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_ai_organizer_capabilities"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.organizer.capabilities"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/ai/organizer/plans:
    post:
      tags:
        - "AI"
      summary: "Create AI Organizer Plans"
      description: "Laravel route name `api.ai.organizer.plans.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 20 requests per minute."
      operationId: "api_ai_organizer_plans_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.organizer.plans.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "ai-vision"
        limit: "20 requests per minute"
        scope: "User + household + IP"
  "/api/v1/ai/organizer/plans/{plan_public_id}":
    get:
      tags:
        - "AI"
      summary: "Get AI Organizer Plans"
      description: "Laravel route name `api.ai.organizer.plans.show`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_ai_organizer_plans_show"
      parameters:
        -
          name: "plan_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.organizer.plans.show"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/ai/organizer/plans/{plan_public_id}/replan":
    post:
      tags:
        - "AI"
      summary: "Replan AI Organizer Plans"
      description: "Laravel route name `api.ai.organizer.plans.replan`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 20 requests per minute."
      operationId: "api_ai_organizer_plans_replan"
      parameters:
        -
          name: "plan_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.organizer.plans.replan"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "ai-vision"
        limit: "20 requests per minute"
        scope: "User + household + IP"
  /api/v1/ai/placement/container-to-slot:
    post:
      tags:
        - "AI"
      summary: "Create AI Placement Container To Slot"
      description: "Laravel route name `api.ai.placement.container-to-slot`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 20 requests per minute."
      operationId: "api_ai_placement_container_to_slot"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.placement.container-to-slot"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "ai-vision"
        limit: "20 requests per minute"
        scope: "User + household + IP"
  /api/v1/ai/placement/item-to-container:
    post:
      tags:
        - "AI"
      summary: "Create AI Placement Item To Container"
      description: "Laravel route name `api.ai.placement.item-to-container`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 20 requests per minute."
      operationId: "api_ai_placement_item_to_container"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.placement.item-to-container"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "ai-vision"
        limit: "20 requests per minute"
        scope: "User + household + IP"
  /api/v1/ai/search:
    post:
      tags:
        - "AI"
      summary: "Search Ai"
      description: "Laravel route name `api.ai.search`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 60 requests per minute."
      operationId: "api_ai_search"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.search"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-search"
      x-rate-limit:
        name: "ai-search"
        limit: "60 requests per minute"
        scope: "User + household + IP"
  "/api/v1/ai/search/{query_public_id}":
    get:
      tags:
        - "AI"
      summary: "Get AI Search"
      description: "Laravel route name `api.ai.search.show`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_ai_search_show"
      parameters:
        -
          name: "query_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.search.show"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/ai/search/{query_public_id}/feedback":
    post:
      tags:
        - "AI"
      summary: "Submit feedback for AI Search"
      description: "Laravel route name `api.ai.search.feedback`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 60 requests per minute."
      operationId: "api_ai_search_feedback"
      parameters:
        -
          name: "query_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.search.feedback"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-feedback"
      x-rate-limit:
        name: "ai-feedback"
        limit: "60 requests per minute"
        scope: "User + household + IP"
  /api/v1/ai/vision/capabilities:
    get:
      tags:
        - "AI"
      summary: "Get AI Vision capabilities"
      description: "Laravel route name `api.ai.vision.capabilities`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_ai_vision_capabilities"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.vision.capabilities"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/ai/vision/feedback:
    post:
      tags:
        - "AI"
      summary: "Submit feedback for AI Vision"
      description: "Laravel route name `api.ai.vision.feedback`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 60 requests per minute."
      operationId: "api_ai_vision_feedback"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.vision.feedback"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-vision-feedback"
      x-rate-limit:
        name: "ai-vision-feedback"
        limit: "60 requests per minute"
        scope: "User + household + IP"
  /api/v1/ai/vision/sessions:
    post:
      tags:
        - "AI"
      summary: "Create AI Vision Sessions"
      description: "Laravel route name `api.ai.vision.sessions.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 20 requests per minute."
      operationId: "api_ai_vision_sessions_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.vision.sessions.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "ai-vision"
        limit: "20 requests per minute"
        scope: "User + household + IP"
  "/api/v1/ai/vision/sessions/{public_id}":
    get:
      tags:
        - "AI"
      summary: "Get AI Vision Sessions"
      description: "Laravel route name `api.ai.vision.sessions.show`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_ai_vision_sessions_show"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.vision.sessions.show"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/ai/vision/sessions/{public_id}/analyze":
    post:
      tags:
        - "AI"
      summary: "Analyze AI Vision Sessions"
      description: "Laravel route name `api.ai.vision.sessions.analyze`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 20 requests per minute."
      operationId: "api_ai_vision_sessions_analyze"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.vision.sessions.analyze"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "ai-vision"
        limit: "20 requests per minute"
        scope: "User + household + IP"
  "/api/v1/ai/vision/sessions/{public_id}/images":
    post:
      tags:
        - "AI"
      summary: "Create AI Vision Sessions Images"
      description: "Laravel route name `api.ai.vision.sessions.images`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet. Rate limit: 20 requests per minute."
      operationId: "api_ai_vision_sessions_images"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.ai.vision.sessions.images"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "ai-vision"
        limit: "20 requests per minute"
        scope: "User + household + IP"
  /api/v1/audit:
    get:
      tags:
        - "Audit"
      summary: "List Audit"
      description: "Laravel route name `api.audit.index`. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_audit_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.audit.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
  "/api/v1/audit/{public_id}":
    get:
      tags:
        - "Audit"
      summary: "Get Audit"
      description: "Laravel route name `api.audit.show`. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_audit_show"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.audit.show"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
  /api/v1/billing/checkout-sessions:
    post:
      tags:
        - "Billing"
      summary: "Create Billing Checkout Sessions"
      description: "Laravel route name `api.billing.checkout-sessions.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_billing_checkout_sessions_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.billing.checkout-sessions.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/billing/customer-portal-sessions:
    post:
      tags:
        - "Billing"
      summary: "Create Billing Customer Portal Sessions"
      description: "Laravel route name `api.billing.customer-portal-sessions.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_billing_customer_portal_sessions_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.billing.customer-portal-sessions.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/billing/invoices:
    get:
      tags:
        - "Billing"
      summary: "Get Billing Invoices"
      description: "Laravel route name `api.billing.invoices`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_billing_invoices"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.billing.invoices"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/billing/plans:
    get:
      tags:
        - "Billing"
      summary: "Get Billing Plans"
      description: "Laravel route name `api.billing.plans`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_billing_plans"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.billing.plans"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/billing/status:
    get:
      tags:
        - "Billing"
      summary: "Get Billing status"
      description: "Laravel route name `api.billing.status`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_billing_status"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.billing.status"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/containers:
    get:
      tags:
        - "Containers"
      summary: "List Containers"
      description: "Laravel route name `api.containers.index`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_containers_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.containers.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    post:
      tags:
        - "Containers"
      summary: "Create Containers"
      description: "Laravel route name `api.containers.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_containers_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.containers.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/containers/{container}":
    get:
      tags:
        - "Containers"
      summary: "Get Containers"
      description: "Laravel route name `api.containers.show`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_containers_show"
      parameters:
        -
          name: "container"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.containers.show"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    patch:
      tags:
        - "Containers"
      summary: "Update Containers"
      description: "Laravel route name `api.containers.update`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_containers_update"
      parameters:
        -
          name: "container"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.containers.update"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/containers/{container}/archive":
    post:
      tags:
        - "Containers"
      summary: "Archive Containers"
      description: "Laravel route name `api.containers.archive`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_containers_archive"
      parameters:
        -
          name: "container"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.containers.archive"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/containers/{container}/fill-status":
    patch:
      tags:
        - "Containers"
      summary: "Update Containers Fill Status"
      description: "Laravel route name `api.containers.fill-status`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_containers_fill_status"
      parameters:
        -
          name: "container"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.containers.fill-status"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/containers/{container}/move":
    post:
      tags:
        - "Containers"
      summary: "Move Containers"
      description: "Laravel route name `api.containers.move`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_containers_move"
      parameters:
        -
          name: "container"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.containers.move"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/containers/{container}/movements":
    get:
      tags:
        - "Containers"
      summary: "Get Containers Movements"
      description: "Laravel route name `api.containers.movements`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_containers_movements"
      parameters:
        -
          name: "container"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.containers.movements"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/containers/{container}/place":
    post:
      tags:
        - "Containers"
      summary: "Create Containers Place"
      description: "Laravel route name `api.containers.place`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_containers_place"
      parameters:
        -
          name: "container"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.containers.place"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/containers/{container}/restore":
    post:
      tags:
        - "Containers"
      summary: "Restore Containers"
      description: "Laravel route name `api.containers.restore`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_containers_restore"
      parameters:
        -
          name: "container"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.containers.restore"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/containers/{container}/unplace":
    post:
      tags:
        - "Containers"
      summary: "Create Containers Unplace"
      description: "Laravel route name `api.containers.unplace`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_containers_unplace"
      parameters:
        -
          name: "container"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.containers.unplace"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/data-exports:
    get:
      tags:
        - "Data Portability"
      summary: "List Data Exports"
      description: "Laravel route name `api.data-exports.index`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_data_exports_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.data-exports.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    post:
      tags:
        - "Data Portability"
      summary: "Create Data Exports"
      description: "Laravel route name `api.data-exports.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_data_exports_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.data-exports.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/data-exports/{public_id}":
    delete:
      tags:
        - "Data Portability"
      summary: "Delete Data Exports"
      description: "Laravel route name `api.data-exports.destroy`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_data_exports_destroy"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.data-exports.destroy"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    get:
      tags:
        - "Data Portability"
      summary: "Get Data Exports"
      description: "Laravel route name `api.data-exports.show`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_data_exports_show"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.data-exports.show"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/data-exports/{public_id}/download":
    get:
      tags:
        - "Data Portability"
      summary: "Download Data Exports"
      description: "Laravel route name `api.data-exports.download`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_data_exports_download"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.data-exports.download"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/data-imports:
    post:
      tags:
        - "Data Portability"
      summary: "Create Data Imports"
      description: "Laravel route name `api.data-imports.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_data_imports_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.data-imports.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/data-imports/{public_id}":
    get:
      tags:
        - "Data Portability"
      summary: "Get Data Imports"
      description: "Laravel route name `api.data-imports.show`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_data_imports_show"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.data-imports.show"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/data-imports/{public_id}/cancel":
    post:
      tags:
        - "Data Portability"
      summary: "Cancel Data Imports"
      description: "Laravel route name `api.data-imports.cancel`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_data_imports_cancel"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.data-imports.cancel"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/data-imports/{public_id}/confirm":
    post:
      tags:
        - "Data Portability"
      summary: "Confirm Data Imports"
      description: "Laravel route name `api.data-imports.confirm`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_data_imports_confirm"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.data-imports.confirm"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/data-imports/{public_id}/dry-run":
    post:
      tags:
        - "Data Portability"
      summary: "Create Data Imports Dry Run"
      description: "Laravel route name `api.data-imports.dry-run`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_data_imports_dry_run"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.data-imports.dry-run"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/documentation/articles:
    get:
      tags:
        - "Documentation"
      summary: "List public documentation articles"
      description: "Offentlig dokumentasjonssok. Superadmin ser et rikere resultatsett, men ruten er offentlig lesbar."
      operationId: "api_documentation_articles_index"
      parameters:
        -
          name: "q"
          in: "query"
          required: false
          description: "Valgfri sokestreng for tittel, sammendrag eller brødtekst."
          schema:
            type: "string"
      responses:
        200:
          description: "Offentlig dokumentasjon"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/DocumentationIndexPayload"
      x-laravel-route-name: "api.documentation.articles.index"
      x-laravel-middleware:
        - "api"
    post:
      tags:
        - "Documentation"
      summary: "Create Documentation Articles"
      description: "Laravel route name `api.documentation.articles.store`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_documentation_articles_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.documentation.articles.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  "/api/v1/documentation/articles/{public_id}/publish":
    post:
      tags:
        - "Documentation"
      summary: "Create Documentation Articles Publish"
      description: "Laravel route name `api.documentation.articles.publish`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_documentation_articles_publish"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.documentation.articles.publish"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/entitlements:
    get:
      tags:
        - "Billing"
      summary: "Get Entitlements"
      description: "Laravel route name `api.entitlements`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_entitlements"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.entitlements"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/incidents:
    get:
      tags:
        - "Incidents"
      summary: "List Incidents"
      description: "Laravel route name `api.incidents.index`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_incidents_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.incidents.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
    post:
      tags:
        - "Incidents"
      summary: "Create Incidents"
      description: "Laravel route name `api.incidents.store`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_incidents_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.incidents.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/incidents/maintenance-windows:
    post:
      tags:
        - "Incidents"
      summary: "Create Incidents Maintenance Windows"
      description: "Laravel route name `api.incidents.maintenance-windows.store`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_incidents_maintenance_windows_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.incidents.maintenance-windows.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  "/api/v1/incidents/{public_id}/resolve":
    post:
      tags:
        - "Incidents"
      summary: "Resolve Incidents"
      description: "Laravel route name `api.incidents.resolve`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_incidents_resolve"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.incidents.resolve"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  "/api/v1/incidents/{public_id}/updates":
    post:
      tags:
        - "Incidents"
      summary: "Create Incidents Updates"
      description: "Laravel route name `api.incidents.updates.store`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_incidents_updates_store"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.incidents.updates.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/items:
    get:
      tags:
        - "Items"
      summary: "List Items"
      description: "Laravel route name `api.items.index`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    post:
      tags:
        - "Items"
      summary: "Create Items"
      description: "Laravel route name `api.items.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}":
    get:
      tags:
        - "Items"
      summary: "Get Items"
      description: "Laravel route name `api.items.show`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_show"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.show"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    patch:
      tags:
        - "Items"
      summary: "Update Items"
      description: "Laravel route name `api.items.update`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_update"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.update"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/archive":
    post:
      tags:
        - "Items"
      summary: "Archive Items"
      description: "Laravel route name `api.items.archive`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_archive"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.archive"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/assign":
    post:
      tags:
        - "Items"
      summary: "Assign Items"
      description: "Laravel route name `api.items.assign`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_assign"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.assign"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/category":
    put:
      tags:
        - "Items"
      summary: "Update Items Category"
      description: "Laravel route name `api.items.category.update`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_category_update"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.category.update"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/media":
    post:
      tags:
        - "Items"
      summary: "Create Items Media"
      description: "Laravel route name `api.items.media.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_media_store"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.media.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/media/reorder":
    patch:
      tags:
        - "Items"
      summary: "Reorder Items Media"
      description: "Laravel route name `api.items.media.reorder`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_media_reorder"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.media.reorder"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/media/{media}":
    delete:
      tags:
        - "Items"
      summary: "Delete Items Media"
      description: "Laravel route name `api.items.media.destroy`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_media_destroy"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
        -
          name: "media"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.media.destroy"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/media/{media}/primary":
    post:
      tags:
        - "Items"
      summary: "Set primary Items Media"
      description: "Laravel route name `api.items.media.primary`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_media_primary"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
        -
          name: "media"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.media.primary"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/media/{media}/rotate":
    post:
      tags:
        - "Items"
      summary: "Rotate Items Media"
      description: "Laravel route name `api.items.media.rotate`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_media_rotate"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
        -
          name: "media"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.media.rotate"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/move":
    post:
      tags:
        - "Items"
      summary: "Move Items"
      description: "Laravel route name `api.items.move`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_move"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.move"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/movements":
    get:
      tags:
        - "Items"
      summary: "Get Items Movements"
      description: "Laravel route name `api.items.movements`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_movements"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.movements"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/product-codes":
    post:
      tags:
        - "Items"
      summary: "Create Items Product Codes"
      description: "Laravel route name `api.items.product-codes.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_product_codes_store"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.product-codes.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/product-codes/{productCode}":
    delete:
      tags:
        - "Items"
      summary: "Delete Items Product Codes"
      description: "Laravel route name `api.items.product-codes.destroy`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_product_codes_destroy"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
        -
          name: "productCode"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.product-codes.destroy"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    patch:
      tags:
        - "Items"
      summary: "Update Items Product Codes"
      description: "Laravel route name `api.items.product-codes.update`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_product_codes_update"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
        -
          name: "productCode"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.product-codes.update"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/product-codes/{productCode}/primary":
    post:
      tags:
        - "Items"
      summary: "Set primary Items Product Codes"
      description: "Laravel route name `api.items.product-codes.primary`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_product_codes_primary"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
        -
          name: "productCode"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.product-codes.primary"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/quantity":
    patch:
      tags:
        - "Items"
      summary: "Update Items Quantity"
      description: "Laravel route name `api.items.quantity`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_quantity"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.quantity"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/quantity-history":
    get:
      tags:
        - "Items"
      summary: "Get Items Quantity History"
      description: "Laravel route name `api.items.quantity-history`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_quantity_history"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.quantity-history"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/restore":
    post:
      tags:
        - "Items"
      summary: "Restore Items"
      description: "Laravel route name `api.items.restore`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_restore"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.restore"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/tags":
    put:
      tags:
        - "Items"
      summary: "Update Items Tags"
      description: "Laravel route name `api.items.tags.update`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_tags_update"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.tags.update"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/items/{item}/unassign":
    post:
      tags:
        - "Items"
      summary: "Unassign Items"
      description: "Laravel route name `api.items.unassign`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_items_unassign"
      parameters:
        -
          name: "item"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.items.unassign"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/labels/preview:
    post:
      tags:
        - "Labels"
      summary: "Create Labels Preview"
      description: "Laravel route name `api.labels.preview`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_labels_preview"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.labels.preview"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/labels/print-jobs:
    post:
      tags:
        - "Labels"
      summary: "Create Labels Print Jobs"
      description: "Laravel route name `api.labels.print-jobs.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_labels_print_jobs_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.labels.print-jobs.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/labels/print-jobs/{printJob}":
    get:
      tags:
        - "Labels"
      summary: "Get Labels Print Jobs"
      description: "Laravel route name `api.labels.print-jobs.show`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_labels_print_jobs_show"
      parameters:
        -
          name: "printJob"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.labels.print-jobs.show"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/labels/print-jobs/{printJob}/download":
    get:
      tags:
        - "Labels"
      summary: "Download Labels Print Jobs"
      description: "Laravel route name `api.labels.print-jobs.download`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_labels_print_jobs_download"
      parameters:
        -
          name: "printJob"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.labels.print-jobs.download"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/labels/templates:
    get:
      tags:
        - "Labels"
      summary: "List Labels Templates"
      description: "Laravel route name `api.labels.templates.index`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_labels_templates_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.labels.templates.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/launch-readiness/checklist/{public_id}/complete":
    post:
      tags:
        - "Launch Readiness"
      summary: "Complete Launch Readiness Checklist"
      description: "Laravel route name `api.launch-readiness.checklist.complete`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_launch_readiness_checklist_complete"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.launch-readiness.checklist.complete"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/launch-readiness/go-no-go:
    post:
      tags:
        - "Launch Readiness"
      summary: "Create Launch Readiness Go No Go"
      description: "Laravel route name `api.launch-readiness.go-no-go`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_launch_readiness_go_no_go"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.launch-readiness.go-no-go"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/launch-readiness/summary:
    get:
      tags:
        - "Launch Readiness"
      summary: "Get Launch Readiness summary"
      description: "Laravel route name `api.launch-readiness.summary`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_launch_readiness_summary"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.launch-readiness.summary"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  "/api/v1/media/{media}/{variant}":
    get:
      tags:
        - "Media"
      summary: "Get Media"
      description: "Laravel route name `api.media.show`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_media_show"
      parameters:
        -
          name: "media"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
        -
          name: "variant"
          in: "path"
          required: true
          description: "Leveransevariant for media."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.media.show"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/mobile/ai/capabilities:
    get:
      tags:
        - "Mobile AI"
      summary: "Get Mobile Ai capabilities"
      description: "Laravel route name `api.mobile.ai.capabilities`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_ai_capabilities"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.ai.capabilities"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/ai/intake/container-suggestions:
    post:
      tags:
        - "Mobile AI"
      summary: "Create Mobile AI Vision Intake Container"
      description: "Laravel route name `api.mobile.ai.vision.intake.container`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_ai_vision_intake_container"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.ai.vision.intake.container"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/ai/intake/item-suggestions:
    post:
      tags:
        - "Mobile AI"
      summary: "Create Mobile AI Vision Intake Item"
      description: "Laravel route name `api.mobile.ai.vision.intake.item`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_ai_vision_intake_item"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.ai.vision.intake.item"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/ai/placement/container-to-slot:
    post:
      tags:
        - "Mobile AI"
      summary: "Create Mobile AI Vision Placement Container To Slot"
      description: "Laravel route name `api.mobile.ai.vision.placement.container-to-slot`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_ai_vision_placement_container_to_slot"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.ai.vision.placement.container-to-slot"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/ai/placement/item-to-container:
    post:
      tags:
        - "Mobile AI"
      summary: "Create Mobile AI Vision Placement Item To Container"
      description: "Laravel route name `api.mobile.ai.vision.placement.item-to-container`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_ai_vision_placement_item_to_container"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.ai.vision.placement.item-to-container"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/ai/search:
    post:
      tags:
        - "Mobile AI"
      summary: "Search Mobile Ai"
      description: "Laravel route name `api.mobile.ai.search`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_ai_search"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.ai.search"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
        - "throttle:ai-search"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/ai/vision/analyze:
    post:
      tags:
        - "Mobile AI"
      summary: "Analyze Mobile AI Vision"
      description: "Laravel route name `api.mobile.ai.vision.analyze`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_ai_vision_analyze"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.ai.vision.analyze"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
        - "throttle:ai-vision"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/ai/vision/capabilities:
    get:
      tags:
        - "Mobile AI"
      summary: "Get Mobile AI Vision capabilities"
      description: "Laravel route name `api.mobile.ai.vision.capabilities`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_ai_vision_capabilities"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.ai.vision.capabilities"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/auth/forgot-password:
    post:
      tags:
        - "Mobile Auth"
      summary: "Request mobile password reset flow"
      description: "Starter passordreset-flyt for mobilbrukere. Returnerer alltid en trygg melding uten å avsløre om e-posten finnes."
      operationId: "api_mobile_auth_forgot_password"
      responses:
        200:
          description: "Reset-instruks behandlet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/ForgotPasswordPayload"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      x-laravel-route-name: "api.mobile.auth.forgot-password"
      x-laravel-middleware:
        - "api"
        - "throttle:mobile-password"
      x-rate-limit:
        name: "mobile-password"
        limit: "6 requests per minute"
        scope: "IP + email + device_installation_id"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/ForgotPasswordRequest"
  /api/v1/mobile/auth/login:
    post:
      tags:
        - "Mobile Auth"
      summary: "Create mobile session and obtain bearer tokens"
      description: "Logger inn en Android-klient og returnerer kortlivet Bearer-token samt refresh-token. Dette er den primære måten å hente API-tilgang for mobile integrasjoner på i dagens løsning."
      operationId: "api_mobile_auth_login"
      responses:
        200:
          description: "Mobil innlogging vellykket"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/MobileAuthSessionData"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        401:
          description: "Ugyldig legitimasjon"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "E-post må verifiseres"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      x-laravel-route-name: "api.mobile.auth.login"
      x-laravel-middleware:
        - "api"
        - "throttle:mobile-login"
      x-rate-limit:
        name: "mobile-login"
        limit: "10 requests per minute"
        scope: "IP + email + device_installation_id"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/MobileLoginRequest"
  /api/v1/mobile/auth/logout:
    post:
      tags:
        - "Mobile Auth"
      summary: "Create Mobile Auth Logout"
      description: "Laravel route name `api.mobile.auth.logout`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_auth_logout"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.auth.logout"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/auth/refresh:
    post:
      tags:
        - "Mobile Auth"
      summary: "Rotate mobile refresh token and issue a new access token"
      description: "Brukes for å fornye en mobiløkt. Rebruk av refresh-token sperrer tokenfamilien."
      operationId: "api_mobile_auth_refresh"
      responses:
        200:
          description: "Mobil token fornyet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/MobileAuthSessionData"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        401:
          description: "Refresh-token ugyldig eller utløpt"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      x-laravel-route-name: "api.mobile.auth.refresh"
      x-laravel-middleware:
        - "api"
        - "throttle:mobile-refresh"
      x-rate-limit:
        name: "mobile-refresh"
        limit: "30 requests per minute"
        scope: "IP + email + device_installation_id"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/MobileRefreshRequest"
  /api/v1/mobile/auth/register:
    post:
      tags:
        - "Mobile Auth"
      summary: "Register mobile user and optionally create session"
      description: "Oppretter en ny mobilbruker. Dersom brukerstatus og e-postkrav tillater det, returneres også mobil sesjon med Bearer-token."
      operationId: "api_mobile_auth_register"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Mobil registrering behandlet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/MobileRegistrationResult"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Registrering er deaktivert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      x-laravel-route-name: "api.mobile.auth.register"
      x-laravel-middleware:
        - "api"
        - "throttle:mobile-register"
      x-rate-limit:
        name: "mobile-register"
        limit: "6 requests per minute"
        scope: "IP + email + device_installation_id"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/MobileRegisterRequest"
  /api/v1/mobile/auth/resend-verification:
    post:
      tags:
        - "Mobile Auth"
      summary: "Create Mobile Auth Resend Verification"
      description: "Laravel route name `api.mobile.auth.resend-verification`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_auth_resend_verification"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.auth.resend-verification"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/auth/vipps/complete:
    post:
      tags:
        - "Mobile Auth"
      summary: "Complete mobile Vipps login or registration flow"
      description: "Bytter Vipps autorisasjonskode mot profildata og oppretter mobil sesjon når kontoen kan brukes umiddelbart."
      operationId: "api_mobile_auth_vipps_complete"
      responses:
        200:
          description: "Vipps-flyt fullført"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/MobileVippsAuthCompletionPayload"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        422:
          description: "State er ugyldig eller utløpt"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        409:
          description: "Konto må registreres først"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        502:
          description: "Vipps svarte uten gyldig token"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      x-laravel-route-name: "api.mobile.auth.vipps.complete"
      x-laravel-middleware:
        - "api"
        - "throttle:mobile-login"
      x-rate-limit:
        name: "mobile-login"
        limit: "10 requests per minute"
        scope: "IP + email + device_installation_id"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/MobileVippsAuthCompleteRequest"
  /api/v1/mobile/auth/vipps/start:
    post:
      tags:
        - "Mobile Auth"
      summary: "Start mobile Vipps login or registration flow"
      description: "Oppretter en tidsbegrenset Vipps state for Android-klienten og returnerer authorization URL som kan åpnes i nettleser eller app-link-flyt."
      operationId: "api_mobile_auth_vipps_start"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Vipps-flyt startet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/MobileVippsAuthStartPayload"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Registrering er deaktivert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      x-laravel-route-name: "api.mobile.auth.vipps.start"
      x-laravel-middleware:
        - "api"
        - "throttle:mobile-login"
      x-rate-limit:
        name: "mobile-login"
        limit: "10 requests per minute"
        scope: "IP + email + device_installation_id"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/MobileVippsAuthStartRequest"
  /api/v1/mobile/billing/checkout-sessions:
    post:
      tags:
        - "Mobile Billing"
      summary: "Create hosted mobile billing checkout session"
      description: "Starter hosted checkout for mobil. Når provideren er Vipps returneres redirect-URL og referanse som senere bekreftes server-side."
      operationId: "api_mobile_billing_checkout_sessions_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Hosted checkout opprettet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/HostedBillingCheckoutPayload"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Aktiv husstand kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.billing.checkout-sessions.store"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/MobileBillingCheckoutRequest"
  /api/v1/mobile/billing/checkout-sessions/finalize:
    post:
      tags:
        - "Mobile Billing"
      summary: "Finalize hosted mobile billing checkout"
      description: "Bekrefter Vipps-betalingen server-side etter retur til app-linken og oppdaterer entitlements når betalingen er captured."
      operationId: "api_mobile_billing_checkout_sessions_finalize"
      responses:
        200:
          description: "Checkout finalisert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/VippsPaymentFinalizePayload"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Checkout tilhorer en annen husstand"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.billing.checkout-sessions.finalize"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
      requestBody:
        required: true
        content:
          application/json:
            schema:
              "$ref": "#/components/schemas/VippsPaymentFinalizeRequest"
  /api/v1/mobile/billing/open-portal:
    post:
      tags:
        - "Mobile Billing"
      summary: "Create Mobile Billing Open Portal"
      description: "Laravel route name `api.mobile.billing.open-portal`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_billing_open_portal"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.billing.open-portal"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/billing/status:
    get:
      tags:
        - "Mobile Billing"
      summary: "Get Mobile Billing status"
      description: "Laravel route name `api.mobile.billing.status`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_billing_status"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.billing.status"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/bootstrap:
    get:
      tags:
        - "Mobile Core"
      summary: "Get Mobile Bootstrap"
      description: "Laravel route name `api.mobile.bootstrap`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_bootstrap"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.bootstrap"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/config:
    get:
      tags:
        - "Mobile Core"
      summary: "Get public mobile client configuration"
      description: "Offentlig bootstrap-konfig for Android-klienten: kontraktversjon, tokenpolicy og versjonspolicy."
      operationId: "api_mobile_config"
      responses:
        200:
          description: "Mobilkonfigurasjon"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/MobileConfigPayload"
      x-laravel-route-name: "api.mobile.config"
      x-laravel-middleware:
        - "api"
  /api/v1/mobile/data-exports:
    get:
      tags:
        - "Mobile Core"
      summary: "List Mobile Data Exports"
      description: "Laravel route name `api.mobile.data-exports.index`."
      operationId: "api_mobile_data_exports_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.mobile.data-exports.index"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
    post:
      tags:
        - "Mobile Core"
      summary: "Create Mobile Data Exports"
      description: "Laravel route name `api.mobile.data-exports.store`."
      operationId: "api_mobile_data_exports_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.mobile.data-exports.store"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
  "/api/v1/mobile/data-exports/{public_id}":
    get:
      tags:
        - "Mobile Core"
      summary: "Get Mobile Data Exports"
      description: "Laravel route name `api.mobile.data-exports.show`."
      operationId: "api_mobile_data_exports_show"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.mobile.data-exports.show"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
  /api/v1/mobile/devices:
    get:
      tags:
        - "Mobile Core"
      summary: "List Mobile Devices"
      description: "Laravel route name `api.mobile.devices.index`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_devices_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.devices.index"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/devices/{device_public_id}":
    delete:
      tags:
        - "Mobile Core"
      summary: "Delete Mobile Devices"
      description: "Laravel route name `api.mobile.devices.destroy`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_devices_destroy"
      parameters:
        -
          name: "device_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.devices.destroy"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/entitlements:
    get:
      tags:
        - "Mobile Billing"
      summary: "Get Mobile Billing Entitlements"
      description: "Laravel route name `api.mobile.billing.entitlements`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_billing_entitlements"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.billing.entitlements"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/households:
    get:
      tags:
        - "Mobile Core"
      summary: "List Mobile Households"
      description: "Laravel route name `api.mobile.households.index`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_households_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.households.index"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
    post:
      tags:
        - "Mobile Core"
      summary: "Create Mobile Households"
      description: "Laravel route name `api.mobile.households.store`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_households_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.households.store"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/households/{household_public_id}/activate":
    post:
      tags:
        - "Mobile Core"
      summary: "Create Mobile Households Activate"
      description: "Laravel route name `api.mobile.households.activate`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_households_activate"
      parameters:
        -
          name: "household_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.households.activate"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/inventory/capabilities:
    get:
      tags:
        - "Mobile Inventory"
      summary: "Get Mobile Inventory capabilities"
      description: "Laravel route name `api.mobile.inventory.capabilities`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_inventory_capabilities"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.inventory.capabilities"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/inventory/search:
    get:
      tags:
        - "Mobile Inventory"
      summary: "Search Mobile Inventory"
      description: "Laravel route name `api.mobile.inventory.search`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_inventory_search"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.inventory.search"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/inventory/{resource_type}/{public_id}":
    get:
      tags:
        - "Mobile Inventory"
      summary: "Get Mobile Inventory Detail"
      description: "Laravel route name `api.mobile.inventory.detail`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_inventory_detail"
      parameters:
        -
          name: "resource_type"
          in: "path"
          required: true
          description: "Ressurstype som ruten forventer."
          schema:
            type: "string"
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.inventory.detail"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/media-uploads:
    post:
      tags:
        - "Mobile Core"
      summary: "Create Mobile Media Uploads"
      description: "Laravel route name `api.mobile.media-uploads.store`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_media_uploads_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.media-uploads.store"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/media-uploads/{public_id}":
    delete:
      tags:
        - "Mobile Core"
      summary: "Delete Mobile Media Uploads"
      description: "Laravel route name `api.mobile.media-uploads.destroy`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_media_uploads_destroy"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.media-uploads.destroy"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
    get:
      tags:
        - "Mobile Core"
      summary: "Get Mobile Media Uploads"
      description: "Laravel route name `api.mobile.media-uploads.show`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_media_uploads_show"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.media-uploads.show"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/media-uploads/{public_id}/complete":
    post:
      tags:
        - "Mobile Core"
      summary: "Complete Mobile Media Uploads"
      description: "Laravel route name `api.mobile.media-uploads.complete`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_media_uploads_complete"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.media-uploads.complete"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/media-uploads/{public_id}/content":
    put:
      tags:
        - "Mobile Core"
      summary: "Update Mobile Media Uploads Content"
      description: "Laravel route name `api.mobile.media-uploads.content`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_media_uploads_content"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.media-uploads.content"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/mutations:
    post:
      tags:
        - "Mobile Core"
      summary: "Create Mobile Mutations"
      description: "Laravel route name `api.mobile.mutations.store`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_mutations_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.mutations.store"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/mutations/{operation_public_id}":
    get:
      tags:
        - "Mobile Core"
      summary: "Get Mobile Mutations"
      description: "Laravel route name `api.mobile.mutations.show`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_mutations_show"
      parameters:
        -
          name: "operation_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.mutations.show"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/organizer/capabilities:
    get:
      tags:
        - "Mobile Organizer"
      summary: "Get Mobile Organizer capabilities"
      description: "Laravel route name `api.mobile.organizer.capabilities`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_capabilities"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.capabilities"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/organizer/execution/sessions:
    post:
      tags:
        - "Mobile Organizer"
      summary: "Create Mobile Organizer Execution Sessions"
      description: "Laravel route name `api.mobile.organizer.execution.sessions.store`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_execution_sessions_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.execution.sessions.store"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/organizer/execution/sessions/{session_public_id}":
    get:
      tags:
        - "Mobile Organizer"
      summary: "Get Mobile Organizer Execution Sessions"
      description: "Laravel route name `api.mobile.organizer.execution.sessions.show`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_execution_sessions_show"
      parameters:
        -
          name: "session_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.execution.sessions.show"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/organizer/execution/tasks/{task_public_id}/deviation":
    post:
      tags:
        - "Mobile Organizer"
      summary: "Report deviation for Mobile Organizer Execution Tasks"
      description: "Laravel route name `api.mobile.organizer.execution.tasks.deviation`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_execution_tasks_deviation"
      parameters:
        -
          name: "task_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.execution.tasks.deviation"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/organizer/execution/tasks/{task_public_id}/execute":
    post:
      tags:
        - "Mobile Organizer"
      summary: "Execute Mobile Organizer Execution Tasks"
      description: "Laravel route name `api.mobile.organizer.execution.tasks.execute`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_execution_tasks_execute"
      parameters:
        -
          name: "task_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.execution.tasks.execute"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/organizer/execution/tasks/{task_public_id}/skip":
    post:
      tags:
        - "Mobile Organizer"
      summary: "Create Mobile Organizer Execution Tasks Skip"
      description: "Laravel route name `api.mobile.organizer.execution.tasks.skip`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_execution_tasks_skip"
      parameters:
        -
          name: "task_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.execution.tasks.skip"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/organizer/execution/tasks/{task_public_id}/validate":
    post:
      tags:
        - "Mobile Organizer"
      summary: "Validate Mobile Organizer Execution Tasks"
      description: "Laravel route name `api.mobile.organizer.execution.tasks.validate`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_execution_tasks_validate"
      parameters:
        -
          name: "task_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.execution.tasks.validate"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/organizer/plans:
    post:
      tags:
        - "Mobile Organizer"
      summary: "Create Mobile Organizer Plans"
      description: "Laravel route name `api.mobile.organizer.plans.store`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_plans_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.plans.store"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/organizer/plans/{plan_public_id}":
    get:
      tags:
        - "Mobile Organizer"
      summary: "Get Mobile Organizer Plans"
      description: "Laravel route name `api.mobile.organizer.plans.show`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_plans_show"
      parameters:
        -
          name: "plan_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.plans.show"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/organizer/plans/{plan_public_id}/replan":
    post:
      tags:
        - "Mobile Organizer"
      summary: "Replan Mobile Organizer Plans"
      description: "Laravel route name `api.mobile.organizer.plans.replan`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_plans_replan"
      parameters:
        -
          name: "plan_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.plans.replan"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/organizer/plans/{plan_version_public_id}/approve":
    post:
      tags:
        - "Mobile Organizer"
      summary: "Approve Mobile Organizer Plans"
      description: "Laravel route name `api.mobile.organizer.plans.approve`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_plans_approve"
      parameters:
        -
          name: "plan_version_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.plans.approve"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/organizer/plans/{plan_version_public_id}/feedback":
    post:
      tags:
        - "Mobile Organizer"
      summary: "Submit feedback for Mobile Organizer Plans"
      description: "Laravel route name `api.mobile.organizer.plans.feedback`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_plans_feedback"
      parameters:
        -
          name: "plan_version_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.plans.feedback"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/organizer/plans/{plan_version_public_id}/reject":
    post:
      tags:
        - "Mobile Organizer"
      summary: "Reject Mobile Organizer Plans"
      description: "Laravel route name `api.mobile.organizer.plans.reject`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_organizer_plans_reject"
      parameters:
        -
          name: "plan_version_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.organizer.plans.reject"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/privacy/status:
    get:
      tags:
        - "Mobile Privacy"
      summary: "Get Mobile Privacy status"
      description: "Laravel route name `api.mobile.privacy.status`."
      operationId: "api_mobile_privacy_status"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.mobile.privacy.status"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
  /api/v1/mobile/release/notes:
    get:
      tags:
        - "Mobile Release"
      summary: "Get public Android release notes"
      description: "Offentlige release notes for Android og relatert dokumentasjon."
      operationId: "api_mobile_release_notes"
      responses:
        200:
          description: "Mobil release-notes"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/MobileReleaseNotesPayload"
      x-laravel-route-name: "api.mobile.release.notes"
      x-laravel-middleware:
        - "api"
  /api/v1/mobile/release/status:
    get:
      tags:
        - "Mobile Release"
      summary: "Get Android release status policy"
      description: "Offentlig versjonspolitikk for Android-klienten. Nyttig for app-store-distribusjon, support og oppgraderingsstyring."
      operationId: "api_mobile_release_status"
      parameters:
        -
          name: "version_code"
          in: "query"
          required: false
          description: "Valgfri klientversjon for å evaluere om oppdatering er påkrevd."
          schema:
            type: "integer"
      responses:
        200:
          description: "Mobil release-status"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/MobileReleaseStatusPayload"
      x-laravel-route-name: "api.mobile.release.status"
      x-laravel-middleware:
        - "api"
  /api/v1/mobile/security/local-cache-purge-record:
    post:
      tags:
        - "Mobile Security"
      summary: "Create Mobile Security Local Cache Purge Record"
      description: "Laravel route name `api.mobile.security.local-cache-purge-record`."
      operationId: "api_mobile_security_local_cache_purge_record"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.mobile.security.local-cache-purge-record"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
  /api/v1/mobile/security/status:
    get:
      tags:
        - "Mobile Security"
      summary: "Get Mobile Security status"
      description: "Laravel route name `api.mobile.security.status`."
      operationId: "api_mobile_security_status"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.mobile.security.status"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
  /api/v1/mobile/support/tickets:
    post:
      tags:
        - "Mobile Support"
      summary: "Create Mobile Support Tickets"
      description: "Laravel route name `api.mobile.support.tickets.store`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_support_tickets_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.support.tickets.store"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/sync/manifest:
    get:
      tags:
        - "Mobile Sync"
      summary: "Get Mobile Sync Manifest"
      description: "Laravel route name `api.mobile.sync.manifest`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_sync_manifest"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.sync.manifest"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/sync/snapshots:
    post:
      tags:
        - "Mobile Sync"
      summary: "Create Mobile Sync Snapshots"
      description: "Laravel route name `api.mobile.sync.snapshots.store`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_sync_snapshots_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.sync.snapshots.store"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/sync/snapshots/{public_id}":
    get:
      tags:
        - "Mobile Sync"
      summary: "Get Mobile Sync Snapshots"
      description: "Laravel route name `api.mobile.sync.snapshots.show`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_sync_snapshots_show"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.sync.snapshots.show"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  "/api/v1/mobile/sync/snapshots/{public_id}/collections/{collection_key}/download":
    get:
      tags:
        - "Mobile Sync"
      summary: "Download Mobile Sync Snapshots Collections"
      description: "Laravel route name `api.mobile.sync.snapshots.collections.download`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_sync_snapshots_collections_download"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
        -
          name: "collection_key"
          in: "path"
          required: true
          description: "Samle-ID for snapshot- eller eksportkolleksjon."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.sync.snapshots.collections.download"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/system-logs:
    get:
      tags:
        - "Mobile Core"
      summary: "List Mobile System Logs"
      description: "Laravel route name `api.mobile.system-logs.index`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_system_logs_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.system-logs.index"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/mobile/usage:
    get:
      tags:
        - "Mobile Billing"
      summary: "Get Mobile Billing Usage"
      description: "Laravel route name `api.mobile.billing.usage`. Rate limit: 120 requests per minute."
      operationId: "api_mobile_billing_usage"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
      x-laravel-route-name: "api.mobile.billing.usage"
      x-laravel-middleware:
        - "api"
        - "mobile.auth"
        - "throttle:mobile-authenticated"
      x-rate-limit:
        name: "mobile-authenticated"
        limit: "120 requests per minute"
        scope: "User + mobile device + IP"
  /api/v1/observability/metrics:
    get:
      tags:
        - "Observability"
      summary: "List Observability Metrics"
      description: "Laravel route name `api.observability.metrics.index`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_observability_metrics_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.observability.metrics.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/observability/run-checks:
    post:
      tags:
        - "Observability"
      summary: "Create Observability Run Checks"
      description: "Laravel route name `api.observability.run-checks`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_observability_run_checks"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.observability.run-checks"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/observability/summary:
    get:
      tags:
        - "Observability"
      summary: "Get Observability summary"
      description: "Laravel route name `api.observability.summary`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_observability_summary"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.observability.summary"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/operations/backup-attestations:
    post:
      tags:
        - "Operations"
      summary: "Create Operations Backup Attestations"
      description: "Laravel route name `api.operations.backup-attestations.store`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_operations_backup_attestations_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.operations.backup-attestations.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/operations/backup-health:
    get:
      tags:
        - "Operations"
      summary: "Get Operations Backup Health"
      description: "Laravel route name `api.operations.backup-health`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_operations_backup_health"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.operations.backup-health"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/operations/readiness:
    get:
      tags:
        - "Operations"
      summary: "Get Operations Readiness"
      description: "Laravel route name `api.operations.readiness`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_operations_readiness"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.operations.readiness"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/operations/restore-drills:
    post:
      tags:
        - "Operations"
      summary: "Create Operations Restore Drills"
      description: "Laravel route name `api.operations.restore-drills.store`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_operations_restore_drills_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.operations.restore-drills.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/organization/execution/sessions:
    post:
      tags:
        - "Organization"
      summary: "Create Organization Execution Sessions"
      description: "Laravel route name `api.organization.execution.sessions.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_organization_execution_sessions_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.organization.execution.sessions.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/organization/execution/sessions/{session_public_id}":
    get:
      tags:
        - "Organization"
      summary: "Get Organization Execution Sessions"
      description: "Laravel route name `api.organization.execution.sessions.show`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_organization_execution_sessions_show"
      parameters:
        -
          name: "session_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.organization.execution.sessions.show"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/organization/execution/tasks/{task_public_id}/deviation":
    post:
      tags:
        - "Organization"
      summary: "Report deviation for Organization Execution Tasks"
      description: "Laravel route name `api.organization.execution.tasks.deviation`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_organization_execution_tasks_deviation"
      parameters:
        -
          name: "task_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.organization.execution.tasks.deviation"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/organization/execution/tasks/{task_public_id}/execute":
    post:
      tags:
        - "Organization"
      summary: "Execute Organization Execution Tasks"
      description: "Laravel route name `api.organization.execution.tasks.execute`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_organization_execution_tasks_execute"
      parameters:
        -
          name: "task_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.organization.execution.tasks.execute"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/organization/execution/tasks/{task_public_id}/skip":
    post:
      tags:
        - "Organization"
      summary: "Create Organization Execution Tasks Skip"
      description: "Laravel route name `api.organization.execution.tasks.skip`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_organization_execution_tasks_skip"
      parameters:
        -
          name: "task_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.organization.execution.tasks.skip"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/organization/execution/tasks/{task_public_id}/validate":
    post:
      tags:
        - "Organization"
      summary: "Validate Organization Execution Tasks"
      description: "Laravel route name `api.organization.execution.tasks.validate`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_organization_execution_tasks_validate"
      parameters:
        -
          name: "task_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.organization.execution.tasks.validate"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/organization/plans/{plan_version_public_id}/approve":
    post:
      tags:
        - "Organization"
      summary: "Approve Organization Plans"
      description: "Laravel route name `api.organization.plans.approve`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_organization_plans_approve"
      parameters:
        -
          name: "plan_version_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.organization.plans.approve"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/organization/plans/{plan_version_public_id}/feedback":
    post:
      tags:
        - "Organization"
      summary: "Submit feedback for Organization Plans"
      description: "Laravel route name `api.organization.plans.feedback`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_organization_plans_feedback"
      parameters:
        -
          name: "plan_version_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.organization.plans.feedback"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/organization/plans/{plan_version_public_id}/reject":
    post:
      tags:
        - "Organization"
      summary: "Reject Organization Plans"
      description: "Laravel route name `api.organization.plans.reject`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_organization_plans_reject"
      parameters:
        -
          name: "plan_version_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.organization.plans.reject"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/privacy/ai-purge:
    post:
      tags:
        - "Privacy"
      summary: "Create Privacy AI Purge"
      description: "Laravel route name `api.privacy.ai-purge`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_privacy_ai_purge"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.privacy.ai-purge"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/privacy/requests:
    post:
      tags:
        - "Privacy"
      summary: "Create Privacy Requests"
      description: "Laravel route name `api.privacy.requests.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_privacy_requests_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.privacy.requests.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/privacy/requests/{public_id}/cancel":
    post:
      tags:
        - "Privacy"
      summary: "Cancel Privacy Requests"
      description: "Laravel route name `api.privacy.requests.cancel`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_privacy_requests_cancel"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.privacy.requests.cancel"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/privacy/status:
    get:
      tags:
        - "Privacy"
      summary: "Get Privacy status"
      description: "Laravel route name `api.privacy.status`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_privacy_status"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.privacy.status"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/product-codes/resolve:
    get:
      tags:
        - "Product Codes"
      summary: "Resolve Product Codes"
      description: "Laravel route name `api.product-codes.resolve`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_product_codes_resolve"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.product-codes.resolve"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/quality/manual-checks:
    post:
      tags:
        - "Quality"
      summary: "Create Quality Manual Checks"
      description: "Laravel route name `api.quality.manual-checks.store`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_quality_manual_checks_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.quality.manual-checks.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/quality/runs:
    get:
      tags:
        - "Quality"
      summary: "List Quality Runs"
      description: "Laravel route name `api.quality.runs.index`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_quality_runs_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.quality.runs.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/quality/summary:
    get:
      tags:
        - "Quality"
      summary: "Get Quality summary"
      description: "Laravel route name `api.quality.summary`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_quality_summary"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.quality.summary"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/release/candidates:
    get:
      tags:
        - "Release"
      summary: "List Release Candidates"
      description: "Laravel route name `api.release.candidates.index`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_release_candidates_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.release.candidates.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
    post:
      tags:
        - "Release"
      summary: "Create Release Candidates"
      description: "Laravel route name `api.release.candidates.store`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_release_candidates_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.release.candidates.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  "/api/v1/release/candidates/{public_id}/approve":
    post:
      tags:
        - "Release"
      summary: "Approve Release Candidates"
      description: "Laravel route name `api.release.candidates.approve`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_release_candidates_approve"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.release.candidates.approve"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  "/api/v1/release/candidates/{public_id}/reject":
    post:
      tags:
        - "Release"
      summary: "Reject Release Candidates"
      description: "Laravel route name `api.release.candidates.reject`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_release_candidates_reject"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.release.candidates.reject"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  "/api/v1/release/candidates/{public_id}/run-gates":
    post:
      tags:
        - "Release"
      summary: "Create Release Candidates Run Gates"
      description: "Laravel route name `api.release.candidates.run-gates`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_release_candidates_run_gates"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.release.candidates.run-gates"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  "/api/v1/scan-actions/{publicId}":
    get:
      tags:
        - "Scanning"
      summary: "Get Scan Actions"
      description: "Laravel route name `api.scan-actions.show`. Krever aktiv household-kontekst."
      operationId: "api_scan_actions_show"
      parameters:
        -
          name: "publicId"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.scan-actions.show"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
        - "household.api"
  /api/v1/scan-sessions:
    post:
      tags:
        - "Scanning"
      summary: "Create Scan Sessions"
      description: "Laravel route name `api.scan-sessions.store`. Krever aktiv household-kontekst. Rate limit: 30 requests per minute."
      operationId: "api_scan_sessions_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.scan-sessions.store"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
        - "household.api"
        - "throttle:scan-session-create"
      x-rate-limit:
        name: "scan-session-create"
        limit: "30 requests per minute"
        scope: "User + household + IP"
  "/api/v1/scan-sessions/{publicId}":
    get:
      tags:
        - "Scanning"
      summary: "Get Scan Sessions"
      description: "Laravel route name `api.scan-sessions.show`. Krever aktiv household-kontekst."
      operationId: "api_scan_sessions_show"
      parameters:
        -
          name: "publicId"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.scan-sessions.show"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
        - "household.api"
  "/api/v1/scan-sessions/{publicId}/cancel":
    post:
      tags:
        - "Scanning"
      summary: "Cancel Scan Sessions"
      description: "Laravel route name `api.scan-sessions.cancel`. Krever aktiv household-kontekst."
      operationId: "api_scan_sessions_cancel"
      parameters:
        -
          name: "publicId"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.scan-sessions.cancel"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
        - "household.api"
  "/api/v1/scan-sessions/{publicId}/confirm":
    post:
      tags:
        - "Scanning"
      summary: "Confirm Scan Sessions"
      description: "Laravel route name `api.scan-sessions.confirm`. Krever aktiv household-kontekst. Rate limit: Configurable per minute, default 30."
      operationId: "api_scan_sessions_confirm"
      parameters:
        -
          name: "publicId"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.scan-sessions.confirm"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
        - "household.api"
        - "throttle:scan-action"
      x-rate-limit:
        name: "scan-action"
        limit: "Configurable per minute, default 30"
        scope: "User + household + IP"
  "/api/v1/scan-sessions/{publicId}/scan":
    post:
      tags:
        - "Scanning"
      summary: "Create Scan Sessions Scan"
      description: "Laravel route name `api.scan-sessions.scan`. Krever aktiv household-kontekst. Rate limit: Configurable per minute, default 180."
      operationId: "api_scan_sessions_scan"
      parameters:
        -
          name: "publicId"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.scan-sessions.scan"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
        - "household.api"
        - "throttle:scan-resolve"
      x-rate-limit:
        name: "scan-resolve"
        limit: "Configurable per minute, default 180"
        scope: "User + household + IP"
  "/api/v1/scan-sessions/{publicId}/select-candidate":
    post:
      tags:
        - "Scanning"
      summary: "Create Scan Sessions Select Candidate"
      description: "Laravel route name `api.scan-sessions.select-candidate`. Krever aktiv household-kontekst."
      operationId: "api_scan_sessions_select_candidate"
      parameters:
        -
          name: "publicId"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.scan-sessions.select-candidate"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
        - "household.api"
  "/api/v1/scan-sessions/{publicId}/targets/{roleKey}":
    delete:
      tags:
        - "Scanning"
      summary: "Delete Scan Sessions Targets"
      description: "Laravel route name `api.scan-sessions.targets.destroy`. Krever aktiv household-kontekst."
      operationId: "api_scan_sessions_targets_destroy"
      parameters:
        -
          name: "publicId"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
        -
          name: "roleKey"
          in: "path"
          required: true
          description: "Rollenøkkel som identifiserer skanningsmål i en session."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.scan-sessions.targets.destroy"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
        - "household.api"
  /api/v1/scans/capabilities:
    get:
      tags:
        - "Scanning"
      summary: "Get Scans capabilities"
      description: "Laravel route name `api.scans.capabilities`. Krever aktiv household-kontekst."
      operationId: "api_scans_capabilities"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.scans.capabilities"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
        - "household.api"
  /api/v1/scans/history:
    get:
      tags:
        - "Scanning"
      summary: "Get Scans History"
      description: "Laravel route name `api.scans.history`. Krever aktiv household-kontekst. Rate limit: 60 requests per minute."
      operationId: "api_scans_history"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.scans.history"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
        - "household.api"
        - "throttle:scan-history"
      x-rate-limit:
        name: "scan-history"
        limit: "60 requests per minute"
        scope: "User + household + IP"
  /api/v1/scans/resolve:
    post:
      tags:
        - "Scanning"
      summary: "Resolve Scans"
      description: "Laravel route name `api.scans.resolve`. Krever aktiv household-kontekst. Rate limit: Configurable per minute, default 180."
      operationId: "api_scans_resolve"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          MobileBearer: []
        -
          SessionCookie: []
      x-laravel-route-name: "api.scans.resolve"
      x-laravel-middleware:
        - "api"
        - "mobile.or.session"
        - "household.api"
        - "throttle:scan-resolve"
      x-rate-limit:
        name: "scan-resolve"
        limit: "Configurable per minute, default 180"
        scope: "User + household + IP"
  /api/v1/security/csp-report:
    post:
      tags:
        - "Security"
      summary: "Submit sanitized CSP violation report"
      description: "Offentlig sikkerhetsendepunkt som mottar Content Security Policy-rapporter. Endepunktet er rate-limited og lagrer bare sanitiserte felt."
      operationId: "api_security_csp_report"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "CSP-rapport lagret"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/CspReportPayload"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      x-laravel-route-name: "api.security.csp-report"
      x-laravel-middleware:
        - "api"
        - "throttle:security-csp-report"
      x-rate-limit:
        name: "security-csp-report"
        limit: "30 requests per minute"
        scope: "IP + user-agent"
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: "object"
              additionalProperties: true
              properties:
                csp-report:
                  type: "object"
                  additionalProperties: true
  /api/v1/security/mfa/confirm:
    post:
      tags:
        - "Security"
      summary: "Confirm Security MFA"
      description: "Laravel route name `api.security.mfa.confirm`. E-postverifisering kan håndheves av oppsettet. Rate limit: 10 requests per 1 minute(s)."
      operationId: "api_security_mfa_confirm"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.security.mfa.confirm"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "throttle:10,1"
      x-rate-limit:
        name: "10,1"
        limit: "10 requests per 1 minute(s)"
        scope: "Laravel throttle middleware"
  /api/v1/security/mfa/disable:
    post:
      tags:
        - "Security"
      summary: "Create Security MFA Disable"
      description: "Laravel route name `api.security.mfa.disable`. E-postverifisering kan håndheves av oppsettet. Rate limit: 10 requests per 1 minute(s)."
      operationId: "api_security_mfa_disable"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.security.mfa.disable"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "throttle:10,1"
      x-rate-limit:
        name: "10,1"
        limit: "10 requests per 1 minute(s)"
        scope: "Laravel throttle middleware"
  /api/v1/security/mfa/recovery-code:
    post:
      tags:
        - "Security"
      summary: "Create Security MFA Recovery Code"
      description: "Laravel route name `api.security.mfa.recovery-code`. E-postverifisering kan håndheves av oppsettet. Rate limit: 10 requests per 1 minute(s)."
      operationId: "api_security_mfa_recovery_code"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.security.mfa.recovery-code"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "throttle:10,1"
      x-rate-limit:
        name: "10,1"
        limit: "10 requests per 1 minute(s)"
        scope: "Laravel throttle middleware"
  /api/v1/security/mfa/setup:
    post:
      tags:
        - "Security"
      summary: "Create Security MFA Setup"
      description: "Laravel route name `api.security.mfa.setup`. E-postverifisering kan håndheves av oppsettet. Rate limit: 6 requests per 1 minute(s)."
      operationId: "api_security_mfa_setup"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit overskredet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.security.mfa.setup"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "throttle:6,1"
      x-rate-limit:
        name: "6,1"
        limit: "6 requests per 1 minute(s)"
        scope: "Laravel throttle middleware"
  "/api/v1/security/mobile-devices/{device_public_id}":
    delete:
      tags:
        - "Security"
      summary: "Delete Security Mobile Devices"
      description: "Laravel route name `api.security.mobile-devices.destroy`. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_security_mobile_devices_destroy"
      parameters:
        -
          name: "device_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.security.mobile-devices.destroy"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
  /api/v1/security/sessions:
    get:
      tags:
        - "Security"
      summary: "List Security Sessions"
      description: "Laravel route name `api.security.sessions.index`. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_security_sessions_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.security.sessions.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
  /api/v1/security/sessions/revoke-others:
    post:
      tags:
        - "Security"
      summary: "Create Security Sessions Revoke Others"
      description: "Laravel route name `api.security.sessions.revoke-others`. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_security_sessions_revoke_others"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.security.sessions.revoke-others"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
  "/api/v1/security/sessions/{session_public_id}":
    delete:
      tags:
        - "Security"
      summary: "Delete Security Sessions"
      description: "Laravel route name `api.security.sessions.destroy`. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_security_sessions_destroy"
      parameters:
        -
          name: "session_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.security.sessions.destroy"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
  /api/v1/security/status:
    get:
      tags:
        - "Security"
      summary: "Get Security status"
      description: "Laravel route name `api.security.status`. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_security_status"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.security.status"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
  /api/v1/status:
    get:
      tags:
        - "Public & Core"
      summary: "Get API status"
      description: "Offentlig status for basisoppsett, modulregister og tenant-grunnmur."
      operationId: "api_status"
      responses:
        200:
          description: "API-status"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/StatusPayload"
      x-laravel-route-name: "api.status"
      x-laravel-middleware:
        - "api"
  /api/v1/status-page/public:
    get:
      tags:
        - "Public & Core"
      summary: "Get public status page payload"
      description: "Offentlig driftsstatus med hendelser, komponentstatus og vedlikeholdsvinduer."
      operationId: "api_status_page_public"
      responses:
        200:
          description: "Offentlig statuspayload"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
                allOf:
                  -
                    "$ref": "#/components/schemas/SuccessEnvelope"
                  -
                    type: "object"
                    properties:
                      data:
                        "$ref": "#/components/schemas/PublicStatusPayload"
      x-laravel-route-name: "api.status-page.public"
      x-laravel-middleware:
        - "api"
  /api/v1/structure/locations:
    get:
      tags:
        - "Structure"
      summary: "List Structure Locations"
      description: "Laravel route name `api.structure.locations.index`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_locations_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.locations.index"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    post:
      tags:
        - "Structure"
      summary: "Create Structure Locations"
      description: "Laravel route name `api.structure.locations.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_locations_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.locations.store"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/structure/locations/{location}":
    get:
      tags:
        - "Structure"
      summary: "Get Structure Locations"
      description: "Laravel route name `api.structure.locations.show`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_locations_show"
      parameters:
        -
          name: "location"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.locations.show"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    patch:
      tags:
        - "Structure"
      summary: "Update Structure Locations"
      description: "Laravel route name `api.structure.locations.update`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_locations_update"
      parameters:
        -
          name: "location"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.locations.update"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/structure/rack-builder:
    post:
      tags:
        - "Structure"
      summary: "Create Structure Builder"
      description: "Laravel route name `api.structure.builder.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_builder_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.builder.store"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/structure/rack-builder/preview:
    post:
      tags:
        - "Structure"
      summary: "Create Structure Builder Preview"
      description: "Laravel route name `api.structure.builder.preview`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_builder_preview"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.builder.preview"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/structure/racks:
    post:
      tags:
        - "Structure"
      summary: "Create Structure Racks"
      description: "Laravel route name `api.structure.racks.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_racks_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.racks.store"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/structure/rows:
    post:
      tags:
        - "Structure"
      summary: "Create Structure Rows"
      description: "Laravel route name `api.structure.rows.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_rows_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.rows.store"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/structure/search:
    get:
      tags:
        - "Structure"
      summary: "Search Structure"
      description: "Laravel route name `api.structure.search`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_search"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.search"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/structure/shelves:
    post:
      tags:
        - "Structure"
      summary: "Create Structure Shelves"
      description: "Laravel route name `api.structure.shelves.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_shelves_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.shelves.store"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/structure/slots:
    post:
      tags:
        - "Structure"
      summary: "Create Structure Slots"
      description: "Laravel route name `api.structure.slots.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_slots_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.slots.store"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/structure/slots/{slot}":
    get:
      tags:
        - "Structure"
      summary: "Get Structure Slots"
      description: "Laravel route name `api.structure.slots.show`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_slots_show"
      parameters:
        -
          name: "slot"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.slots.show"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    patch:
      tags:
        - "Structure"
      summary: "Update Structure Slots"
      description: "Laravel route name `api.structure.slots.update`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_slots_update"
      parameters:
        -
          name: "slot"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.slots.update"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/structure/summary:
    get:
      tags:
        - "Structure"
      summary: "Get Structure summary"
      description: "Laravel route name `api.structure.summary`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_summary"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.summary"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/structure/tree:
    get:
      tags:
        - "Structure"
      summary: "Get Structure Tree"
      description: "Laravel route name `api.structure.tree`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_tree"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.tree"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/structure/zones:
    post:
      tags:
        - "Structure"
      summary: "Create Structure Zones"
      description: "Laravel route name `api.structure.zones.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_structure_zones_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.structure.zones.store"
      x-laravel-middleware:
        - "api"
        - "web"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/superadmin/households:
    get:
      tags:
        - "Superadmin"
      summary: "Get Superadmin Households"
      description: "Laravel route name `api.superadmin.households`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_superadmin_households"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.superadmin.households"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  "/api/v1/superadmin/households/{household_public_id}/manual-overrides":
    post:
      tags:
        - "Superadmin"
      summary: "Create Superadmin Manual Overrides"
      description: "Laravel route name `api.superadmin.manual-overrides.store`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_superadmin_manual_overrides_store"
      parameters:
        -
          name: "household_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.superadmin.manual-overrides.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  "/api/v1/superadmin/manual-overrides/{override_public_id}":
    delete:
      tags:
        - "Superadmin"
      summary: "Delete Superadmin Manual Overrides"
      description: "Laravel route name `api.superadmin.manual-overrides.destroy`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_superadmin_manual_overrides_destroy"
      parameters:
        -
          name: "override_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.superadmin.manual-overrides.destroy"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/superadmin/overview:
    get:
      tags:
        - "Superadmin"
      summary: "Get Superadmin Overview"
      description: "Laravel route name `api.superadmin.overview`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_superadmin_overview"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.superadmin.overview"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/superadmin/subscriptions:
    get:
      tags:
        - "Superadmin"
      summary: "Get Superadmin Subscriptions"
      description: "Laravel route name `api.superadmin.subscriptions`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_superadmin_subscriptions"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.superadmin.subscriptions"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/superadmin/support-sessions:
    post:
      tags:
        - "Superadmin"
      summary: "Create Superadmin Support Sessions"
      description: "Laravel route name `api.superadmin.support-sessions.store`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_superadmin_support_sessions_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.superadmin.support-sessions.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  "/api/v1/superadmin/support-sessions/{session_public_id}/end":
    post:
      tags:
        - "Superadmin"
      summary: "Create Superadmin Support Sessions End"
      description: "Laravel route name `api.superadmin.support-sessions.end`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_superadmin_support_sessions_end"
      parameters:
        -
          name: "session_public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.superadmin.support-sessions.end"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/superadmin/users:
    get:
      tags:
        - "Superadmin"
      summary: "Get Superadmin Users"
      description: "Laravel route name `api.superadmin.users`. Tilgang er rollebegrenset. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_superadmin_users"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.superadmin.users"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "role:superadmin"
  /api/v1/support/tickets:
    get:
      tags:
        - "Support"
      summary: "List Support Tickets"
      description: "Laravel route name `api.support.tickets.index`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_support_tickets_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.support.tickets.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    post:
      tags:
        - "Support"
      summary: "Create Support Tickets"
      description: "Laravel route name `api.support.tickets.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_support_tickets_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.support.tickets.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/support/tickets/{public_id}/attachments":
    post:
      tags:
        - "Support"
      summary: "Create Support Tickets Attachments"
      description: "Laravel route name `api.support.tickets.attachments.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_support_tickets_attachments_store"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.support.tickets.attachments.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/support/tickets/{public_id}/comments":
    post:
      tags:
        - "Support"
      summary: "Create Support Tickets Comments"
      description: "Laravel route name `api.support.tickets.comments.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_support_tickets_comments_store"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.support.tickets.comments.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/support/tickets/{public_id}/diagnostics":
    post:
      tags:
        - "Support"
      summary: "Create Support Tickets Diagnostics"
      description: "Laravel route name `api.support.tickets.diagnostics.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_support_tickets_diagnostics_store"
      parameters:
        -
          name: "public_id"
          in: "path"
          required: true
          description: "Offentlig identifikator for ressursen."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.support.tickets.diagnostics.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/taxonomy/categories:
    get:
      tags:
        - "Taxonomy"
      summary: "List Taxonomy Categories"
      description: "Laravel route name `api.taxonomy.categories.index`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_taxonomy_categories_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.taxonomy.categories.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    post:
      tags:
        - "Taxonomy"
      summary: "Create Taxonomy Categories"
      description: "Laravel route name `api.taxonomy.categories.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_taxonomy_categories_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.taxonomy.categories.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/taxonomy/categories/{category}":
    patch:
      tags:
        - "Taxonomy"
      summary: "Update Taxonomy Categories"
      description: "Laravel route name `api.taxonomy.categories.update`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_taxonomy_categories_update"
      parameters:
        -
          name: "category"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.taxonomy.categories.update"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/taxonomy/categories/{category}/archive":
    post:
      tags:
        - "Taxonomy"
      summary: "Archive Taxonomy Categories"
      description: "Laravel route name `api.taxonomy.categories.archive`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_taxonomy_categories_archive"
      parameters:
        -
          name: "category"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.taxonomy.categories.archive"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/taxonomy/categories/{category}/move":
    post:
      tags:
        - "Taxonomy"
      summary: "Move Taxonomy Categories"
      description: "Laravel route name `api.taxonomy.categories.move`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_taxonomy_categories_move"
      parameters:
        -
          name: "category"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.taxonomy.categories.move"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/taxonomy/tags:
    get:
      tags:
        - "Taxonomy"
      summary: "List Taxonomy Tags"
      description: "Laravel route name `api.taxonomy.tags.index`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_taxonomy_tags_index"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.taxonomy.tags.index"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
    post:
      tags:
        - "Taxonomy"
      summary: "Create Taxonomy Tags"
      description: "Laravel route name `api.taxonomy.tags.store`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_taxonomy_tags_store"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.taxonomy.tags.store"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/taxonomy/tags/{tag}":
    patch:
      tags:
        - "Taxonomy"
      summary: "Update Taxonomy Tags"
      description: "Laravel route name `api.taxonomy.tags.update`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_taxonomy_tags_update"
      parameters:
        -
          name: "tag"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.taxonomy.tags.update"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/v1/taxonomy/tags/{tag}/archive":
    post:
      tags:
        - "Taxonomy"
      summary: "Archive Taxonomy Tags"
      description: "Laravel route name `api.taxonomy.tags.archive`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_taxonomy_tags_archive"
      parameters:
        -
          name: "tag"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.taxonomy.tags.archive"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  /api/v1/usage:
    get:
      tags:
        - "Usage"
      summary: "Get Usage"
      description: "Laravel route name `api.usage`. Krever aktiv household-kontekst. E-postverifisering kan håndheves av oppsettet."
      operationId: "api_usage"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          SessionCookie: []
      x-laravel-route-name: "api.usage"
      x-laravel-middleware:
        - "api"
        - "auth"
        - "active"
        - "verified.if-required"
        - "household.active"
  "/api/webhooks/billing/{provider_key}":
    post:
      tags:
        - "Billing Webhook"
      summary: "Receive billing provider webhook"
      description: "Server-til-server webhook for fakturering. Signaturhemmeligheten hentes fra provider-dashbordet, ikke fra denne API-en."
      operationId: "api_webhooks_billing"
      parameters:
        -
          name: "provider_key"
          in: "path"
          required: true
          description: "Providernøkkel, for eksempel `stripe`."
          schema:
            type: "string"
      responses:
        200:
          description: "Webhook behandlet"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        401:
          description: "Autentisering kreves"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        403:
          description: "Tilgang nektet eller aktiv kontekst mangler"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        400:
          description: "Ugyldig eller usignert webhook"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
        429:
          description: "Rate limit eller upstream-beskyttelse kan være aktiv"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      security:
        -
          StripeSignature: []
      x-laravel-route-name: "api.webhooks.billing"
      x-laravel-middleware:
        - "web"
  "/api/webhooks/twilio/{type}":
    post:
      tags:
        - "Public & Core"
      summary: "Create Webhooks Twilio"
      description: "Laravel route name `api.webhooks.twilio`."
      operationId: "api_webhooks_twilio"
      parameters:
        -
          name: "type"
          in: "path"
          required: true
          description: "Ressursparameter for denne ruten."
          schema:
            type: "string"
      responses:
        200:
          description: "Standard suksess-envelope"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        201:
          description: "Opprettet eller akseptert"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/SuccessEnvelope"
        422:
          description: "Valideringsfeil"
          content:
            application/json:
              schema:
                "$ref": "#/components/schemas/ErrorEnvelope"
      x-laravel-route-name: "api.webhooks.twilio"
      x-laravel-middleware:
        - "web"
components:
  securitySchemes:
    SessionCookie:
      type: "apiKey"
      in: "cookie"
      name: "hvorerden-session"
      description: "Innlogget Laravel-sesjon for forsteparts webklienter. Skrivende browser-kall bor normalt ogsa sende `X-CSRF-TOKEN`."
    MobileBearer:
      type: "http"
      scheme: "bearer"
      bearerFormat: "Opaque access token"
      description: "Kortlivet mobil access token hentet fra `POST /api/v1/mobile/auth/login` eller `POST /api/v1/mobile/auth/refresh`."
    StripeSignature:
      type: "apiKey"
      in: "header"
      name: "Stripe-Signature"
      description: "Webhook-signatur fra Stripe eller tilsvarende provider. Denne hemmeligheten opprettes i provider-dashbordet, ikke i Lager."
  schemas:
    Meta:
      type: "object"
      properties:
        request_id:
          type: "string"
        timestamp:
          type: "string"
          format: "date-time"
      required:
        - "request_id"
        - "timestamp"
    ErrorPayload:
      type: "object"
      properties:
        code:
          type: "string"
        message:
          type: "string"
        details:
          type: "object"
          additionalProperties: true
      required:
        - "code"
        - "message"
        - "details"
    SuccessEnvelope:
      type: "object"
      properties:
        success:
          type: "boolean"
          const: true
        data:
          description: "Rutespesifikk payload."
        meta:
          "$ref": "#/components/schemas/Meta"
      required:
        - "success"
        - "data"
        - "meta"
    ErrorEnvelope:
      type: "object"
      properties:
        success:
          type: "boolean"
          const: false
        error:
          "$ref": "#/components/schemas/ErrorPayload"
        meta:
          "$ref": "#/components/schemas/Meta"
      required:
        - "success"
        - "error"
        - "meta"
    MobileDeviceDescriptor:
      type: "object"
      properties:
        device_installation_id:
          type: "string"
          minLength: 8
          maxLength: 191
        platform:
          type: "string"
          enum:
            - "android"
        app_version_name:
          type: "string"
          maxLength: 60
        app_version_code:
          type: "integer"
          minimum: 1
        device_name:
          type: "string"
          maxLength: 120
        device_model:
          type: "string"
          maxLength: 120
        os_version:
          type: "string"
          maxLength: 80
      required:
        - "device_installation_id"
    MobileLoginRequest:
      type: "object"
      properties:
        email:
          type: "string"
          format: "email"
        password:
          type: "string"
        device_installation_id:
          type: "string"
          minLength: 8
          maxLength: 191
        platform:
          type: "string"
          enum:
            - "android"
        app_version_name:
          type: "string"
          maxLength: 60
        app_version_code:
          type: "integer"
          minimum: 1
        device_name:
          type: "string"
          maxLength: 120
        device_model:
          type: "string"
          maxLength: 120
        os_version:
          type: "string"
          maxLength: 80
        push_token:
          type: "string"
          maxLength: 512
        capabilities:
          type: "object"
          additionalProperties: true
      required:
        - "email"
        - "password"
        - "device_installation_id"
    MobileRegisterRequest:
      type: "object"
      properties:
        name:
          type: "string"
          maxLength: 255
        email:
          type: "string"
          format: "email"
          maxLength: 255
        password:
          type: "string"
          minLength: 12
        password_confirmation:
          type: "string"
          minLength: 12
        device_installation_id:
          type: "string"
          minLength: 8
          maxLength: 191
        platform:
          type: "string"
          enum:
            - "android"
        app_version_name:
          type: "string"
          maxLength: 60
        app_version_code:
          type: "integer"
          minimum: 1
        device_name:
          type: "string"
          maxLength: 120
        device_model:
          type: "string"
          maxLength: 120
        os_version:
          type: "string"
          maxLength: 80
        push_token:
          type: "string"
          maxLength: 512
        capabilities:
          type: "object"
          additionalProperties: true
      required:
        - "name"
        - "email"
        - "password"
        - "password_confirmation"
        - "device_installation_id"
    MobileVippsAuthStartRequest:
      type: "object"
      properties:
        mode:
          type: "string"
          enum:
            - "login"
            - "register"
        device_installation_id:
          type: "string"
          minLength: 8
          maxLength: 191
        platform:
          type: "string"
          enum:
            - "android"
        app_version_name:
          type: "string"
          maxLength: 60
        app_version_code:
          type: "integer"
          minimum: 1
        device_name:
          type: "string"
          maxLength: 120
        device_model:
          type: "string"
          maxLength: 120
        os_version:
          type: "string"
          maxLength: 80
        push_token:
          type: "string"
          maxLength: 512
        capabilities:
          type: "object"
          additionalProperties: true
      required:
        - "mode"
        - "device_installation_id"
    MobileVippsAuthCompleteRequest:
      type: "object"
      properties:
        state:
          type: "string"
          format: "uuid"
        code:
          type: "string"
      required:
        - "state"
        - "code"
    MobileRefreshRequest:
      type: "object"
      properties:
        refresh_token:
          type: "string"
          minLength: 32
      required:
        - "refresh_token"
    ForgotPasswordRequest:
      type: "object"
      properties:
        email:
          type: "string"
          format: "email"
      required:
        - "email"
    MobileUserPayload:
      type: "object"
      properties:
        public_id:
          type: "string"
        name:
          type: "string"
        email:
          type: "string"
          format: "email"
        role:
          type: "string"
        status:
          type: "string"
        email_verified:
          type: "boolean"
        current_household_id:
          type:
            - "string"
            - "null"
      required:
        - "public_id"
        - "name"
        - "email"
        - "role"
        - "status"
        - "email_verified"
    MobileDevicePayload:
      type: "object"
      properties:
        public_id:
          type: "string"
        platform:
          type: "string"
        app_version_name:
          type:
            - "string"
            - "null"
        app_version_code:
          type:
            - "integer"
            - "null"
        device_name:
          type:
            - "string"
            - "null"
        device_model:
          type:
            - "string"
            - "null"
        os_version:
          type:
            - "string"
            - "null"
        last_seen_at:
          type:
            - "string"
            - "null"
          format: "date-time"
        revoked_at:
          type:
            - "string"
            - "null"
          format: "date-time"
      required:
        - "public_id"
        - "platform"
    MobileAuthSessionData:
      type: "object"
      properties:
        token_type:
          type: "string"
          enum:
            - "Bearer"
        access_token:
          type: "string"
        access_token_expires_at:
          type:
            - "string"
            - "null"
          format: "date-time"
        refresh_token:
          type: "string"
        refresh_token_expires_at:
          type:
            - "string"
            - "null"
          format: "date-time"
        user:
          "$ref": "#/components/schemas/MobileUserPayload"
        device:
          "$ref": "#/components/schemas/MobileDevicePayload"
      required:
        - "token_type"
        - "access_token"
        - "refresh_token"
        - "user"
        - "device"
    MobileRegistrationResult:
      type: "object"
      properties:
        session_created:
          type: "boolean"
        requires_email_verification:
          type: "boolean"
        requires_approval:
          type: "boolean"
        user:
          "$ref": "#/components/schemas/MobileUserPayload"
        token_type:
          type: "string"
        access_token:
          type: "string"
        access_token_expires_at:
          type:
            - "string"
            - "null"
          format: "date-time"
        refresh_token:
          type: "string"
        refresh_token_expires_at:
          type:
            - "string"
            - "null"
          format: "date-time"
        device:
          "$ref": "#/components/schemas/MobileDevicePayload"
    MobileVippsAuthStartPayload:
      type: "object"
      properties:
        mode:
          type: "string"
          enum:
            - "login"
            - "register"
        state:
          type: "string"
          format: "uuid"
        authorization_url:
          type: "string"
          format: "uri"
        redirect_uri:
          type: "string"
          format: "uri"
        expires_at:
          type: "string"
          format: "date-time"
      required:
        - "mode"
        - "state"
        - "authorization_url"
        - "redirect_uri"
        - "expires_at"
    MobileVippsAuthCompletionPayload:
      type: "object"
      properties:
        mode:
          type: "string"
          enum:
            - "login"
            - "register"
        session_created:
          type: "boolean"
        requires_approval:
          type: "boolean"
        created:
          type: "boolean"
        linked:
          type: "boolean"
        token_type:
          type:
            - "string"
            - "null"
        access_token:
          type:
            - "string"
            - "null"
        access_token_expires_at:
          type:
            - "string"
            - "null"
          format: "date-time"
        refresh_token:
          type:
            - "string"
            - "null"
        refresh_token_expires_at:
          type:
            - "string"
            - "null"
          format: "date-time"
        user:
          "$ref": "#/components/schemas/MobileUserPayload"
        device:
          anyOf:
            -
              "$ref": "#/components/schemas/MobileDevicePayload"
            -
              type: "null"
      required:
        - "mode"
        - "session_created"
        - "requires_approval"
        - "created"
        - "linked"
        - "user"
    ForgotPasswordPayload:
      type: "object"
      properties:
        message:
          type: "string"
        mail_configured:
          type: "boolean"
      required:
        - "message"
        - "mail_configured"
    StatusPayload:
      type: "object"
      properties:
        app:
          type: "string"
        api_base_url:
          type: "string"
        database_engine:
          type: "string"
        guardrails_enabled:
          type: "boolean"
        tenant_foundation:
          type: "boolean"
        active_modules:
          type: "array"
          items:
            type: "string"
      required:
        - "app"
        - "api_base_url"
        - "database_engine"
        - "guardrails_enabled"
        - "tenant_foundation"
        - "active_modules"
    DocumentationArticleSummary:
      type: "object"
      properties:
        public_id:
          type:
            - "string"
            - "null"
        slug:
          type:
            - "string"
            - "null"
        category:
          type: "string"
        title:
          type: "string"
        summary:
          type:
            - "string"
            - "null"
      required:
        - "category"
        - "title"
    DocumentationIndexPayload:
      type: "object"
      properties:
        articles:
          type: "array"
          items:
            "$ref": "#/components/schemas/DocumentationArticleSummary"
      required:
        - "articles"
    MobileConfigPayload:
      type: "object"
      properties:
        enabled:
          type: "boolean"
        api_contract_version:
          type: "integer"
        android_application_id:
          type: "string"
        registration_enabled:
          type: "boolean"
        mobile_registration_enabled:
          type: "boolean"
        password_min_length:
          type: "integer"
        mail_configured:
          type: "boolean"
        version_policy:
          type: "object"
          properties:
            min_supported_version_code:
              type: "integer"
            latest_version_code:
              type: "integer"
        token_policy:
          type: "object"
          properties:
            access_token_ttl_minutes:
              type: "integer"
            refresh_token_ttl_days:
              type: "integer"
            max_active_devices_per_user:
              type: "integer"
        capabilities:
          type: "object"
          additionalProperties:
            type: "boolean"
        vipps:
          type: "object"
          properties:
            auth_enabled:
              type: "boolean"
            payments_enabled:
              type: "boolean"
            mobile_redirect_uri:
              type: "string"
              format: "uri"
            mobile_payment_return_url:
              type: "string"
              format: "uri"
      required:
        - "enabled"
        - "api_contract_version"
        - "android_application_id"
        - "registration_enabled"
        - "mobile_registration_enabled"
        - "password_min_length"
        - "mail_configured"
    MobileBillingCheckoutRequest:
      type: "object"
      properties:
        plan_price_public_id:
          type: "string"
          minLength: 26
          maxLength: 26
      required:
        - "plan_price_public_id"
    HostedBillingCheckoutPayload:
      type: "object"
      properties:
        provider_key:
          type: "string"
        session_id:
          type:
            - "string"
            - "null"
        session_public_id:
          type:
            - "string"
            - "null"
        reference:
          type: "string"
        url:
          type: "string"
          format: "uri"
        mode:
          type: "string"
        requires_return_confirmation:
          type: "boolean"
        capture_required:
          type: "boolean"
      required:
        - "provider_key"
        - "reference"
        - "url"
        - "mode"
    VippsPaymentFinalizeRequest:
      type: "object"
      properties:
        reference:
          type: "string"
      required:
        - "reference"
    VippsPaymentFinalizePayload:
      type: "object"
      properties:
        reference:
          type: "string"
        provider_key:
          type: "string"
        status:
          type: "string"
        provider_payment_state:
          type:
            - "string"
            - "null"
        session_public_id:
          type:
            - "string"
            - "null"
        subscription_public_id:
          type:
            - "string"
            - "null"
        entitlements:
          type:
            - "object"
            - "null"
          additionalProperties: true
      required:
        - "reference"
        - "provider_key"
        - "status"
    PublicStatusPayload:
      type: "object"
      properties:
        overall_status:
          type: "string"
        components:
          type: "array"
          items:
            type: "object"
            properties:
              component_key:
                type: "string"
              label:
                type: "string"
              status:
                type: "string"
        incidents:
          type: "array"
          items:
            type: "object"
            additionalProperties: true
        maintenance:
          type: "array"
          items:
            type: "object"
            additionalProperties: true
        internal_details_included:
          type: "boolean"
        generated_at:
          type: "string"
          format: "date-time"
      required:
        - "overall_status"
        - "components"
        - "incidents"
        - "maintenance"
        - "internal_details_included"
        - "generated_at"
    MobileReleaseStatusPayload:
      type: "object"
      properties:
        server_authoritative:
          type: "boolean"
        android_authoritative:
          type: "boolean"
        minimum_version_code:
          type: "integer"
        recommended_version_code:
          type: "integer"
        client_version_code:
          type: "integer"
        update_required:
          type: "boolean"
        update_recommended:
          type: "boolean"
        writes_blocked_when_required:
          type: "boolean"
        support_allowed_when_required:
          type: "boolean"
        export_guidance_allowed_when_required:
          type: "boolean"
      required:
        - "server_authoritative"
        - "minimum_version_code"
        - "recommended_version_code"
        - "client_version_code"
        - "update_required"
        - "update_recommended"
        - "writes_blocked_when_required"
        - "support_allowed_when_required"
        - "export_guidance_allowed_when_required"
    MobileReleaseNote:
      type: "object"
      properties:
        public_id:
          type: "string"
        title:
          type: "string"
        summary:
          type:
            - "string"
            - "null"
        published_at:
          type:
            - "string"
            - "null"
          format: "date-time"
      required:
        - "public_id"
        - "title"
    MobileReleaseNotesPayload:
      type: "object"
      properties:
        notes:
          type: "array"
          items:
            "$ref": "#/components/schemas/MobileReleaseNote"
      required:
        - "notes"
    CspReportPayload:
      type: "object"
      properties:
        recorded:
          type: "boolean"
        public_id:
          type: "string"
      required:
        - "recorded"
        - "public_id"
