{"openapi":"3.0.3","components":{"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"}},"schemas":{}},"info":{"title":"ProsessPilotene API","description":"ProsessPilotene HTTP API. Auth0 RS256 only (AUTH0_DOMAIN + AUTH0_AUDIENCE). Domain logic and Dataverse repositories in @workspace/model-prosesspilotene (transport in @workspace/dal-dataverse).","version":"1.0.0"},"paths":{"/health":{"get":{"description":"Liveness and Dataverse health.","summary":"Health check","tags":["Health"],"operationId":"getHealth"}},"/v1/accounts":{"get":{"description":"Lists accounts from Dataverse (paginated). Optional query `top` (page size, default 25). Use `meta.nextLink` for the next page when present.","security":[{"bearerAuth":[]}],"summary":"List all accounts","tags":["Accounts"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1Accounts"},"post":{"description":"Creates an account in Dataverse. Body must include `name` and optional fields per the Dataverse account schema. Send `Content-Type: application/json` or `application/x-protobuf` (GenericStructPayload).","security":[{"bearerAuth":[]}],"summary":"Create account","tags":["Accounts"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"default":[1,2,3]}},"application/x-www-form-urlencoded":{"schema":{"default":[1,2,3]}},"multipart/form-data":{"schema":{"default":[1,2,3]}}}},"operationId":"postV1Accounts"}},"/v1/accounts/by-org/{orgNo}":{"get":{"description":"Lists accounts whose organization number matches `orgNo` (path segment). Example: `GET /v1/accounts/by-org/123456789`.","security":[{"bearerAuth":[]}],"summary":"List accounts by organization number","tags":["Accounts"],"parameters":[{"name":"orgNo","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1AccountsBy-orgByOrgNo"}},"/v1/accounts/{id}":{"put":{"description":"Updates an account in Dataverse using PATCH semantics. Send `ifMatch` with the current `@odata.etag` value and any fields to change (same shape as create, all optional except concurrency).","security":[{"bearerAuth":[]}],"summary":"Update account","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"default":[1,2,3]}},"application/x-www-form-urlencoded":{"schema":{"default":[1,2,3]}},"multipart/form-data":{"schema":{"default":[1,2,3]}}}},"operationId":"putV1AccountsById"},"get":{"security":[{"bearerAuth":[]}],"summary":"Get account by id","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1AccountsById"},"delete":{"description":"Deletes an account in Dataverse. Requires `If-Match` with the current `@odata.etag`.","security":[{"bearerAuth":[]}],"summary":"Delete account","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"deleteV1AccountsById"}},"/v1/cases":{"get":{"security":[{"bearerAuth":[]}],"summary":"List cases","tags":["Cases"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1Cases"},"post":{"security":[{"bearerAuth":[]}],"summary":"Create case","tags":["Cases"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"default":[1,2,3]}},"application/x-www-form-urlencoded":{"schema":{"default":[1,2,3]}},"multipart/form-data":{"schema":{"default":[1,2,3]}}}},"operationId":"postV1Cases"}},"/v1/cases/{id}":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get case by id","tags":["Cases"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1CasesById"}},"/v1/cases/{id}/status":{"patch":{"security":[{"bearerAuth":[]}],"summary":"Update case status","tags":["Cases"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"default":[1,2,3]}},"application/x-www-form-urlencoded":{"schema":{"default":[1,2,3]}},"multipart/form-data":{"schema":{"default":[1,2,3]}}}},"operationId":"patchV1CasesByIdStatus"}},"/v1/cases/{id}/assign":{"patch":{"security":[{"bearerAuth":[]}],"summary":"Assign case","tags":["Cases"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"default":[1,2,3]}},"application/x-www-form-urlencoded":{"schema":{"default":[1,2,3]}},"multipart/form-data":{"schema":{"default":[1,2,3]}}}},"operationId":"patchV1CasesByIdAssign"}},"/v1/contacts/by-email":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get contact by email","tags":["Contacts"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1ContactsBy-email"}},"/v1/contacts/{id}":{"patch":{"security":[{"bearerAuth":[]}],"summary":"Update contact","tags":["Contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"default":[1,2,3]}},"application/x-www-form-urlencoded":{"schema":{"default":[1,2,3]}},"multipart/form-data":{"schema":{"default":[1,2,3]}}}},"operationId":"patchV1ContactsById"}},"/v1/contacts/{contactId}/account-relations":{"get":{"security":[{"bearerAuth":[]}],"summary":"Account relations for contact","tags":["Contacts"],"parameters":[{"name":"contactId","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1ContactsByContactIdAccount-relations"}},"/v1/accounts/{id}/customer-asset":{"get":{"security":[{"bearerAuth":[]}],"summary":"Customer asset for account","tags":["Accounts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1AccountsByIdCustomer-asset"}},"/v1/incidents":{"get":{"security":[{"bearerAuth":[]}],"summary":"List incidents","tags":["Incidents"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1Incidents"}},"/v1/incidents/{id}":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get incident by id","tags":["Incidents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1IncidentsById"}},"/v1/knowledge-articles":{"get":{"security":[{"bearerAuth":[]}],"summary":"List knowledge articles","tags":["Knowledge"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1Knowledge-articles"}},"/v1/knowledge-articles/{id}":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get knowledge article","tags":["Knowledge"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1Knowledge-articlesById"}},"/v1/leads/by-account/{accountId}":{"get":{"security":[{"bearerAuth":[]}],"summary":"Leads by account","tags":["Leads"],"parameters":[{"name":"accountId","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1LeadsBy-accountByAccountId"}},"/v1/leads":{"get":{"security":[{"bearerAuth":[]}],"summary":"List leads","tags":["Leads"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1Leads"}},"/v1/leads/{id}":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get lead by id","tags":["Leads"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1LeadsById"}},"/v1/leads/{id}/source-code":{"patch":{"security":[{"bearerAuth":[]}],"summary":"Update lead source code","tags":["Leads"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"default":[1,2,3]}},"application/x-www-form-urlencoded":{"schema":{"default":[1,2,3]}},"multipart/form-data":{"schema":{"default":[1,2,3]}}}},"operationId":"patchV1LeadsByIdSource-code"}},"/v1/leads/connected":{"post":{"security":[{"bearerAuth":[]}],"summary":"Create lead connected to account","tags":["Leads"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"default":[1,2,3]}},"application/x-www-form-urlencoded":{"schema":{"default":[1,2,3]}},"multipart/form-data":{"schema":{"default":[1,2,3]}}}},"operationId":"postV1LeadsConnected"}},"/v1/orders/{id}":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get order with lines","tags":["Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1OrdersById"}},"/v1/orders/with-lines":{"post":{"security":[{"bearerAuth":[]}],"summary":"Create order with lines","tags":["Orders"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"default":[1,2,3]}},"application/x-www-form-urlencoded":{"schema":{"default":[1,2,3]}},"multipart/form-data":{"schema":{"default":[1,2,3]}}}},"operationId":"postV1OrdersWith-lines"}},"/v1/orders/price-level/digital-log-book":{"get":{"security":[{"bearerAuth":[]}],"summary":"Digital log book price level","tags":["Orders"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1OrdersPrice-levelDigital-log-book"}},"/v1/products/{productId}/prices":{"get":{"security":[{"bearerAuth":[]}],"summary":"List prices by product","tags":["Prices"],"parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1ProductsByProductIdPrices"}},"/v1/prices/{id}":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get price by id","tags":["Prices"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1PricesById"}},"/v1/products/{productId}":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get product by id","tags":["Products"],"parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1ProductsByProductId"}},"/v1/products/by-name":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get product by name","tags":["Products"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1ProductsBy-name"}},"/v1/projects":{"get":{"security":[{"bearerAuth":[]}],"summary":"List projects","tags":["Projects"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1Projects"}},"/v1/projects/{id}":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get project by id","tags":["Projects"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1ProjectsById"}},"/v1/invoices":{"get":{"security":[{"bearerAuth":[]}],"summary":"List invoices","tags":["Invoices"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1Invoices"}},"/v1/invoices/{id}":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get invoice by id","tags":["Invoices"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1InvoicesById"}},"/v1/timesheets":{"get":{"security":[{"bearerAuth":[]}],"summary":"List timesheets","tags":["Timesheets"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1Timesheets"}},"/v1/timesheets/{id}":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get timesheet by id","tags":["Timesheets"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1TimesheetsById"}},"/v1/quotes":{"get":{"security":[{"bearerAuth":[]}],"summary":"List quotes","tags":["Quotes"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1Quotes"}},"/v1/quotes/{id}":{"get":{"security":[{"bearerAuth":[]}],"summary":"Get quote by id","tags":["Quotes"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"getV1QuotesById"}},"/v1/auth-bootstrap/contact":{"post":{"description":"Post-login contactAction: match or create Contact by email (M2M only). Body: JSON or protobuf (`GenericStructPayload`); read via `request.arrayBuffer()` so Auth0 Actions and other `fetch`+JSON clients work on Vercel (avoid `body: t.ArrayBuffer()` validation mismatches).","security":[{"bearerAuth":[]}],"summary":"Auth bootstrap — contact","tags":["AuthBootstrap"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"postV1Auth-bootstrapContact"}},"/v1/auth-bootstrap/account":{"post":{"description":"Post-login accountAction: resolve org membership from Dataverse when contact + account ids are known. Body read via `request.arrayBuffer()` for JSON/protobuf compatibility with M2M callers on Vercel.","security":[{"bearerAuth":[]}],"summary":"Auth bootstrap — account","tags":["AuthBootstrap"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"operationId":"postV1Auth-bootstrapAccount"}},"/v1/self-service/answer":{"post":{"security":[{"bearerAuth":[]}],"summary":"Self-service assistant answer","tags":["SelfService"],"parameters":[{"name":"authorization","in":"header","required":true,"schema":{"type":"string","pattern":"^Bearer\\s+\\S.+$"}},{"name":"x-correlation-id","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"default":[1,2,3]}},"application/x-www-form-urlencoded":{"schema":{"default":[1,2,3]}},"multipart/form-data":{"schema":{"default":[1,2,3]}}}},"operationId":"postV1Self-serviceAnswer"}}}}