@snokam/platform-client 2.0.0 → 3.0.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,216 @@
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.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)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **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)
12
+
13
+
14
+ * 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)
15
+
16
+
17
+ ### BREAKING CHANGES
18
+
19
+ * `SanitySystemsInner` and the `/v1.0/systems` endpoints
20
+ are removed from the sanity/recruitment clients.
21
+
22
+ Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
23
+
24
+ * feat(recruitment): surface catalog activate/deactivate deep-links on onboarding rows
25
+
26
+ Restore the manual "activate account"/"deactivate" deep-links that the Sanity
27
+ system-doc teardown dropped, now sourced from the OnboardingSystemCatalog via
28
+ RequestTenant. OnboardingStepSystemView carries nullable activateUrl/deactivateUrl,
29
+ populated per system from tenant.OnboardingActivateUrl/OnboardingDeactivateUrl
30
+ (rendering the {slug} template + per-tenant override map). recruitment-web renders
31
+ the activate link on onboarding system rows and the deactivate link on offboarding
32
+ rows when present. Regenerated recruitment client.
33
+
34
+ Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
35
+
36
+ * fix(recruitment): micros cannot use the @/ alias — my-page-web compiles them
37
+
38
+ The kandidat, drift and onboarding micros are imported by my-page-web, where
39
+ @/ resolves to my-page-web's src. The eight @/utils/systemCapabilities imports
40
+ this branch added were therefore unresolvable in that build — six module-not-
41
+ found errors, and the image never got built. Every other file under micros/
42
+ already reaches app-local code by relative path; these now do too.
43
+
44
+ Also runs prettier over the candidate process schema, which the lint job
45
+ flagged.
46
+
47
+ Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
48
+ Claude-Session: https://claude.ai/code/session_01FatBj58knAM48WmDppDYyg
49
+
50
+ * chore(platform): regenerate the platform client for the merged integration model
51
+
52
+ The merge took main's IntegrationSummary, which renamed isActive to isInUse
53
+ and does not know about logoUrl. Regenerating against the merged
54
+ platform-function gives a client with both.
55
+
56
+ Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
57
+ Claude-Session: https://claude.ai/code/session_01FatBj58knAM48WmDppDYyg
58
+
59
+ * chore(platform): keep the platform-client changelog the regenerator dropped
60
+
61
+ The client generator rewrites the package directory and took CHANGELOG.md with
62
+ it. Restored from main.
63
+
64
+ Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
65
+ Claude-Session: https://claude.ai/code/session_01FatBj58knAM48WmDppDYyg
66
+
67
+ * fix(platform): follow the tenancy refactor's namespaces in the integration catalog
68
+
69
+ 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.
70
+
71
+ Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
72
+
73
+ * feat: create onboarding tasks as Jira issues and sync them back
74
+
75
+ Onboarding tasks become Jira issues instead of checkboxes only. The
76
+ intranet onboarding list stays the master for which issues get created.
77
+
78
+ - Onboarding chain step `jira-onboarding-tasks` creates one issue per
79
+ open onboarding task, in the configured epic and the active sprint,
80
+ labelled onboarding-firstname-lastname. Assignee comes from the task's
81
+ new role (recruiter / buddy / new hire) or a fixed person.
82
+ - SyncOnboardingIssuesJob (every 15 min, plus POST
83
+ /v1.0/protected/onboarding/jira-sync) creates the equipment issue once
84
+ the new hire orders equipment, creates the follow-up issue X days after
85
+ start, and ticks tasks off in the checklist when their issue is done.
86
+ A done equipment issue posts who ordered it.
87
+ - Recruitment Settings gets an "Onboarding i Jira" section (project,
88
+ epic, issue type, equipment assignee, follow-up days/role), served by a
89
+ new sanity-function endpoint.
90
+ - The equipment-ordered Slack message points to the Jira issue instead
91
+ of the Confluence checklist.
92
+
93
+ Committed with --no-verify from a worktree; lint (0 errors) and prettier
94
+ were run on the changed TS workspaces.
95
+
96
+ Refs SNO-4167
97
+
98
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
99
+
100
+ * feat: read onboarding task status live from Jira instead of copying it
101
+
102
+ Jira is the source of truth for onboarding tasks, so the intranet no
103
+ longer mirrors completion into onboardingChecklist.
104
+
105
+ - Candidates keep only the link from task to issue key; `done` is gone,
106
+ `announced` remains for the one-time "utstyret er bestilt" message.
107
+ - GET /v1.0/protected/onboarding/issues returns every onboarding
108
+ candidate's issues (or one, with candidateId) with status, assignee
109
+ and browse link from a single Jira query; statusError says why when
110
+ Jira is unreachable.
111
+ - Candidate detail, the onboarding dashboard and Min rekruttering count
112
+ a task as done when Jira says so (or it was ticked before it got an
113
+ issue). Tasks with an issue are read-only and link to Jira.
114
+ - The sync job now only creates the equipment and follow-up issues and
115
+ announces a finished equipment order.
116
+
117
+ New UI text keys are seeded on recruitment-web-admin-candidate-page in
118
+ prod. Committed with --no-verify from a worktree; recruitment-web lint
119
+ (0 errors), prettier and tsc on the changed micros were run.
120
+
121
+ Refs SNO-4167
122
+
123
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
124
+
125
+ * feat: create the equipment issue when the order is placed; sync daily
126
+
127
+ - employees-function calls recruitment-function (generated client, MI
128
+ token) right after an equipment order, and recruitment creates the
129
+ equipment Jira issue on the new hire's onboarding. A failed call is
130
+ reported and the daily run catches up.
131
+ - New POST /v1.0/protected/onboarding/equipment-order.
132
+ - SyncOnboardingIssuesJob now runs daily at 07:00: due follow-ups,
133
+ missed equipment issues, and the one-time "utstyret er bestilt"
134
+ message.
135
+ - Studio hides the manual onboarding checklist once a candidate has
136
+ Jira issues (status lives in Jira and the intranet); the Jira list
137
+ shows task title per issue.
138
+
139
+ Refs SNO-4167
140
+
141
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
142
+
143
+ * fix(recruitment): look up Jira assignees with assignable-user search
144
+
145
+ The connected Jira account (Olaf) lacks the global Browse users
146
+ permission, so /user/search returns nothing. /user/assignable/search
147
+ scoped to the project works with read:jira-user and is the right
148
+ question anyway: can this person be assigned in the project?
149
+
150
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
151
+
152
+ * fix(recruitment): bulk-create onboarding issues and harden Jira parsing
153
+
154
+ Found in a live run against the test Jira site:
155
+ - Creating 27 issues one by one took ~45 s locally, close to the 60 s
156
+ request budget, and a run cut short left issues in Jira that were
157
+ never linked, so a retry duplicated them. Task issues are now created
158
+ with one /issue/bulk call, and every issue Jira accepted is saved even
159
+ when others are rejected.
160
+ - The Jira access token was fetched from platform on every Jira call;
161
+ it is now fetched once per request.
162
+ - Unassigned issues ("assignee": null) crashed status parsing; JSON
163
+ nulls are handled.
164
+
165
+ Adds adapter tests against recorded Jira responses.
166
+
167
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
168
+
169
+ * feat(recruitment): create onboarding Jira issues on schedule, X days before start
170
+
171
+ Each onboarding task's existing "Påminn kanal X dager før oppstart"
172
+ (remindDaysBefore) now also decides when its Jira issue is created:
173
+ start date minus X days. Tasks without it are created as soon as the
174
+ candidate is onboarding. The daily job creates what has become due for
175
+ ONBOARDING candidates whose start date is at most follow-up-days back;
176
+ "Kjør automatisk onboarding" creates what is due right away. Candidates
177
+ without a start date get nothing.
178
+
179
+ Also fixes the task API, which projected the stale reminderWeeksBefore
180
+ field instead of remindDaysBefore.
181
+
182
+ Refs SNO-4167
183
+
184
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
185
+
186
+ * feat(recruitment): create all onboarding issues at once and place each in the sprint of its due date
187
+
188
+ From recruitment (Silje): create the issues when the candidate is moved
189
+ to onboarding, and put them in sprints based on the start date.
190
+
191
+ - Moving a candidate to ONBOARDING starts issue creation in the
192
+ background from the candidate page; the daily job is the safety net.
193
+ - Every issue gets a Jira due date: start date minus the task's "X dager
194
+ før oppstart", or the start date when it has none.
195
+ - Each issue goes into the sprint whose dates cover its due date (active
196
+ sprint when due already, the last planned sprint when beyond the
197
+ planned ones). Nothing is left in the backlog. Sprints are read from
198
+ issue search, so no extra Jira Software scope is needed.
199
+ - The daily job moves open issues to the right sprint when sprints are
200
+ added or re-dated.
201
+ - Candidate page shows due date and sprint on each Jira task; the
202
+ "planned" state is gone since every task exists in Jira.
203
+
204
+ Refs SNO-4167
205
+
206
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
207
+
208
+ * chore: regenerate Sanity types and clients for the integrated onboarding branch
209
+
210
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
211
+
212
+
213
+
214
+
215
+
6
216
  # 2.0.0 (2026-09-02)
7
217
 
8
218
 
package/README.md CHANGED
@@ -103,6 +103,7 @@ All URIs are relative to *https://snokam.snosky.no/api/platform*
103
103
  *PlatformClient* | [**getPlatformIntegrations**](docs/PlatformClient.md#getplatformintegrations) | **GET** /v1.0/protected/platform/integrations | List platform-shared integrations
104
104
  *PlatformClient* | [**getPlatformOAuthAccessToken**](docs/PlatformClient.md#getplatformoauthaccesstoken) | **GET** /v1.0/protected/platform/oauth/{provider}/access-token | Mint a fresh platform OAuth access token
105
105
  *PlatformClient* | [**getPlatformSecrets**](docs/PlatformClient.md#getplatformsecrets) | **GET** /v1.0/protected/platform/secrets | List shared platform secrets
106
+ *PlatformClient* | [**getProviderCatalog**](docs/PlatformClient.md#getprovidercatalog) | **GET** /v1.0/protected/catalog/providers | List provider brand catalog
106
107
  *PlatformClient* | [**getProvisioningStatus**](docs/PlatformClient.md#getprovisioningstatus) | **GET** /v1.0/protected/businesses/{id}/status | Get provisioning status
107
108
  *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
109
  *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
@@ -288,6 +289,8 @@ All URIs are relative to *https://snokam.snosky.no/api/platform*
288
289
  - [PowerOfficeProject](docs/PowerOfficeProject.md)
289
290
  - [PowerOfficeProjectsResponse](docs/PowerOfficeProjectsResponse.md)
290
291
  - [ProtectedEmployee](docs/ProtectedEmployee.md)
292
+ - [ProviderCatalogEntry](docs/ProviderCatalogEntry.md)
293
+ - [ProviderCatalogResponse](docs/ProviderCatalogResponse.md)
291
294
  - [ProvisioningEvent](docs/ProvisioningEvent.md)
292
295
  - [RecordImpersonationActivityRequest](docs/RecordImpersonationActivityRequest.md)
293
296
  - [RenameDeviceRequest](docs/RenameDeviceRequest.md)
@@ -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, 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, 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;
@@ -1059,6 +1059,20 @@ export declare class PlatformClient extends runtime.BaseAPI {
1059
1059
  * List shared platform secrets
1060
1060
  */
1061
1061
  getPlatformSecrets(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<PlatformSecretStatus>>;
1062
+ /**
1063
+ * Creates request options for getProviderCatalog without sending the request
1064
+ */
1065
+ getProviderCatalogRequestOpts(): Promise<runtime.RequestOpts>;
1066
+ /**
1067
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
1068
+ * List provider brand catalog
1069
+ */
1070
+ getProviderCatalogRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ProviderCatalogResponse>>;
1071
+ /**
1072
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
1073
+ * List provider brand catalog
1074
+ */
1075
+ getProviderCatalog(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ProviderCatalogResponse>;
1062
1076
  /**
1063
1077
  * Creates request options for getProvisioningStatus without sending the request
1064
1078
  */
@@ -2171,6 +2171,47 @@ class PlatformClient extends runtime.BaseAPI {
2171
2171
  return yield response.value();
2172
2172
  });
2173
2173
  }
2174
+ /**
2175
+ * Creates request options for getProviderCatalog without sending the request
2176
+ */
2177
+ getProviderCatalogRequestOpts() {
2178
+ return __awaiter(this, void 0, void 0, function* () {
2179
+ const queryParameters = {};
2180
+ const headerParameters = {};
2181
+ if (this.configuration && this.configuration.accessToken) {
2182
+ // oauth required
2183
+ headerParameters["Authorization"] = yield this.configuration.accessToken("Implicit", []);
2184
+ }
2185
+ let urlPath = `/v1.0/protected/catalog/providers`;
2186
+ return {
2187
+ path: urlPath,
2188
+ method: 'GET',
2189
+ headers: headerParameters,
2190
+ query: queryParameters,
2191
+ };
2192
+ });
2193
+ }
2194
+ /**
2195
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
2196
+ * List provider brand catalog
2197
+ */
2198
+ getProviderCatalogRaw(initOverrides) {
2199
+ return __awaiter(this, void 0, void 0, function* () {
2200
+ const requestOptions = yield this.getProviderCatalogRequestOpts();
2201
+ const response = yield this.request(requestOptions, initOverrides);
2202
+ return new runtime.JSONApiResponse(response);
2203
+ });
2204
+ }
2205
+ /**
2206
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
2207
+ * List provider brand catalog
2208
+ */
2209
+ getProviderCatalog(initOverrides) {
2210
+ return __awaiter(this, void 0, void 0, function* () {
2211
+ const response = yield this.getProviderCatalogRaw(initOverrides);
2212
+ return yield response.value();
2213
+ });
2214
+ }
2174
2215
  /**
2175
2216
  * Creates request options for getProvisioningStatus without sending the request
2176
2217
  */
@@ -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, 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, 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;
@@ -1059,6 +1059,20 @@ export declare class PlatformClient extends runtime.BaseAPI {
1059
1059
  * List shared platform secrets
1060
1060
  */
1061
1061
  getPlatformSecrets(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<PlatformSecretStatus>>;
1062
+ /**
1063
+ * Creates request options for getProviderCatalog without sending the request
1064
+ */
1065
+ getProviderCatalogRequestOpts(): Promise<runtime.RequestOpts>;
1066
+ /**
1067
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
1068
+ * List provider brand catalog
1069
+ */
1070
+ getProviderCatalogRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ProviderCatalogResponse>>;
1071
+ /**
1072
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
1073
+ * List provider brand catalog
1074
+ */
1075
+ getProviderCatalog(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ProviderCatalogResponse>;
1062
1076
  /**
1063
1077
  * Creates request options for getProvisioningStatus without sending the request
1064
1078
  */
@@ -2168,6 +2168,47 @@ export class PlatformClient extends runtime.BaseAPI {
2168
2168
  return yield response.value();
2169
2169
  });
2170
2170
  }
2171
+ /**
2172
+ * Creates request options for getProviderCatalog without sending the request
2173
+ */
2174
+ getProviderCatalogRequestOpts() {
2175
+ return __awaiter(this, void 0, void 0, function* () {
2176
+ const queryParameters = {};
2177
+ const headerParameters = {};
2178
+ if (this.configuration && this.configuration.accessToken) {
2179
+ // oauth required
2180
+ headerParameters["Authorization"] = yield this.configuration.accessToken("Implicit", []);
2181
+ }
2182
+ let urlPath = `/v1.0/protected/catalog/providers`;
2183
+ return {
2184
+ path: urlPath,
2185
+ method: 'GET',
2186
+ headers: headerParameters,
2187
+ query: queryParameters,
2188
+ };
2189
+ });
2190
+ }
2191
+ /**
2192
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
2193
+ * List provider brand catalog
2194
+ */
2195
+ getProviderCatalogRaw(initOverrides) {
2196
+ return __awaiter(this, void 0, void 0, function* () {
2197
+ const requestOptions = yield this.getProviderCatalogRequestOpts();
2198
+ const response = yield this.request(requestOptions, initOverrides);
2199
+ return new runtime.JSONApiResponse(response);
2200
+ });
2201
+ }
2202
+ /**
2203
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
2204
+ * List provider brand catalog
2205
+ */
2206
+ getProviderCatalog(initOverrides) {
2207
+ return __awaiter(this, void 0, void 0, function* () {
2208
+ const response = yield this.getProviderCatalogRaw(initOverrides);
2209
+ return yield response.value();
2210
+ });
2211
+ }
2171
2212
  /**
2172
2213
  * Creates request options for getProvisioningStatus without sending the request
2173
2214
  */
@@ -741,6 +741,14 @@ export interface BusinessConfig {
741
741
  * @memberof BusinessConfig
742
742
  */
743
743
  olafTeamsSettings?: OlafTeamsSettings;
744
+ /**
745
+ *
746
+ * @type {{ [key: string]: string; }}
747
+ * @memberof BusinessConfig
748
+ */
749
+ onboardingActivateUrlOverrides?: {
750
+ [key: string]: string;
751
+ } | null;
744
752
  /**
745
753
  *
746
754
  * @type {string}
@@ -2221,6 +2229,12 @@ export interface IntegrationSummary {
2221
2229
  * @memberof IntegrationSummary
2222
2230
  */
2223
2231
  key?: string | null;
2232
+ /**
2233
+ *
2234
+ * @type {string}
2235
+ * @memberof IntegrationSummary
2236
+ */
2237
+ logoUrl?: string | null;
2224
2238
  /**
2225
2239
  *
2226
2240
  * @type {Array<string>}
@@ -4264,6 +4278,56 @@ export declare const ProtectedEmployeeSanityTypeEnum: {
4264
4278
  readonly Employee: "employee";
4265
4279
  };
4266
4280
  export type ProtectedEmployeeSanityTypeEnum = typeof ProtectedEmployeeSanityTypeEnum[keyof typeof ProtectedEmployeeSanityTypeEnum];
4281
+ /**
4282
+ *
4283
+ * @export
4284
+ * @interface ProviderCatalogEntry
4285
+ */
4286
+ export interface ProviderCatalogEntry {
4287
+ /**
4288
+ *
4289
+ * @type {string}
4290
+ * @memberof ProviderCatalogEntry
4291
+ */
4292
+ capability?: string | null;
4293
+ /**
4294
+ *
4295
+ * @type {string}
4296
+ * @memberof ProviderCatalogEntry
4297
+ */
4298
+ description?: string | null;
4299
+ /**
4300
+ *
4301
+ * @type {string}
4302
+ * @memberof ProviderCatalogEntry
4303
+ */
4304
+ key?: string | null;
4305
+ /**
4306
+ *
4307
+ * @type {string}
4308
+ * @memberof ProviderCatalogEntry
4309
+ */
4310
+ logoUrl?: string | null;
4311
+ /**
4312
+ *
4313
+ * @type {string}
4314
+ * @memberof ProviderCatalogEntry
4315
+ */
4316
+ title?: string | null;
4317
+ }
4318
+ /**
4319
+ *
4320
+ * @export
4321
+ * @interface ProviderCatalogResponse
4322
+ */
4323
+ export interface ProviderCatalogResponse {
4324
+ /**
4325
+ *
4326
+ * @type {Array<ProviderCatalogEntry>}
4327
+ * @memberof ProviderCatalogResponse
4328
+ */
4329
+ providers?: Array<ProviderCatalogEntry> | null;
4330
+ }
4267
4331
  /**
4268
4332
  *
4269
4333
  * @export
@@ -5995,6 +6059,14 @@ export interface TenantInfo {
5995
6059
  * @memberof TenantInfo
5996
6060
  */
5997
6061
  keyVaultName?: string | null;
6062
+ /**
6063
+ *
6064
+ * @type {{ [key: string]: string; }}
6065
+ * @memberof TenantInfo
6066
+ */
6067
+ onboardingActivateUrlOverrides?: {
6068
+ [key: string]: string;
6069
+ } | null;
5998
6070
  /**
5999
6071
  *
6000
6072
  * @type {string}
@@ -741,6 +741,14 @@ export interface BusinessConfig {
741
741
  * @memberof BusinessConfig
742
742
  */
743
743
  olafTeamsSettings?: OlafTeamsSettings;
744
+ /**
745
+ *
746
+ * @type {{ [key: string]: string; }}
747
+ * @memberof BusinessConfig
748
+ */
749
+ onboardingActivateUrlOverrides?: {
750
+ [key: string]: string;
751
+ } | null;
744
752
  /**
745
753
  *
746
754
  * @type {string}
@@ -2221,6 +2229,12 @@ export interface IntegrationSummary {
2221
2229
  * @memberof IntegrationSummary
2222
2230
  */
2223
2231
  key?: string | null;
2232
+ /**
2233
+ *
2234
+ * @type {string}
2235
+ * @memberof IntegrationSummary
2236
+ */
2237
+ logoUrl?: string | null;
2224
2238
  /**
2225
2239
  *
2226
2240
  * @type {Array<string>}
@@ -4264,6 +4278,56 @@ export declare const ProtectedEmployeeSanityTypeEnum: {
4264
4278
  readonly Employee: "employee";
4265
4279
  };
4266
4280
  export type ProtectedEmployeeSanityTypeEnum = typeof ProtectedEmployeeSanityTypeEnum[keyof typeof ProtectedEmployeeSanityTypeEnum];
4281
+ /**
4282
+ *
4283
+ * @export
4284
+ * @interface ProviderCatalogEntry
4285
+ */
4286
+ export interface ProviderCatalogEntry {
4287
+ /**
4288
+ *
4289
+ * @type {string}
4290
+ * @memberof ProviderCatalogEntry
4291
+ */
4292
+ capability?: string | null;
4293
+ /**
4294
+ *
4295
+ * @type {string}
4296
+ * @memberof ProviderCatalogEntry
4297
+ */
4298
+ description?: string | null;
4299
+ /**
4300
+ *
4301
+ * @type {string}
4302
+ * @memberof ProviderCatalogEntry
4303
+ */
4304
+ key?: string | null;
4305
+ /**
4306
+ *
4307
+ * @type {string}
4308
+ * @memberof ProviderCatalogEntry
4309
+ */
4310
+ logoUrl?: string | null;
4311
+ /**
4312
+ *
4313
+ * @type {string}
4314
+ * @memberof ProviderCatalogEntry
4315
+ */
4316
+ title?: string | null;
4317
+ }
4318
+ /**
4319
+ *
4320
+ * @export
4321
+ * @interface ProviderCatalogResponse
4322
+ */
4323
+ export interface ProviderCatalogResponse {
4324
+ /**
4325
+ *
4326
+ * @type {Array<ProviderCatalogEntry>}
4327
+ * @memberof ProviderCatalogResponse
4328
+ */
4329
+ providers?: Array<ProviderCatalogEntry> | null;
4330
+ }
4267
4331
  /**
4268
4332
  *
4269
4333
  * @export
@@ -5995,6 +6059,14 @@ export interface TenantInfo {
5995
6059
  * @memberof TenantInfo
5996
6060
  */
5997
6061
  keyVaultName?: string | null;
6062
+ /**
6063
+ *
6064
+ * @type {{ [key: string]: string; }}
6065
+ * @memberof TenantInfo
6066
+ */
6067
+ onboardingActivateUrlOverrides?: {
6068
+ [key: string]: string;
6069
+ } | null;
5998
6070
  /**
5999
6071
  *
6000
6072
  * @type {string}
@@ -9,6 +9,7 @@ Name | Type
9
9
  `activeProviders` | { [key: string]: string; }
10
10
  `cvPartnerBaseUrl` | string
11
11
  `olafTeamsSettings` | [OlafTeamsSettings](OlafTeamsSettings.md)
12
+ `onboardingActivateUrlOverrides` | { [key: string]: string; }
12
13
  `sanityDataset` | string
13
14
  `sanityProjectId` | string
14
15
 
@@ -16,6 +16,7 @@ Name | Type
16
16
  `isConfigured` | boolean
17
17
  `isInUse` | boolean
18
18
  `key` | string
19
+ `logoUrl` | string
19
20
  `missingSecretKeys` | Array&lt;string&gt;
20
21
  `operatorOnly` | boolean
21
22
  `secrets` | [Array&lt;IntegrationSecret&gt;](IntegrationSecret.md)
@@ -51,6 +51,7 @@ All URIs are relative to *https://snokam.snosky.no/api/platform*
51
51
  | [**getPlatformIntegrations**](PlatformClient.md#getplatformintegrations) | **GET** /v1.0/protected/platform/integrations | List platform-shared integrations |
52
52
  | [**getPlatformOAuthAccessToken**](PlatformClient.md#getplatformoauthaccesstoken) | **GET** /v1.0/protected/platform/oauth/{provider}/access-token | Mint a fresh platform OAuth access token |
53
53
  | [**getPlatformSecrets**](PlatformClient.md#getplatformsecrets) | **GET** /v1.0/protected/platform/secrets | List shared platform secrets |
54
+ | [**getProviderCatalog**](PlatformClient.md#getprovidercatalog) | **GET** /v1.0/protected/catalog/providers | List provider brand catalog |
54
55
  | [**getProvisioningStatus**](PlatformClient.md#getprovisioningstatus) | **GET** /v1.0/protected/businesses/{id}/status | Get provisioning status |
55
56
  | [**getTeamsAuthState**](PlatformClient.md#getteamsauthstate) | **GET** /v1.0/protected/businesses/{id}/teams/auth-state | Read the business\&#39;s stored Teams authenticated join session |
56
57
  | [**getTeamsUserAcsToken**](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 |
@@ -3476,6 +3477,69 @@ This endpoint does not need any parameter.
3476
3477
  [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
3477
3478
 
3478
3479
 
3480
+ ## getProviderCatalog
3481
+
3482
+ > ProviderCatalogResponse getProviderCatalog()
3483
+
3484
+ List provider brand catalog
3485
+
3486
+ Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
3487
+
3488
+ ### Example
3489
+
3490
+ ```ts
3491
+ import {
3492
+ Configuration,
3493
+ PlatformClient,
3494
+ } from '@snokam/platform-client';
3495
+ import type { GetProviderCatalogRequest } from '@snokam/platform-client';
3496
+
3497
+ async function example() {
3498
+ console.log("🚀 Testing @snokam/platform-client SDK...");
3499
+ const config = new Configuration({
3500
+ // To configure OAuth2 access token for authorization: Implicit implicit
3501
+ accessToken: "YOUR ACCESS TOKEN",
3502
+ });
3503
+ const api = new PlatformClient(config);
3504
+
3505
+ try {
3506
+ const data = await api.getProviderCatalog();
3507
+ console.log(data);
3508
+ } catch (error) {
3509
+ console.error(error);
3510
+ }
3511
+ }
3512
+
3513
+ // Run the test
3514
+ example().catch(console.error);
3515
+ ```
3516
+
3517
+ ### Parameters
3518
+
3519
+ This endpoint does not need any parameter.
3520
+
3521
+ ### Return type
3522
+
3523
+ [**ProviderCatalogResponse**](ProviderCatalogResponse.md)
3524
+
3525
+ ### Authorization
3526
+
3527
+ [Implicit implicit](../README.md#Implicit-implicit)
3528
+
3529
+ ### HTTP request headers
3530
+
3531
+ - **Content-Type**: Not defined
3532
+ - **Accept**: `application/json`
3533
+
3534
+
3535
+ ### HTTP response details
3536
+ | Status code | Description | Response headers |
3537
+ |-------------|-------------|------------------|
3538
+ | **200** | Payload of ProviderCatalogResponse | - |
3539
+
3540
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
3541
+
3542
+
3479
3543
  ## getProvisioningStatus
3480
3544
 
3481
3545
  > Business getProvisioningStatus(id)
@@ -0,0 +1,18 @@
1
+
2
+ # ProviderCatalogEntry
3
+
4
+
5
+ ## Properties
6
+
7
+ Name | Type
8
+ ------------ | -------------
9
+ `capability` | string
10
+ `description` | string
11
+ `key` | string
12
+ `logoUrl` | string
13
+ `title` | string
14
+
15
+
16
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
17
+
18
+
@@ -0,0 +1,14 @@
1
+
2
+ # ProviderCatalogResponse
3
+
4
+
5
+ ## Properties
6
+
7
+ Name | Type
8
+ ------------ | -------------
9
+ `providers` | [Array&lt;ProviderCatalogEntry&gt;](ProviderCatalogEntry.md)
10
+
11
+
12
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
13
+
14
+
@@ -19,6 +19,7 @@ Name | Type
19
19
  `entraTenantId` | string
20
20
  `isPlatformTemplate` | boolean
21
21
  `keyVaultName` | string
22
+ `onboardingActivateUrlOverrides` | { [key: string]: string; }
22
23
  `plan` | string
23
24
  `sanityDataset` | string
24
25
  `sanityProjectId` | string
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snokam/platform-client",
3
- "version": "2.0.0",
3
+ "version": "3.0.0",
4
4
  "description": "OpenAPI client for @snokam/platform-client",
5
5
  "author": "OpenAPI-Generator",
6
6
  "repository": {
@@ -82,6 +82,7 @@ import type {
82
82
  PowerOfficeProject,
83
83
  PowerOfficeProjectsResponse,
84
84
  ProtectedEmployee,
85
+ ProviderCatalogResponse,
85
86
  RecordImpersonationActivityRequest,
86
87
  RenameDeviceRequest,
87
88
  ResetConfirmRequest,
@@ -3113,6 +3114,50 @@ export class PlatformClient extends runtime.BaseAPI {
3113
3114
  return await response.value();
3114
3115
  }
3115
3116
 
3117
+ /**
3118
+ * Creates request options for getProviderCatalog without sending the request
3119
+ */
3120
+ async getProviderCatalogRequestOpts(): Promise<runtime.RequestOpts> {
3121
+ const queryParameters: any = {};
3122
+
3123
+ const headerParameters: runtime.HTTPHeaders = {};
3124
+
3125
+ if (this.configuration && this.configuration.accessToken) {
3126
+ // oauth required
3127
+ headerParameters["Authorization"] = await this.configuration.accessToken("Implicit", []);
3128
+ }
3129
+
3130
+
3131
+ let urlPath = `/v1.0/protected/catalog/providers`;
3132
+
3133
+ return {
3134
+ path: urlPath,
3135
+ method: 'GET',
3136
+ headers: headerParameters,
3137
+ query: queryParameters,
3138
+ };
3139
+ }
3140
+
3141
+ /**
3142
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
3143
+ * List provider brand catalog
3144
+ */
3145
+ async getProviderCatalogRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ProviderCatalogResponse>> {
3146
+ const requestOptions = await this.getProviderCatalogRequestOpts();
3147
+ const response = await this.request(requestOptions, initOverrides);
3148
+
3149
+ return new runtime.JSONApiResponse(response);
3150
+ }
3151
+
3152
+ /**
3153
+ * Returns the global, platform-owned provider brand catalog (key, capability, title, logo, description). Single source of truth for provider branding across tenants.
3154
+ * List provider brand catalog
3155
+ */
3156
+ async getProviderCatalog(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ProviderCatalogResponse> {
3157
+ const response = await this.getProviderCatalogRaw(initOverrides);
3158
+ return await response.value();
3159
+ }
3160
+
3116
3161
  /**
3117
3162
  * Creates request options for getProvisioningStatus without sending the request
3118
3163
  */
@@ -744,6 +744,12 @@ export interface BusinessConfig {
744
744
  * @memberof BusinessConfig
745
745
  */
746
746
  olafTeamsSettings?: OlafTeamsSettings;
747
+ /**
748
+ *
749
+ * @type {{ [key: string]: string; }}
750
+ * @memberof BusinessConfig
751
+ */
752
+ onboardingActivateUrlOverrides?: { [key: string]: string; } | null;
747
753
  /**
748
754
  *
749
755
  * @type {string}
@@ -2233,6 +2239,12 @@ export interface IntegrationSummary {
2233
2239
  * @memberof IntegrationSummary
2234
2240
  */
2235
2241
  key?: string | null;
2242
+ /**
2243
+ *
2244
+ * @type {string}
2245
+ * @memberof IntegrationSummary
2246
+ */
2247
+ logoUrl?: string | null;
2236
2248
  /**
2237
2249
  *
2238
2250
  * @type {Array<string>}
@@ -4300,6 +4312,56 @@ export const ProtectedEmployeeSanityTypeEnum = {
4300
4312
  } as const;
4301
4313
  export type ProtectedEmployeeSanityTypeEnum = typeof ProtectedEmployeeSanityTypeEnum[keyof typeof ProtectedEmployeeSanityTypeEnum];
4302
4314
 
4315
+ /**
4316
+ *
4317
+ * @export
4318
+ * @interface ProviderCatalogEntry
4319
+ */
4320
+ export interface ProviderCatalogEntry {
4321
+ /**
4322
+ *
4323
+ * @type {string}
4324
+ * @memberof ProviderCatalogEntry
4325
+ */
4326
+ capability?: string | null;
4327
+ /**
4328
+ *
4329
+ * @type {string}
4330
+ * @memberof ProviderCatalogEntry
4331
+ */
4332
+ description?: string | null;
4333
+ /**
4334
+ *
4335
+ * @type {string}
4336
+ * @memberof ProviderCatalogEntry
4337
+ */
4338
+ key?: string | null;
4339
+ /**
4340
+ *
4341
+ * @type {string}
4342
+ * @memberof ProviderCatalogEntry
4343
+ */
4344
+ logoUrl?: string | null;
4345
+ /**
4346
+ *
4347
+ * @type {string}
4348
+ * @memberof ProviderCatalogEntry
4349
+ */
4350
+ title?: string | null;
4351
+ }
4352
+ /**
4353
+ *
4354
+ * @export
4355
+ * @interface ProviderCatalogResponse
4356
+ */
4357
+ export interface ProviderCatalogResponse {
4358
+ /**
4359
+ *
4360
+ * @type {Array<ProviderCatalogEntry>}
4361
+ * @memberof ProviderCatalogResponse
4362
+ */
4363
+ providers?: Array<ProviderCatalogEntry> | null;
4364
+ }
4303
4365
  /**
4304
4366
  *
4305
4367
  * @export
@@ -6099,6 +6161,12 @@ export interface TenantInfo {
6099
6161
  * @memberof TenantInfo
6100
6162
  */
6101
6163
  keyVaultName?: string | null;
6164
+ /**
6165
+ *
6166
+ * @type {{ [key: string]: string; }}
6167
+ * @memberof TenantInfo
6168
+ */
6169
+ onboardingActivateUrlOverrides?: { [key: string]: string; } | null;
6102
6170
  /**
6103
6171
  *
6104
6172
  * @type {string}