@snokam/platform-client 2.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,227 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.1.0](https://github.com/GIT_USER_ID/GIT_REPO_ID/compare/@snokam/platform-client@3.0.0...@snokam/platform-client@3.1.0) (2026-10-02)
7
+
8
+
9
+ ### Features
10
+
11
+ * **auth:** let MCP clients sign in through the Snøsky login ([#2542](https://github.com/GIT_USER_ID/GIT_REPO_ID/issues/2542)) ([5ea6750](https://github.com/GIT_USER_ID/GIT_REPO_ID/commit/5ea67501bde43d999d518e41f98611af2536ff23))
12
+
13
+
14
+
15
+
16
+
17
+ # [3.0.0](https://github.com/GIT_USER_ID/GIT_REPO_ID/compare/@snokam/platform-client@2.0.0...@snokam/platform-client@3.0.0) (2026-10-01)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **tooling:** keep a regenerated client's published version ([33c866c](https://github.com/GIT_USER_ID/GIT_REPO_ID/commit/33c866cdd916bba2ea4bdd975d4783ae22f2224b)), closes [#2530](https://github.com/GIT_USER_ID/GIT_REPO_ID/issues/2530)
23
+
24
+
25
+ * feat(onboarding)!: vendor-independent onboarding + onboarding tasks in Jira (#2530) ([ebb4592](https://github.com/GIT_USER_ID/GIT_REPO_ID/commit/ebb4592d64ca68dfcf04470435bdb6d30931eb00)), closes [#2530](https://github.com/GIT_USER_ID/GIT_REPO_ID/issues/2530)
26
+
27
+
28
+ ### BREAKING CHANGES
29
+
30
+ * `SanitySystemsInner` and the `/v1.0/systems` endpoints
31
+ are removed from the sanity/recruitment clients.
32
+
33
+ Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
34
+
35
+ * feat(recruitment): surface catalog activate/deactivate deep-links on onboarding rows
36
+
37
+ Restore the manual "activate account"/"deactivate" deep-links that the Sanity
38
+ system-doc teardown dropped, now sourced from the OnboardingSystemCatalog via
39
+ RequestTenant. OnboardingStepSystemView carries nullable activateUrl/deactivateUrl,
40
+ populated per system from tenant.OnboardingActivateUrl/OnboardingDeactivateUrl
41
+ (rendering the {slug} template + per-tenant override map). recruitment-web renders
42
+ the activate link on onboarding system rows and the deactivate link on offboarding
43
+ rows when present. Regenerated recruitment client.
44
+
45
+ Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
46
+
47
+ * fix(recruitment): micros cannot use the @/ alias — my-page-web compiles them
48
+
49
+ The kandidat, drift and onboarding micros are imported by my-page-web, where
50
+ @/ resolves to my-page-web's src. The eight @/utils/systemCapabilities imports
51
+ this branch added were therefore unresolvable in that build — six module-not-
52
+ found errors, and the image never got built. Every other file under micros/
53
+ already reaches app-local code by relative path; these now do too.
54
+
55
+ Also runs prettier over the candidate process schema, which the lint job
56
+ flagged.
57
+
58
+ Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
59
+ Claude-Session: https://claude.ai/code/session_01FatBj58knAM48WmDppDYyg
60
+
61
+ * chore(platform): regenerate the platform client for the merged integration model
62
+
63
+ The merge took main's IntegrationSummary, which renamed isActive to isInUse
64
+ and does not know about logoUrl. Regenerating against the merged
65
+ platform-function gives a client with both.
66
+
67
+ Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
68
+ Claude-Session: https://claude.ai/code/session_01FatBj58knAM48WmDppDYyg
69
+
70
+ * chore(platform): keep the platform-client changelog the regenerator dropped
71
+
72
+ The client generator rewrites the package directory and took CHANGELOG.md with
73
+ it. Restored from main.
74
+
75
+ Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
76
+ Claude-Session: https://claude.ai/code/session_01FatBj58knAM48WmDppDYyg
77
+
78
+ * fix(platform): follow the tenancy refactor's namespaces in the integration catalog
79
+
80
+ main's refactor removed Snokam.Security: FunctionAuthorize now lives in Snokam.Auth and ImplicitAuthFlow in Snokam.Api. IntegrationCatalog still imported the old namespace, so the platform-function image build failed once main was merged in. Platform.Function builds with 0 errors.
81
+
82
+ Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
83
+
84
+ * feat: create onboarding tasks as Jira issues and sync them back
85
+
86
+ Onboarding tasks become Jira issues instead of checkboxes only. The
87
+ intranet onboarding list stays the master for which issues get created.
88
+
89
+ - Onboarding chain step `jira-onboarding-tasks` creates one issue per
90
+ open onboarding task, in the configured epic and the active sprint,
91
+ labelled onboarding-firstname-lastname. Assignee comes from the task's
92
+ new role (recruiter / buddy / new hire) or a fixed person.
93
+ - SyncOnboardingIssuesJob (every 15 min, plus POST
94
+ /v1.0/protected/onboarding/jira-sync) creates the equipment issue once
95
+ the new hire orders equipment, creates the follow-up issue X days after
96
+ start, and ticks tasks off in the checklist when their issue is done.
97
+ A done equipment issue posts who ordered it.
98
+ - Recruitment Settings gets an "Onboarding i Jira" section (project,
99
+ epic, issue type, equipment assignee, follow-up days/role), served by a
100
+ new sanity-function endpoint.
101
+ - The equipment-ordered Slack message points to the Jira issue instead
102
+ of the Confluence checklist.
103
+
104
+ Committed with --no-verify from a worktree; lint (0 errors) and prettier
105
+ were run on the changed TS workspaces.
106
+
107
+ Refs SNO-4167
108
+
109
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
110
+
111
+ * feat: read onboarding task status live from Jira instead of copying it
112
+
113
+ Jira is the source of truth for onboarding tasks, so the intranet no
114
+ longer mirrors completion into onboardingChecklist.
115
+
116
+ - Candidates keep only the link from task to issue key; `done` is gone,
117
+ `announced` remains for the one-time "utstyret er bestilt" message.
118
+ - GET /v1.0/protected/onboarding/issues returns every onboarding
119
+ candidate's issues (or one, with candidateId) with status, assignee
120
+ and browse link from a single Jira query; statusError says why when
121
+ Jira is unreachable.
122
+ - Candidate detail, the onboarding dashboard and Min rekruttering count
123
+ a task as done when Jira says so (or it was ticked before it got an
124
+ issue). Tasks with an issue are read-only and link to Jira.
125
+ - The sync job now only creates the equipment and follow-up issues and
126
+ announces a finished equipment order.
127
+
128
+ New UI text keys are seeded on recruitment-web-admin-candidate-page in
129
+ prod. Committed with --no-verify from a worktree; recruitment-web lint
130
+ (0 errors), prettier and tsc on the changed micros were run.
131
+
132
+ Refs SNO-4167
133
+
134
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
135
+
136
+ * feat: create the equipment issue when the order is placed; sync daily
137
+
138
+ - employees-function calls recruitment-function (generated client, MI
139
+ token) right after an equipment order, and recruitment creates the
140
+ equipment Jira issue on the new hire's onboarding. A failed call is
141
+ reported and the daily run catches up.
142
+ - New POST /v1.0/protected/onboarding/equipment-order.
143
+ - SyncOnboardingIssuesJob now runs daily at 07:00: due follow-ups,
144
+ missed equipment issues, and the one-time "utstyret er bestilt"
145
+ message.
146
+ - Studio hides the manual onboarding checklist once a candidate has
147
+ Jira issues (status lives in Jira and the intranet); the Jira list
148
+ shows task title per issue.
149
+
150
+ Refs SNO-4167
151
+
152
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
153
+
154
+ * fix(recruitment): look up Jira assignees with assignable-user search
155
+
156
+ The connected Jira account (Olaf) lacks the global Browse users
157
+ permission, so /user/search returns nothing. /user/assignable/search
158
+ scoped to the project works with read:jira-user and is the right
159
+ question anyway: can this person be assigned in the project?
160
+
161
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
162
+
163
+ * fix(recruitment): bulk-create onboarding issues and harden Jira parsing
164
+
165
+ Found in a live run against the test Jira site:
166
+ - Creating 27 issues one by one took ~45 s locally, close to the 60 s
167
+ request budget, and a run cut short left issues in Jira that were
168
+ never linked, so a retry duplicated them. Task issues are now created
169
+ with one /issue/bulk call, and every issue Jira accepted is saved even
170
+ when others are rejected.
171
+ - The Jira access token was fetched from platform on every Jira call;
172
+ it is now fetched once per request.
173
+ - Unassigned issues ("assignee": null) crashed status parsing; JSON
174
+ nulls are handled.
175
+
176
+ Adds adapter tests against recorded Jira responses.
177
+
178
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
179
+
180
+ * feat(recruitment): create onboarding Jira issues on schedule, X days before start
181
+
182
+ Each onboarding task's existing "Påminn kanal X dager før oppstart"
183
+ (remindDaysBefore) now also decides when its Jira issue is created:
184
+ start date minus X days. Tasks without it are created as soon as the
185
+ candidate is onboarding. The daily job creates what has become due for
186
+ ONBOARDING candidates whose start date is at most follow-up-days back;
187
+ "Kjør automatisk onboarding" creates what is due right away. Candidates
188
+ without a start date get nothing.
189
+
190
+ Also fixes the task API, which projected the stale reminderWeeksBefore
191
+ field instead of remindDaysBefore.
192
+
193
+ Refs SNO-4167
194
+
195
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
196
+
197
+ * feat(recruitment): create all onboarding issues at once and place each in the sprint of its due date
198
+
199
+ From recruitment (Silje): create the issues when the candidate is moved
200
+ to onboarding, and put them in sprints based on the start date.
201
+
202
+ - Moving a candidate to ONBOARDING starts issue creation in the
203
+ background from the candidate page; the daily job is the safety net.
204
+ - Every issue gets a Jira due date: start date minus the task's "X dager
205
+ før oppstart", or the start date when it has none.
206
+ - Each issue goes into the sprint whose dates cover its due date (active
207
+ sprint when due already, the last planned sprint when beyond the
208
+ planned ones). Nothing is left in the backlog. Sprints are read from
209
+ issue search, so no extra Jira Software scope is needed.
210
+ - The daily job moves open issues to the right sprint when sprints are
211
+ added or re-dated.
212
+ - Candidate page shows due date and sprint on each Jira task; the
213
+ "planned" state is gone since every task exists in Jira.
214
+
215
+ Refs SNO-4167
216
+
217
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
218
+
219
+ * chore: regenerate Sanity types and clients for the integrated onboarding branch
220
+
221
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
222
+
223
+
224
+
225
+
226
+
6
227
  # 2.0.0 (2026-09-02)
7
228
 
8
229
 
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @snokam/platform-client@1.0.0
1
+ # @snokam/platform-client@3.0.0
2
2
 
3
3
  A TypeScript SDK client for the snokam.snosky.no API.
4
4
 
@@ -58,6 +58,7 @@ All URIs are relative to *https://snokam.snosky.no/api/platform*
58
58
  | ----- | ------ | ------------ | -------------
59
59
  *PlatformClient* | [**addCustomDomain**](docs/PlatformClient.md#addcustomdomainoperation) | **POST** /v1.0/protected/businesses/{id}/custom-domains | Add a custom domain
60
60
  *PlatformClient* | [**approveDevice**](docs/PlatformClient.md#approvedeviceoperation) | **POST** /v1.0/protected/businesses/{id}/devices | Approve a screen into this business
61
+ *PlatformClient* | [**approveOAuthAuthorization**](docs/PlatformClient.md#approveoauthauthorization) | **POST** /v1.0/protected/oauth/authorization | Approve an authorization request as the signed-in user
61
62
  *PlatformClient* | [**assignBusinessEmployeeSystem**](docs/PlatformClient.md#assignbusinessemployeesystem) | **POST** /v1.0/protected/businesses/{id}/employees/{upn}/systems/{systemKey} | Grant an employee a seat in a third-party system
62
63
  *PlatformClient* | [**backfillBridgeWebhook**](docs/PlatformClient.md#backfillbridgewebhook) | **POST** /v1.0/protected/businesses/{id}/bridge-webhook | Re-create a business\&#39;s Sanity bridge webhook with a managed API key
63
64
  *PlatformClient* | [**checkIntegration**](docs/PlatformClient.md#checkintegration) | **POST** /v1.0/protected/businesses/{id}/integrations/{key}/check | Run a live integration connectivity check
@@ -103,6 +104,7 @@ All URIs are relative to *https://snokam.snosky.no/api/platform*
103
104
  *PlatformClient* | [**getPlatformIntegrations**](docs/PlatformClient.md#getplatformintegrations) | **GET** /v1.0/protected/platform/integrations | List platform-shared integrations
104
105
  *PlatformClient* | [**getPlatformOAuthAccessToken**](docs/PlatformClient.md#getplatformoauthaccesstoken) | **GET** /v1.0/protected/platform/oauth/{provider}/access-token | Mint a fresh platform OAuth access token
105
106
  *PlatformClient* | [**getPlatformSecrets**](docs/PlatformClient.md#getplatformsecrets) | **GET** /v1.0/protected/platform/secrets | List shared platform secrets
107
+ *PlatformClient* | [**getProviderCatalog**](docs/PlatformClient.md#getprovidercatalog) | **GET** /v1.0/protected/catalog/providers | List provider brand catalog
106
108
  *PlatformClient* | [**getProvisioningStatus**](docs/PlatformClient.md#getprovisioningstatus) | **GET** /v1.0/protected/businesses/{id}/status | Get provisioning status
107
109
  *PlatformClient* | [**getTeamsAuthState**](docs/PlatformClient.md#getteamsauthstate) | **GET** /v1.0/protected/businesses/{id}/teams/auth-state | Read the business\&#39;s stored Teams authenticated join session
108
110
  *PlatformClient* | [**getTeamsUserAcsToken**](docs/PlatformClient.md#getteamsuseracstoken) | **GET** /v1.0/protected/businesses/{id}/teams/acs-token | Mint an ACS access token for the connected M365 user as a Teams user
@@ -147,6 +149,7 @@ All URIs are relative to *https://snokam.snosky.no/api/platform*
147
149
  *PlatformClient* | [**powerOfficeOnboardingReturn**](docs/PlatformClient.md#powerofficeonboardingreturn) | **GET** /v1.0/connect/poweroffice/return/{reference} | PowerOffice onboarding return
148
150
  *PlatformClient* | [**previewBillingInvoice**](docs/PlatformClient.md#previewbillinginvoice) | **POST** /v1.0/protected/businesses/{id}/billing/invoice-preview | Preview a month\&#39;s invoice basis
149
151
  *PlatformClient* | [**previewDevice**](docs/PlatformClient.md#previewdevice) | **GET** /v1.0/protected/businesses/{id}/devices/preview | Look up a pairing code before approving
152
+ *PlatformClient* | [**previewOAuthAuthorization**](docs/PlatformClient.md#previewoauthauthorization) | **POST** /v1.0/protected/oauth/authorization/preview | Describe an authorization request before the user approves it
150
153
  *PlatformClient* | [**provisionBusiness**](docs/PlatformClient.md#provisionbusiness) | **POST** /v1.0/protected/businesses/{id}/provision | Provision a business
151
154
  *PlatformClient* | [**publicCapabilities**](docs/PlatformClient.md#publiccapabilities) | **GET** /v1.0/public/capabilities | Get capabilities
152
155
  *PlatformClient* | [**publicModules**](docs/PlatformClient.md#publicmodules) | **GET** /v1.0/public/modules | Get available modules
@@ -199,6 +202,8 @@ All URIs are relative to *https://snokam.snosky.no/api/platform*
199
202
  - [AppCatalogEntry](docs/AppCatalogEntry.md)
200
203
  - [AppModule](docs/AppModule.md)
201
204
  - [ApproveDeviceRequest](docs/ApproveDeviceRequest.md)
205
+ - [AuthorizationPreview](docs/AuthorizationPreview.md)
206
+ - [AuthorizationRequest](docs/AuthorizationRequest.md)
202
207
  - [BillingPaymentMethod](docs/BillingPaymentMethod.md)
203
208
  - [BillingSessionRequest](docs/BillingSessionRequest.md)
204
209
  - [BillingSessionResponse](docs/BillingSessionResponse.md)
@@ -253,6 +258,7 @@ All URIs are relative to *https://snokam.snosky.no/api/platform*
253
258
  - [InviteCredentialRequest](docs/InviteCredentialRequest.md)
254
259
  - [InvoiceBasis](docs/InvoiceBasis.md)
255
260
  - [InvoiceBasisLine](docs/InvoiceBasisLine.md)
261
+ - [IssuedAuthorizationCode](docs/IssuedAuthorizationCode.md)
256
262
  - [LoginConfig](docs/LoginConfig.md)
257
263
  - [MeApp](docs/MeApp.md)
258
264
  - [MeterEnforcementDecision](docs/MeterEnforcementDecision.md)
@@ -288,6 +294,8 @@ All URIs are relative to *https://snokam.snosky.no/api/platform*
288
294
  - [PowerOfficeProject](docs/PowerOfficeProject.md)
289
295
  - [PowerOfficeProjectsResponse](docs/PowerOfficeProjectsResponse.md)
290
296
  - [ProtectedEmployee](docs/ProtectedEmployee.md)
297
+ - [ProviderCatalogEntry](docs/ProviderCatalogEntry.md)
298
+ - [ProviderCatalogResponse](docs/ProviderCatalogResponse.md)
291
299
  - [ProvisioningEvent](docs/ProvisioningEvent.md)
292
300
  - [RecordImpersonationActivityRequest](docs/RecordImpersonationActivityRequest.md)
293
301
  - [RenameDeviceRequest](docs/RenameDeviceRequest.md)
@@ -381,7 +389,7 @@ and is automatically generated by the
381
389
  [OpenAPI Generator](https://openapi-generator.tech) project:
382
390
 
383
391
  - API version: `v1.0.0`
384
- - Package version: `1.0.0`
392
+ - Package version: `3.0.0`
385
393
  - Generator version: `7.23.0`
386
394
  - Build package: `org.openapitools.codegen.languages.TypeScriptFetchClientCodegen`
387
395
 
@@ -10,7 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import * as runtime from '../runtime';
13
- import type { ActivateRequest, ActivateResult, AddCustomDomainRequest, ApiTokenSummary, ApiTokenVerifyResult, AppCatalogEntry, AppModule, ApproveDeviceRequest, BillingPaymentMethod, BillingSessionRequest, BillingSessionResponse, BridgeWebhookResult, Business, BusinessAccess, BusinessHealth, Capability, ChooseProviderRequest, CreateApiTokenRequest, CreateUserRequest, CreatedApiToken, CredentialSummary, CustomDomainProvisioning, DevicePairRequestBody, DevicePairing, DevicePairingStatus, DevicePollRequestBody, DeviceScreen, DirectoryGroupsResponse, DirectoryLicensesResponse, DirectoryMailbox, DirectoryServicePrincipalsResponse, EmployeeSettings, EmployeeSystemAccess, EmployeeSystemConfig, FacebookAccount, GitHubRepo, GoogleAnalyticsProperty, GoogleAnalyticsSelection, ImpersonationHistoryEntry, IntegrationCheckResult, IntegrationSummary, InviteCredentialRequest, InvoiceBasis, LoginConfig, MeApp, MeterEnforcementDecision, OAuthAccessTokenResponse, OAuthStartResponse, OlafApiKeyResponse, OlafTeamsSettings, OnboardBusinessRequest, OnboardingConfig, OnboardingStatus, PasswordLoginRequest, PasswordLoginResult, PatchBusinessRequest, PatchEmployee, PendingDevicePreview, PlanInfo, PlatformIntegration, PlatformSanityConfig, PlatformSecretStatus, PowerOfficeConnectResponse, PowerOfficeProduct, PowerOfficeProductsResponse, PowerOfficeProject, PowerOfficeProjectsResponse, ProtectedEmployee, RecordImpersonationActivityRequest, RenameDeviceRequest, ResetConfirmRequest, ResetRequest, RevokeRequest, ScopeDefinition, SessionBootstrapRequest, SetFacebookAccountRequest, SetGoogleAnalyticsPropertyRequest, SetPlatformSecretRequest, SetScopeGrantsRequest, SetWorkReposRequest, SetWorkspaceRepoRequest, SignupConfig, SignupRequest, SignupResult, SsoExchangeRequest, StartImpersonationRequest, StartImpersonationResult, StudioSanityConfig, TeamsAcsTokenResponse, TeamsAuthStateResponse, TenantInfo, TenantSanityCredentials, TokenExchangeRequest, TokenExchangeResult, TokenReconciliationReport, TotpEnrollRequest, TotpEnrollResult, UpdateAppsRequest, UpdateSecretsRequest, UsageDailySeries, UsageEventsRequest, UsageRollup, UsageSummary, VerifyApiTokenRequest, WorkReposSelection, WorkspaceRepoSelection } from '../models/index';
13
+ import type { ActivateRequest, ActivateResult, AddCustomDomainRequest, ApiTokenSummary, ApiTokenVerifyResult, AppCatalogEntry, AppModule, ApproveDeviceRequest, AuthorizationPreview, AuthorizationRequest, BillingPaymentMethod, BillingSessionRequest, BillingSessionResponse, BridgeWebhookResult, Business, BusinessAccess, BusinessHealth, Capability, ChooseProviderRequest, CreateApiTokenRequest, CreateUserRequest, CreatedApiToken, CredentialSummary, CustomDomainProvisioning, DevicePairRequestBody, DevicePairing, DevicePairingStatus, DevicePollRequestBody, DeviceScreen, DirectoryGroupsResponse, DirectoryLicensesResponse, DirectoryMailbox, DirectoryServicePrincipalsResponse, EmployeeSettings, EmployeeSystemAccess, EmployeeSystemConfig, FacebookAccount, GitHubRepo, GoogleAnalyticsProperty, GoogleAnalyticsSelection, ImpersonationHistoryEntry, IntegrationCheckResult, IntegrationSummary, InviteCredentialRequest, InvoiceBasis, IssuedAuthorizationCode, LoginConfig, MeApp, MeterEnforcementDecision, OAuthAccessTokenResponse, OAuthStartResponse, OlafApiKeyResponse, OlafTeamsSettings, OnboardBusinessRequest, OnboardingConfig, OnboardingStatus, PasswordLoginRequest, PasswordLoginResult, PatchBusinessRequest, PatchEmployee, PendingDevicePreview, PlanInfo, PlatformIntegration, PlatformSanityConfig, PlatformSecretStatus, PowerOfficeConnectResponse, PowerOfficeProduct, PowerOfficeProductsResponse, PowerOfficeProject, PowerOfficeProjectsResponse, ProtectedEmployee, ProviderCatalogResponse, RecordImpersonationActivityRequest, RenameDeviceRequest, ResetConfirmRequest, ResetRequest, RevokeRequest, ScopeDefinition, SessionBootstrapRequest, SetFacebookAccountRequest, SetGoogleAnalyticsPropertyRequest, SetPlatformSecretRequest, SetScopeGrantsRequest, SetWorkReposRequest, SetWorkspaceRepoRequest, SignupConfig, SignupRequest, SignupResult, SsoExchangeRequest, StartImpersonationRequest, StartImpersonationResult, StudioSanityConfig, TeamsAcsTokenResponse, TeamsAuthStateResponse, TenantInfo, TenantSanityCredentials, TokenExchangeRequest, TokenExchangeResult, TokenReconciliationReport, TotpEnrollRequest, TotpEnrollResult, UpdateAppsRequest, UpdateSecretsRequest, UsageDailySeries, UsageEventsRequest, UsageRollup, UsageSummary, VerifyApiTokenRequest, WorkReposSelection, WorkspaceRepoSelection } from '../models/index';
14
14
  export interface AddCustomDomainOperationRequest {
15
15
  id: string;
16
16
  addCustomDomainRequest: AddCustomDomainRequest;
@@ -19,6 +19,9 @@ export interface ApproveDeviceOperationRequest {
19
19
  id: string;
20
20
  approveDeviceRequest: ApproveDeviceRequest;
21
21
  }
22
+ export interface ApproveOAuthAuthorizationRequest {
23
+ authorizationRequest: AuthorizationRequest;
24
+ }
22
25
  export interface AssignBusinessEmployeeSystemRequest {
23
26
  id: string;
24
27
  upn: string;
@@ -266,6 +269,9 @@ export interface PreviewDeviceRequest {
266
269
  id: string;
267
270
  code: string;
268
271
  }
272
+ export interface PreviewOAuthAuthorizationRequest {
273
+ authorizationRequest: AuthorizationRequest;
274
+ }
269
275
  export interface ProvisionBusinessRequest {
270
276
  id: string;
271
277
  }
@@ -429,6 +435,20 @@ export declare class PlatformClient extends runtime.BaseAPI {
429
435
  * Approve a screen into this business
430
436
  */
431
437
  approveDevice(requestParameters: ApproveDeviceOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DeviceScreen>;
438
+ /**
439
+ * Creates request options for approveOAuthAuthorization without sending the request
440
+ */
441
+ approveOAuthAuthorizationRequestOpts(requestParameters: ApproveOAuthAuthorizationRequest): Promise<runtime.RequestOpts>;
442
+ /**
443
+ * Issues a single-use authorization code the client redeems at the token endpoint.
444
+ * Approve an authorization request as the signed-in user
445
+ */
446
+ approveOAuthAuthorizationRaw(requestParameters: ApproveOAuthAuthorizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<IssuedAuthorizationCode>>;
447
+ /**
448
+ * Issues a single-use authorization code the client redeems at the token endpoint.
449
+ * Approve an authorization request as the signed-in user
450
+ */
451
+ approveOAuthAuthorization(requestParameters: ApproveOAuthAuthorizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<IssuedAuthorizationCode>;
432
452
  /**
433
453
  * Creates request options for assignBusinessEmployeeSystem without sending the request
434
454
  */
@@ -1059,6 +1079,20 @@ export declare class PlatformClient extends runtime.BaseAPI {
1059
1079
  * List shared platform secrets
1060
1080
  */
1061
1081
  getPlatformSecrets(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<PlatformSecretStatus>>;
1082
+ /**
1083
+ * Creates request options for getProviderCatalog without sending the request
1084
+ */
1085
+ getProviderCatalogRequestOpts(): Promise<runtime.RequestOpts>;
1086
+ /**
1087
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
1088
+ * List provider brand catalog
1089
+ */
1090
+ getProviderCatalogRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ProviderCatalogResponse>>;
1091
+ /**
1092
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
1093
+ * List provider brand catalog
1094
+ */
1095
+ getProviderCatalog(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ProviderCatalogResponse>;
1062
1096
  /**
1063
1097
  * Creates request options for getProvisioningStatus without sending the request
1064
1098
  */
@@ -1671,6 +1705,20 @@ export declare class PlatformClient extends runtime.BaseAPI {
1671
1705
  * Look up a pairing code before approving
1672
1706
  */
1673
1707
  previewDevice(requestParameters: PreviewDeviceRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PendingDevicePreview>;
1708
+ /**
1709
+ * Creates request options for previewOAuthAuthorization without sending the request
1710
+ */
1711
+ previewOAuthAuthorizationRequestOpts(requestParameters: PreviewOAuthAuthorizationRequest): Promise<runtime.RequestOpts>;
1712
+ /**
1713
+ * Validates the client, redirect URI and resource for the signed-in user and names the client.
1714
+ * Describe an authorization request before the user approves it
1715
+ */
1716
+ previewOAuthAuthorizationRaw(requestParameters: PreviewOAuthAuthorizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AuthorizationPreview>>;
1717
+ /**
1718
+ * Validates the client, redirect URI and resource for the signed-in user and names the client.
1719
+ * Describe an authorization request before the user approves it
1720
+ */
1721
+ previewOAuthAuthorization(requestParameters: PreviewOAuthAuthorizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AuthorizationPreview>;
1674
1722
  /**
1675
1723
  * Creates request options for provisionBusiness without sending the request
1676
1724
  */
@@ -1800,12 +1848,12 @@ export declare class PlatformClient extends runtime.BaseAPI {
1800
1848
  */
1801
1849
  resolvePlatformSanityConfigRequestOpts(): Promise<runtime.RequestOpts>;
1802
1850
  /**
1803
- * Returns the shared platform Sanity project, dataset, studio URL and read token used as the content fallback layer for every tenant. All four values live in platform Key Vault (editable in platform-web), so nothing Sanity-related is baked onto frontends. This is a render-path config endpoint, so it accepts any principal from the platform Entra tenant — the platform managed identity in production, or a Snøkam developer\'s az session locally — with no operator role required.
1851
+ * Returns the shared platform Sanity project, dataset, studio URL and read token used as the content fallback layer for every tenant. All four values live in platform Key Vault (editable in platform-web), so nothing Sanity-related is baked onto frontends. The answer is cached in-process for five minutes and served stale if Key Vault is briefly unreachable. This is a render-path config endpoint, so it accepts any principal from the platform Entra tenant — the platform managed identity in production, or a Snøkam developer\'s az session locally — with no operator role required.
1804
1852
  * Resolve the platform Sanity read config
1805
1853
  */
1806
1854
  resolvePlatformSanityConfigRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PlatformSanityConfig>>;
1807
1855
  /**
1808
- * Returns the shared platform Sanity project, dataset, studio URL and read token used as the content fallback layer for every tenant. All four values live in platform Key Vault (editable in platform-web), so nothing Sanity-related is baked onto frontends. This is a render-path config endpoint, so it accepts any principal from the platform Entra tenant — the platform managed identity in production, or a Snøkam developer\'s az session locally — with no operator role required.
1856
+ * Returns the shared platform Sanity project, dataset, studio URL and read token used as the content fallback layer for every tenant. All four values live in platform Key Vault (editable in platform-web), so nothing Sanity-related is baked onto frontends. The answer is cached in-process for five minutes and served stale if Key Vault is briefly unreachable. This is a render-path config endpoint, so it accepts any principal from the platform Entra tenant — the platform managed identity in production, or a Snøkam developer\'s az session locally — with no operator role required.
1809
1857
  * Resolve the platform Sanity read config
1810
1858
  */
1811
1859
  resolvePlatformSanityConfig(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PlatformSanityConfig>;
@@ -128,6 +128,52 @@ class PlatformClient extends runtime.BaseAPI {
128
128
  return yield response.value();
129
129
  });
130
130
  }
131
+ /**
132
+ * Creates request options for approveOAuthAuthorization without sending the request
133
+ */
134
+ approveOAuthAuthorizationRequestOpts(requestParameters) {
135
+ return __awaiter(this, void 0, void 0, function* () {
136
+ if (requestParameters['authorizationRequest'] == null) {
137
+ throw new runtime.RequiredError('authorizationRequest', 'Required parameter "authorizationRequest" was null or undefined when calling approveOAuthAuthorization().');
138
+ }
139
+ const queryParameters = {};
140
+ const headerParameters = {};
141
+ headerParameters['Content-Type'] = 'application/json';
142
+ if (this.configuration && this.configuration.accessToken) {
143
+ // oauth required
144
+ headerParameters["Authorization"] = yield this.configuration.accessToken("Implicit", []);
145
+ }
146
+ let urlPath = `/v1.0/protected/oauth/authorization`;
147
+ return {
148
+ path: urlPath,
149
+ method: 'POST',
150
+ headers: headerParameters,
151
+ query: queryParameters,
152
+ body: requestParameters['authorizationRequest'],
153
+ };
154
+ });
155
+ }
156
+ /**
157
+ * Issues a single-use authorization code the client redeems at the token endpoint.
158
+ * Approve an authorization request as the signed-in user
159
+ */
160
+ approveOAuthAuthorizationRaw(requestParameters, initOverrides) {
161
+ return __awaiter(this, void 0, void 0, function* () {
162
+ const requestOptions = yield this.approveOAuthAuthorizationRequestOpts(requestParameters);
163
+ const response = yield this.request(requestOptions, initOverrides);
164
+ return new runtime.JSONApiResponse(response);
165
+ });
166
+ }
167
+ /**
168
+ * Issues a single-use authorization code the client redeems at the token endpoint.
169
+ * Approve an authorization request as the signed-in user
170
+ */
171
+ approveOAuthAuthorization(requestParameters, initOverrides) {
172
+ return __awaiter(this, void 0, void 0, function* () {
173
+ const response = yield this.approveOAuthAuthorizationRaw(requestParameters, initOverrides);
174
+ return yield response.value();
175
+ });
176
+ }
131
177
  /**
132
178
  * Creates request options for assignBusinessEmployeeSystem without sending the request
133
179
  */
@@ -2171,6 +2217,47 @@ class PlatformClient extends runtime.BaseAPI {
2171
2217
  return yield response.value();
2172
2218
  });
2173
2219
  }
2220
+ /**
2221
+ * Creates request options for getProviderCatalog without sending the request
2222
+ */
2223
+ getProviderCatalogRequestOpts() {
2224
+ return __awaiter(this, void 0, void 0, function* () {
2225
+ const queryParameters = {};
2226
+ const headerParameters = {};
2227
+ if (this.configuration && this.configuration.accessToken) {
2228
+ // oauth required
2229
+ headerParameters["Authorization"] = yield this.configuration.accessToken("Implicit", []);
2230
+ }
2231
+ let urlPath = `/v1.0/protected/catalog/providers`;
2232
+ return {
2233
+ path: urlPath,
2234
+ method: 'GET',
2235
+ headers: headerParameters,
2236
+ query: queryParameters,
2237
+ };
2238
+ });
2239
+ }
2240
+ /**
2241
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
2242
+ * List provider brand catalog
2243
+ */
2244
+ getProviderCatalogRaw(initOverrides) {
2245
+ return __awaiter(this, void 0, void 0, function* () {
2246
+ const requestOptions = yield this.getProviderCatalogRequestOpts();
2247
+ const response = yield this.request(requestOptions, initOverrides);
2248
+ return new runtime.JSONApiResponse(response);
2249
+ });
2250
+ }
2251
+ /**
2252
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
2253
+ * List provider brand catalog
2254
+ */
2255
+ getProviderCatalog(initOverrides) {
2256
+ return __awaiter(this, void 0, void 0, function* () {
2257
+ const response = yield this.getProviderCatalogRaw(initOverrides);
2258
+ return yield response.value();
2259
+ });
2260
+ }
2174
2261
  /**
2175
2262
  * Creates request options for getProvisioningStatus without sending the request
2176
2263
  */
@@ -4126,6 +4213,52 @@ class PlatformClient extends runtime.BaseAPI {
4126
4213
  return yield response.value();
4127
4214
  });
4128
4215
  }
4216
+ /**
4217
+ * Creates request options for previewOAuthAuthorization without sending the request
4218
+ */
4219
+ previewOAuthAuthorizationRequestOpts(requestParameters) {
4220
+ return __awaiter(this, void 0, void 0, function* () {
4221
+ if (requestParameters['authorizationRequest'] == null) {
4222
+ throw new runtime.RequiredError('authorizationRequest', 'Required parameter "authorizationRequest" was null or undefined when calling previewOAuthAuthorization().');
4223
+ }
4224
+ const queryParameters = {};
4225
+ const headerParameters = {};
4226
+ headerParameters['Content-Type'] = 'application/json';
4227
+ if (this.configuration && this.configuration.accessToken) {
4228
+ // oauth required
4229
+ headerParameters["Authorization"] = yield this.configuration.accessToken("Implicit", []);
4230
+ }
4231
+ let urlPath = `/v1.0/protected/oauth/authorization/preview`;
4232
+ return {
4233
+ path: urlPath,
4234
+ method: 'POST',
4235
+ headers: headerParameters,
4236
+ query: queryParameters,
4237
+ body: requestParameters['authorizationRequest'],
4238
+ };
4239
+ });
4240
+ }
4241
+ /**
4242
+ * Validates the client, redirect URI and resource for the signed-in user and names the client.
4243
+ * Describe an authorization request before the user approves it
4244
+ */
4245
+ previewOAuthAuthorizationRaw(requestParameters, initOverrides) {
4246
+ return __awaiter(this, void 0, void 0, function* () {
4247
+ const requestOptions = yield this.previewOAuthAuthorizationRequestOpts(requestParameters);
4248
+ const response = yield this.request(requestOptions, initOverrides);
4249
+ return new runtime.JSONApiResponse(response);
4250
+ });
4251
+ }
4252
+ /**
4253
+ * Validates the client, redirect URI and resource for the signed-in user and names the client.
4254
+ * Describe an authorization request before the user approves it
4255
+ */
4256
+ previewOAuthAuthorization(requestParameters, initOverrides) {
4257
+ return __awaiter(this, void 0, void 0, function* () {
4258
+ const response = yield this.previewOAuthAuthorizationRaw(requestParameters, initOverrides);
4259
+ return yield response.value();
4260
+ });
4261
+ }
4129
4262
  /**
4130
4263
  * Creates request options for provisionBusiness without sending the request
4131
4264
  */
@@ -4534,7 +4667,7 @@ class PlatformClient extends runtime.BaseAPI {
4534
4667
  });
4535
4668
  }
4536
4669
  /**
4537
- * Returns the shared platform Sanity project, dataset, studio URL and read token used as the content fallback layer for every tenant. All four values live in platform Key Vault (editable in platform-web), so nothing Sanity-related is baked onto frontends. This is a render-path config endpoint, so it accepts any principal from the platform Entra tenant — the platform managed identity in production, or a Snøkam developer\'s az session locally — with no operator role required.
4670
+ * Returns the shared platform Sanity project, dataset, studio URL and read token used as the content fallback layer for every tenant. All four values live in platform Key Vault (editable in platform-web), so nothing Sanity-related is baked onto frontends. The answer is cached in-process for five minutes and served stale if Key Vault is briefly unreachable. This is a render-path config endpoint, so it accepts any principal from the platform Entra tenant — the platform managed identity in production, or a Snøkam developer\'s az session locally — with no operator role required.
4538
4671
  * Resolve the platform Sanity read config
4539
4672
  */
4540
4673
  resolvePlatformSanityConfigRaw(initOverrides) {
@@ -4545,7 +4678,7 @@ class PlatformClient extends runtime.BaseAPI {
4545
4678
  });
4546
4679
  }
4547
4680
  /**
4548
- * Returns the shared platform Sanity project, dataset, studio URL and read token used as the content fallback layer for every tenant. All four values live in platform Key Vault (editable in platform-web), so nothing Sanity-related is baked onto frontends. This is a render-path config endpoint, so it accepts any principal from the platform Entra tenant — the platform managed identity in production, or a Snøkam developer\'s az session locally — with no operator role required.
4681
+ * Returns the shared platform Sanity project, dataset, studio URL and read token used as the content fallback layer for every tenant. All four values live in platform Key Vault (editable in platform-web), so nothing Sanity-related is baked onto frontends. The answer is cached in-process for five minutes and served stale if Key Vault is briefly unreachable. This is a render-path config endpoint, so it accepts any principal from the platform Entra tenant — the platform managed identity in production, or a Snøkam developer\'s az session locally — with no operator role required.
4549
4682
  * Resolve the platform Sanity read config
4550
4683
  */
4551
4684
  resolvePlatformSanityConfig(initOverrides) {