@openrouter/sdk 1.2.103 → 1.2.104

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.
@@ -0,0 +1,18 @@
1
+ import { OpenRouterCore } from "../core.js";
2
+ import { RequestOptions } from "../lib/sdks.js";
3
+ import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
4
+ import * as errors from "../models/errors/index.js";
5
+ import { OpenRouterError } from "../models/errors/openroutererror.js";
6
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
7
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
8
+ import * as operations from "../models/operations/index.js";
9
+ import { APIPromise } from "../types/async.js";
10
+ import { Result } from "../types/fp.js";
11
+ /**
12
+ * Start a SCIM directory sync
13
+ *
14
+ * @remarks
15
+ * Start a SCIM directory sync. [Management key](/docs/guides/overview/auth/management-api-keys) required.
16
+ */
17
+ export declare function scimCreateSyncJob(client: OpenRouterCore, request?: operations.CreateScimSyncJobRequest | undefined, options?: RequestOptions): APIPromise<Result<operations.CreateScimSyncJobResponse, errors.UnauthorizedResponseError | errors.NotFoundResponseError | errors.InternalServerResponseError | OpenRouterError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
18
+ //# sourceMappingURL=scimCreateSyncJob.d.ts.map
@@ -0,0 +1,99 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: e5a91c340b44
4
+ */
5
+ import { encodeSimple } from "../lib/encodings.js";
6
+ import { matchStatusCode } from "../lib/http.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
11
+ import { pathToFunc } from "../lib/url.js";
12
+ import * as errors from "../models/errors/index.js";
13
+ import * as operations from "../models/operations/index.js";
14
+ import { APIPromise } from "../types/async.js";
15
+ /**
16
+ * Start a SCIM directory sync
17
+ *
18
+ * @remarks
19
+ * Start a SCIM directory sync. [Management key](/docs/guides/overview/auth/management-api-keys) required.
20
+ */
21
+ export function scimCreateSyncJob(client, request, options) {
22
+ return new APIPromise($do(client, request, options));
23
+ }
24
+ async function $do(client, request, options) {
25
+ const parsed = safeParse(request, (value) => operations.CreateScimSyncJobRequest$outboundSchema.optional().parse(value), "Input validation failed");
26
+ if (!parsed.ok) {
27
+ return [parsed, { status: "invalid" }];
28
+ }
29
+ const payload = parsed.value;
30
+ const body = null;
31
+ const path = pathToFunc("/scim/sync-jobs")();
32
+ const headers = new Headers(compactMap({
33
+ Accept: "application/json",
34
+ "HTTP-Referer": encodeSimple("HTTP-Referer", payload?.["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
35
+ "X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload?.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
36
+ "X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload?.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
37
+ }));
38
+ const secConfig = await extractSecurity(client._options.apiKey);
39
+ const securityInput = secConfig == null ? {} : { apiKey: secConfig };
40
+ const requestSecurity = resolveGlobalSecurity(securityInput);
41
+ const context = {
42
+ options: client._options,
43
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
44
+ operationID: "createScimSyncJob",
45
+ oAuth2Scopes: null,
46
+ resolvedSecurity: requestSecurity,
47
+ securitySource: client._options.apiKey,
48
+ retryConfig: options?.retries
49
+ || client._options.retryConfig
50
+ || {
51
+ strategy: "backoff",
52
+ backoff: {
53
+ initialInterval: 500,
54
+ maxInterval: 60000,
55
+ exponent: 1.5,
56
+ maxElapsedTime: 3600000,
57
+ },
58
+ retryConnectionErrors: true,
59
+ }
60
+ || { strategy: "none" },
61
+ retryCodes: options?.retryCodes || ["5XX"],
62
+ };
63
+ const requestRes = client._createRequest(context, {
64
+ security: requestSecurity,
65
+ method: "POST",
66
+ baseURL: options?.serverURL,
67
+ path: path,
68
+ headers: headers,
69
+ body: body,
70
+ userAgent: client._options.userAgent,
71
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
72
+ }, options);
73
+ if (!requestRes.ok) {
74
+ return [requestRes, { status: "invalid" }];
75
+ }
76
+ const req = requestRes.value;
77
+ const doResult = await client._do(req, {
78
+ context,
79
+ isErrorStatusCode: (statusCode) => matchStatusCode({ status: statusCode }, ["4XX", "5XX"]),
80
+ retryConfig: context.retryConfig,
81
+ retryCodes: context.retryCodes,
82
+ });
83
+ if (!doResult.ok) {
84
+ return [doResult, { status: "request-error", request: req }];
85
+ }
86
+ const response = doResult.value;
87
+ const responseFields = {
88
+ HttpMeta: { Response: response, Request: req },
89
+ };
90
+ const [result] = await M.match(M.json(202, operations.CreateScimSyncJobResponse$inboundSchema, {
91
+ hdrs: true,
92
+ key: "Result",
93
+ }), M.jsonErr(401, errors.UnauthorizedResponseError$inboundSchema), M.jsonErr(404, errors.NotFoundResponseError$inboundSchema), M.jsonErr(500, errors.InternalServerResponseError$inboundSchema), M.fail("4XX"), M.fail("5XX"))(response, req, { extraFields: responseFields });
94
+ if (!result.ok) {
95
+ return [result, { status: "complete", request: req, response }];
96
+ }
97
+ return [result, { status: "complete", request: req, response }];
98
+ }
99
+ //# sourceMappingURL=scimCreateSyncJob.js.map
@@ -0,0 +1,19 @@
1
+ import { OpenRouterCore } from "../core.js";
2
+ import { RequestOptions } from "../lib/sdks.js";
3
+ import { ConnectionError, InvalidRequestError, RequestAbortedError, RequestTimeoutError, UnexpectedClientError } from "../models/errors/httpclienterrors.js";
4
+ import * as errors from "../models/errors/index.js";
5
+ import { OpenRouterError } from "../models/errors/openroutererror.js";
6
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
7
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
8
+ import * as models from "../models/index.js";
9
+ import * as operations from "../models/operations/index.js";
10
+ import { APIPromise } from "../types/async.js";
11
+ import { Result } from "../types/fp.js";
12
+ /**
13
+ * Get SCIM directory sync status
14
+ *
15
+ * @remarks
16
+ * Get SCIM directory sync status. [Management key](/docs/guides/overview/auth/management-api-keys) required.
17
+ */
18
+ export declare function scimGetSyncJob(client: OpenRouterCore, request: operations.GetScimSyncJobRequest, options?: RequestOptions): APIPromise<Result<models.GetScimSyncJobResponse, errors.UnauthorizedResponseError | errors.NotFoundResponseError | errors.InternalServerResponseError | OpenRouterError | ResponseValidationError | ConnectionError | RequestAbortedError | RequestTimeoutError | InvalidRequestError | UnexpectedClientError | SDKValidationError>>;
19
+ //# sourceMappingURL=scimGetSyncJob.d.ts.map
@@ -0,0 +1,103 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 95876bc94c5c
4
+ */
5
+ import { encodeSimple } from "../lib/encodings.js";
6
+ import { matchStatusCode } from "../lib/http.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
11
+ import { pathToFunc } from "../lib/url.js";
12
+ import * as errors from "../models/errors/index.js";
13
+ import * as models from "../models/index.js";
14
+ import * as operations from "../models/operations/index.js";
15
+ import { APIPromise } from "../types/async.js";
16
+ /**
17
+ * Get SCIM directory sync status
18
+ *
19
+ * @remarks
20
+ * Get SCIM directory sync status. [Management key](/docs/guides/overview/auth/management-api-keys) required.
21
+ */
22
+ export function scimGetSyncJob(client, request, options) {
23
+ return new APIPromise($do(client, request, options));
24
+ }
25
+ async function $do(client, request, options) {
26
+ const parsed = safeParse(request, (value) => operations.GetScimSyncJobRequest$outboundSchema.parse(value), "Input validation failed");
27
+ if (!parsed.ok) {
28
+ return [parsed, { status: "invalid" }];
29
+ }
30
+ const payload = parsed.value;
31
+ const body = null;
32
+ const pathParams = {
33
+ id: encodeSimple("id", payload.id, {
34
+ explode: false,
35
+ charEncoding: "percent",
36
+ }),
37
+ };
38
+ const path = pathToFunc("/scim/sync-jobs/{id}")(pathParams);
39
+ const headers = new Headers(compactMap({
40
+ Accept: "application/json",
41
+ "HTTP-Referer": encodeSimple("HTTP-Referer", payload["HTTP-Referer"] ?? client._options.httpReferer, { explode: false, charEncoding: "none" }),
42
+ "X-OpenRouter-Categories": encodeSimple("X-OpenRouter-Categories", payload.appCategories ?? client._options.appCategories, { explode: false, charEncoding: "none" }),
43
+ "X-OpenRouter-Title": encodeSimple("X-OpenRouter-Title", payload.appTitle ?? client._options.appTitle, { explode: false, charEncoding: "none" }),
44
+ }));
45
+ const secConfig = await extractSecurity(client._options.apiKey);
46
+ const securityInput = secConfig == null ? {} : { apiKey: secConfig };
47
+ const requestSecurity = resolveGlobalSecurity(securityInput);
48
+ const context = {
49
+ options: client._options,
50
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
51
+ operationID: "getScimSyncJob",
52
+ oAuth2Scopes: null,
53
+ resolvedSecurity: requestSecurity,
54
+ securitySource: client._options.apiKey,
55
+ retryConfig: options?.retries
56
+ || client._options.retryConfig
57
+ || {
58
+ strategy: "backoff",
59
+ backoff: {
60
+ initialInterval: 500,
61
+ maxInterval: 60000,
62
+ exponent: 1.5,
63
+ maxElapsedTime: 3600000,
64
+ },
65
+ retryConnectionErrors: true,
66
+ }
67
+ || { strategy: "none" },
68
+ retryCodes: options?.retryCodes || ["5XX"],
69
+ };
70
+ const requestRes = client._createRequest(context, {
71
+ security: requestSecurity,
72
+ method: "GET",
73
+ baseURL: options?.serverURL,
74
+ path: path,
75
+ headers: headers,
76
+ body: body,
77
+ userAgent: client._options.userAgent,
78
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
79
+ }, options);
80
+ if (!requestRes.ok) {
81
+ return [requestRes, { status: "invalid" }];
82
+ }
83
+ const req = requestRes.value;
84
+ const doResult = await client._do(req, {
85
+ context,
86
+ isErrorStatusCode: (statusCode) => matchStatusCode({ status: statusCode }, ["4XX", "5XX"]),
87
+ retryConfig: context.retryConfig,
88
+ retryCodes: context.retryCodes,
89
+ });
90
+ if (!doResult.ok) {
91
+ return [doResult, { status: "request-error", request: req }];
92
+ }
93
+ const response = doResult.value;
94
+ const responseFields = {
95
+ HttpMeta: { Response: response, Request: req },
96
+ };
97
+ const [result] = await M.match(M.json(200, models.GetScimSyncJobResponse$inboundSchema), M.jsonErr(401, errors.UnauthorizedResponseError$inboundSchema), M.jsonErr(404, errors.NotFoundResponseError$inboundSchema), M.jsonErr(500, errors.InternalServerResponseError$inboundSchema), M.fail("4XX"), M.fail("5XX"))(response, req, { extraFields: responseFields });
98
+ if (!result.ok) {
99
+ return [result, { status: "complete", request: req, response }];
100
+ }
101
+ return [result, { status: "complete", request: req, response }];
102
+ }
103
+ //# sourceMappingURL=scimGetSyncJob.js.map
@@ -50,8 +50,8 @@ export declare function serverURLFromOptions(options: SDKOptions): URL | null;
50
50
  export declare const SDK_METADATA: {
51
51
  readonly language: "typescript";
52
52
  readonly openapiDocVersion: "1.0.0";
53
- readonly sdkVersion: "1.2.103";
53
+ readonly sdkVersion: "1.2.104";
54
54
  readonly genVersion: "2.914.0";
55
- readonly userAgent: "speakeasy-sdk/typescript 1.2.103 2.914.0 1.0.0 @openrouter/sdk";
55
+ readonly userAgent: "speakeasy-sdk/typescript 1.2.104 2.914.0 1.0.0 @openrouter/sdk";
56
56
  };
57
57
  //# sourceMappingURL=config.d.ts.map
package/esm/lib/config.js CHANGED
@@ -29,8 +29,8 @@ export function serverURLFromOptions(options) {
29
29
  export const SDK_METADATA = {
30
30
  language: "typescript",
31
31
  openapiDocVersion: "1.0.0",
32
- sdkVersion: "1.2.103",
32
+ sdkVersion: "1.2.104",
33
33
  genVersion: "2.914.0",
34
- userAgent: "speakeasy-sdk/typescript 1.2.103 2.914.0 1.0.0 @openrouter/sdk",
34
+ userAgent: "speakeasy-sdk/typescript 1.2.104 2.914.0 1.0.0 @openrouter/sdk",
35
35
  };
36
36
  //# sourceMappingURL=config.js.map
@@ -0,0 +1,11 @@
1
+ import * as z from "zod/v4";
2
+ import { Result as SafeParseResult } from "../types/fp.js";
3
+ import { SDKValidationError } from "./errors/sdkvalidationerror.js";
4
+ import { ScimSyncJob } from "./scimsyncjob.js";
5
+ export type CreateScimSyncJobResponse = {
6
+ data: ScimSyncJob;
7
+ };
8
+ /** @internal */
9
+ export declare const CreateScimSyncJobResponse$inboundSchema: z.ZodType<CreateScimSyncJobResponse, unknown>;
10
+ export declare function createScimSyncJobResponseFromJSON(jsonString: string): SafeParseResult<CreateScimSyncJobResponse, SDKValidationError>;
11
+ //# sourceMappingURL=createscimsyncjobresponse.d.ts.map
@@ -0,0 +1,15 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: cbd527ad55e4
4
+ */
5
+ import * as z from "zod/v4";
6
+ import { safeParse } from "../lib/schemas.js";
7
+ import { ScimSyncJob$inboundSchema } from "./scimsyncjob.js";
8
+ /** @internal */
9
+ export const CreateScimSyncJobResponse$inboundSchema = z.object({
10
+ data: ScimSyncJob$inboundSchema,
11
+ });
12
+ export function createScimSyncJobResponseFromJSON(jsonString) {
13
+ return safeParse(jsonString, (x) => CreateScimSyncJobResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateScimSyncJobResponse' from JSON`);
14
+ }
15
+ //# sourceMappingURL=createscimsyncjobresponse.js.map
@@ -0,0 +1,11 @@
1
+ import * as z from "zod/v4";
2
+ import { Result as SafeParseResult } from "../types/fp.js";
3
+ import { SDKValidationError } from "./errors/sdkvalidationerror.js";
4
+ import { ScimSyncJob } from "./scimsyncjob.js";
5
+ export type GetScimSyncJobResponse = {
6
+ data: ScimSyncJob;
7
+ };
8
+ /** @internal */
9
+ export declare const GetScimSyncJobResponse$inboundSchema: z.ZodType<GetScimSyncJobResponse, unknown>;
10
+ export declare function getScimSyncJobResponseFromJSON(jsonString: string): SafeParseResult<GetScimSyncJobResponse, SDKValidationError>;
11
+ //# sourceMappingURL=getscimsyncjobresponse.d.ts.map
@@ -0,0 +1,15 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 3ada334326d5
4
+ */
5
+ import * as z from "zod/v4";
6
+ import { safeParse } from "../lib/schemas.js";
7
+ import { ScimSyncJob$inboundSchema } from "./scimsyncjob.js";
8
+ /** @internal */
9
+ export const GetScimSyncJobResponse$inboundSchema = z.object({
10
+ data: ScimSyncJob$inboundSchema,
11
+ });
12
+ export function getScimSyncJobResponseFromJSON(jsonString) {
13
+ return safeParse(jsonString, (x) => GetScimSyncJobResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetScimSyncJobResponse' from JSON`);
14
+ }
15
+ //# sourceMappingURL=getscimsyncjobresponse.js.map
@@ -183,6 +183,7 @@ export * from "./createobservabilitydestinationresponse.js";
183
183
  export * from "./createpresetfrominferenceresponse.js";
184
184
  export * from "./createscimgroupmappingrequest.js";
185
185
  export * from "./createscimgroupmappingresponse.js";
186
+ export * from "./createscimsyncjobresponse.js";
186
187
  export * from "./createworkspacerequest.js";
187
188
  export * from "./createworkspaceresponse.js";
188
189
  export * from "./customtool.js";
@@ -254,6 +255,7 @@ export * from "./getobservabilitydestinationresponse.js";
254
255
  export * from "./getpresetresponse.js";
255
256
  export * from "./getpresetversionresponse.js";
256
257
  export * from "./getscimgroupmappingresponse.js";
258
+ export * from "./getscimsyncjobresponse.js";
257
259
  export * from "./getworkspacebudgetresponse.js";
258
260
  export * from "./getworkspaceresponse.js";
259
261
  export * from "./guardrail.js";
@@ -504,6 +506,7 @@ export * from "./routerparams.js";
504
506
  export * from "./routingstrategy.js";
505
507
  export * from "./scimgroup.js";
506
508
  export * from "./scimgroupmapping.js";
509
+ export * from "./scimsyncjob.js";
507
510
  export * from "./searchcontextsizeenum.js";
508
511
  export * from "./searchmodelsservertoolconfig.js";
509
512
  export * from "./searchmodelsservertoolopenrouter.js";
@@ -187,6 +187,7 @@ export * from "./createobservabilitydestinationresponse.js";
187
187
  export * from "./createpresetfrominferenceresponse.js";
188
188
  export * from "./createscimgroupmappingrequest.js";
189
189
  export * from "./createscimgroupmappingresponse.js";
190
+ export * from "./createscimsyncjobresponse.js";
190
191
  export * from "./createworkspacerequest.js";
191
192
  export * from "./createworkspaceresponse.js";
192
193
  export * from "./customtool.js";
@@ -258,6 +259,7 @@ export * from "./getobservabilitydestinationresponse.js";
258
259
  export * from "./getpresetresponse.js";
259
260
  export * from "./getpresetversionresponse.js";
260
261
  export * from "./getscimgroupmappingresponse.js";
262
+ export * from "./getscimsyncjobresponse.js";
261
263
  export * from "./getworkspacebudgetresponse.js";
262
264
  export * from "./getworkspaceresponse.js";
263
265
  export * from "./guardrail.js";
@@ -508,6 +510,7 @@ export * from "./routerparams.js";
508
510
  export * from "./routingstrategy.js";
509
511
  export * from "./scimgroup.js";
510
512
  export * from "./scimgroupmapping.js";
513
+ export * from "./scimsyncjob.js";
511
514
  export * from "./searchcontextsizeenum.js";
512
515
  export * from "./searchmodelsservertoolconfig.js";
513
516
  export * from "./searchmodelsservertoolopenrouter.js";
@@ -0,0 +1,65 @@
1
+ import * as z from "zod/v4";
2
+ import { Result as SafeParseResult } from "../../types/fp.js";
3
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
4
+ import * as models from "../index.js";
5
+ export type CreateScimSyncJobGlobals = {
6
+ /**
7
+ * The app identifier should be your app's URL and is used as the primary identifier for rankings.
8
+ *
9
+ * @remarks
10
+ * This is used to track API usage per application.
11
+ */
12
+ httpReferer?: string | undefined;
13
+ /**
14
+ * The app display name allows you to customize how your app appears in OpenRouter's dashboard.
15
+ *
16
+ * @remarks
17
+ */
18
+ appTitle?: string | undefined;
19
+ /**
20
+ * Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
21
+ *
22
+ * @remarks
23
+ */
24
+ appCategories?: string | undefined;
25
+ };
26
+ export type CreateScimSyncJobRequest = {
27
+ /**
28
+ * The app identifier should be your app's URL and is used as the primary identifier for rankings.
29
+ *
30
+ * @remarks
31
+ * This is used to track API usage per application.
32
+ */
33
+ httpReferer?: string | undefined;
34
+ /**
35
+ * The app display name allows you to customize how your app appears in OpenRouter's dashboard.
36
+ *
37
+ * @remarks
38
+ */
39
+ appTitle?: string | undefined;
40
+ /**
41
+ * Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
42
+ *
43
+ * @remarks
44
+ */
45
+ appCategories?: string | undefined;
46
+ };
47
+ export type CreateScimSyncJobResponse = {
48
+ headers: {
49
+ [k: string]: Array<string>;
50
+ };
51
+ result: models.CreateScimSyncJobResponse;
52
+ };
53
+ /** @internal */
54
+ export type CreateScimSyncJobRequest$Outbound = {
55
+ "HTTP-Referer"?: string | undefined;
56
+ appTitle?: string | undefined;
57
+ appCategories?: string | undefined;
58
+ };
59
+ /** @internal */
60
+ export declare const CreateScimSyncJobRequest$outboundSchema: z.ZodType<CreateScimSyncJobRequest$Outbound, CreateScimSyncJobRequest>;
61
+ export declare function createScimSyncJobRequestToJSON(createScimSyncJobRequest: CreateScimSyncJobRequest): string;
62
+ /** @internal */
63
+ export declare const CreateScimSyncJobResponse$inboundSchema: z.ZodType<CreateScimSyncJobResponse, unknown>;
64
+ export declare function createScimSyncJobResponseFromJSON(jsonString: string): SafeParseResult<CreateScimSyncJobResponse, SDKValidationError>;
65
+ //# sourceMappingURL=createscimsyncjob.d.ts.map
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: ebd7800a291d
4
+ */
5
+ import * as z from "zod/v4";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import * as models from "../index.js";
9
+ /** @internal */
10
+ export const CreateScimSyncJobRequest$outboundSchema = z.object({
11
+ httpReferer: z.string().optional(),
12
+ appTitle: z.string().optional(),
13
+ appCategories: z.string().optional(),
14
+ }).transform((v) => {
15
+ return remap$(v, {
16
+ httpReferer: "HTTP-Referer",
17
+ });
18
+ });
19
+ export function createScimSyncJobRequestToJSON(createScimSyncJobRequest) {
20
+ return JSON.stringify(CreateScimSyncJobRequest$outboundSchema.parse(createScimSyncJobRequest));
21
+ }
22
+ /** @internal */
23
+ export const CreateScimSyncJobResponse$inboundSchema = z.object({
24
+ Headers: z.record(z.string(), z.array(z.string())).default({}),
25
+ Result: models.CreateScimSyncJobResponse$inboundSchema,
26
+ }).transform((v) => {
27
+ return remap$(v, {
28
+ "Headers": "headers",
29
+ "Result": "result",
30
+ });
31
+ });
32
+ export function createScimSyncJobResponseFromJSON(jsonString) {
33
+ return safeParse(jsonString, (x) => CreateScimSyncJobResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateScimSyncJobResponse' from JSON`);
34
+ }
35
+ //# sourceMappingURL=createscimsyncjob.js.map
@@ -0,0 +1,55 @@
1
+ import * as z from "zod/v4";
2
+ export type GetScimSyncJobGlobals = {
3
+ /**
4
+ * The app identifier should be your app's URL and is used as the primary identifier for rankings.
5
+ *
6
+ * @remarks
7
+ * This is used to track API usage per application.
8
+ */
9
+ httpReferer?: string | undefined;
10
+ /**
11
+ * The app display name allows you to customize how your app appears in OpenRouter's dashboard.
12
+ *
13
+ * @remarks
14
+ */
15
+ appTitle?: string | undefined;
16
+ /**
17
+ * Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
18
+ *
19
+ * @remarks
20
+ */
21
+ appCategories?: string | undefined;
22
+ };
23
+ export type GetScimSyncJobRequest = {
24
+ /**
25
+ * The app identifier should be your app's URL and is used as the primary identifier for rankings.
26
+ *
27
+ * @remarks
28
+ * This is used to track API usage per application.
29
+ */
30
+ httpReferer?: string | undefined;
31
+ /**
32
+ * The app display name allows you to customize how your app appears in OpenRouter's dashboard.
33
+ *
34
+ * @remarks
35
+ */
36
+ appTitle?: string | undefined;
37
+ /**
38
+ * Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
39
+ *
40
+ * @remarks
41
+ */
42
+ appCategories?: string | undefined;
43
+ id: string;
44
+ };
45
+ /** @internal */
46
+ export type GetScimSyncJobRequest$Outbound = {
47
+ "HTTP-Referer"?: string | undefined;
48
+ appTitle?: string | undefined;
49
+ appCategories?: string | undefined;
50
+ id: string;
51
+ };
52
+ /** @internal */
53
+ export declare const GetScimSyncJobRequest$outboundSchema: z.ZodType<GetScimSyncJobRequest$Outbound, GetScimSyncJobRequest>;
54
+ export declare function getScimSyncJobRequestToJSON(getScimSyncJobRequest: GetScimSyncJobRequest): string;
55
+ //# sourceMappingURL=getscimsyncjob.d.ts.map
@@ -0,0 +1,21 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: 7ab3b0cef3ee
4
+ */
5
+ import * as z from "zod/v4";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ /** @internal */
8
+ export const GetScimSyncJobRequest$outboundSchema = z.object({
9
+ httpReferer: z.string().optional(),
10
+ appTitle: z.string().optional(),
11
+ appCategories: z.string().optional(),
12
+ id: z.string(),
13
+ }).transform((v) => {
14
+ return remap$(v, {
15
+ httpReferer: "HTTP-Referer",
16
+ });
17
+ });
18
+ export function getScimSyncJobRequestToJSON(getScimSyncJobRequest) {
19
+ return JSON.stringify(GetScimSyncJobRequest$outboundSchema.parse(getScimSyncJobRequest));
20
+ }
21
+ //# sourceMappingURL=getscimsyncjob.js.map
@@ -21,6 +21,7 @@ export * from "./createpresetsresponses.js";
21
21
  export * from "./creatererank.js";
22
22
  export * from "./createresponses.js";
23
23
  export * from "./createscimgroupmapping.js";
24
+ export * from "./createscimsyncjob.js";
24
25
  export * from "./createvideos.js";
25
26
  export * from "./createworkspace.js";
26
27
  export * from "./deletebyokkey.js";
@@ -52,6 +53,7 @@ export * from "./getpreset.js";
52
53
  export * from "./getpresetversion.js";
53
54
  export * from "./getrankingsdaily.js";
54
55
  export * from "./getscimgroupmapping.js";
56
+ export * from "./getscimsyncjob.js";
55
57
  export * from "./getsessioncost.js";
56
58
  export * from "./gettaskclassifications.js";
57
59
  export * from "./getuseractivity.js";
@@ -25,6 +25,7 @@ export * from "./createpresetsresponses.js";
25
25
  export * from "./creatererank.js";
26
26
  export * from "./createresponses.js";
27
27
  export * from "./createscimgroupmapping.js";
28
+ export * from "./createscimsyncjob.js";
28
29
  export * from "./createvideos.js";
29
30
  export * from "./createworkspace.js";
30
31
  export * from "./deletebyokkey.js";
@@ -56,6 +57,7 @@ export * from "./getpreset.js";
56
57
  export * from "./getpresetversion.js";
57
58
  export * from "./getrankingsdaily.js";
58
59
  export * from "./getscimgroupmapping.js";
60
+ export * from "./getscimsyncjob.js";
59
61
  export * from "./getsessioncost.js";
60
62
  export * from "./gettaskclassifications.js";
61
63
  export * from "./getuseractivity.js";
@@ -0,0 +1,57 @@
1
+ import * as z from "zod/v4";
2
+ import { OpenEnum } from "../types/enums.js";
3
+ import { Result as SafeParseResult } from "../types/fp.js";
4
+ import { SDKValidationError } from "./errors/sdkvalidationerror.js";
5
+ /**
6
+ * Current status of the sync job: queued, running, succeeded, or failed.
7
+ */
8
+ export declare const ScimSyncJobStatus: {
9
+ readonly Queued: "queued";
10
+ readonly Running: "running";
11
+ readonly Succeeded: "succeeded";
12
+ readonly Failed: "failed";
13
+ };
14
+ /**
15
+ * Current status of the sync job: queued, running, succeeded, or failed.
16
+ */
17
+ export type ScimSyncJobStatus = OpenEnum<typeof ScimSyncJobStatus>;
18
+ export type ScimSyncJob = {
19
+ /**
20
+ * Time when the sync job was created.
21
+ */
22
+ createdAt: string;
23
+ /**
24
+ * Number of groups deleted, when the job completed successfully.
25
+ */
26
+ deletedGroups: number | null;
27
+ /**
28
+ * Stable error message when the job failed.
29
+ */
30
+ errorMessage: string | null;
31
+ /**
32
+ * Time when synchronization finished.
33
+ */
34
+ finishedAt: string | null;
35
+ /**
36
+ * Unique identifier for the sync job.
37
+ */
38
+ id: string;
39
+ /**
40
+ * Time when synchronization started.
41
+ */
42
+ startedAt: string | null;
43
+ /**
44
+ * Current status of the sync job: queued, running, succeeded, or failed.
45
+ */
46
+ status: ScimSyncJobStatus;
47
+ /**
48
+ * Number of groups synchronized, when the job completed successfully.
49
+ */
50
+ syncedGroups: number | null;
51
+ };
52
+ /** @internal */
53
+ export declare const ScimSyncJobStatus$inboundSchema: z.ZodType<ScimSyncJobStatus, unknown>;
54
+ /** @internal */
55
+ export declare const ScimSyncJob$inboundSchema: z.ZodType<ScimSyncJob, unknown>;
56
+ export declare function scimSyncJobFromJSON(jsonString: string): SafeParseResult<ScimSyncJob, SDKValidationError>;
57
+ //# sourceMappingURL=scimsyncjob.d.ts.map
@@ -0,0 +1,44 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ * @generated-id: c04d52fe7194
4
+ */
5
+ import * as z from "zod/v4";
6
+ import { remap as remap$ } from "../lib/primitives.js";
7
+ import { safeParse } from "../lib/schemas.js";
8
+ import * as openEnums from "../types/enums.js";
9
+ /**
10
+ * Current status of the sync job: queued, running, succeeded, or failed.
11
+ */
12
+ export const ScimSyncJobStatus = {
13
+ Queued: "queued",
14
+ Running: "running",
15
+ Succeeded: "succeeded",
16
+ Failed: "failed",
17
+ };
18
+ /** @internal */
19
+ export const ScimSyncJobStatus$inboundSchema = openEnums.inboundSchema(ScimSyncJobStatus);
20
+ /** @internal */
21
+ export const ScimSyncJob$inboundSchema = z
22
+ .object({
23
+ created_at: z.string(),
24
+ deleted_groups: z.nullable(z.int()),
25
+ error_message: z.nullable(z.string()),
26
+ finished_at: z.nullable(z.string()),
27
+ id: z.string(),
28
+ started_at: z.nullable(z.string()),
29
+ status: ScimSyncJobStatus$inboundSchema,
30
+ synced_groups: z.nullable(z.int()),
31
+ }).transform((v) => {
32
+ return remap$(v, {
33
+ "created_at": "createdAt",
34
+ "deleted_groups": "deletedGroups",
35
+ "error_message": "errorMessage",
36
+ "finished_at": "finishedAt",
37
+ "started_at": "startedAt",
38
+ "synced_groups": "syncedGroups",
39
+ });
40
+ });
41
+ export function scimSyncJobFromJSON(jsonString) {
42
+ return safeParse(jsonString, (x) => ScimSyncJob$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'ScimSyncJob' from JSON`);
43
+ }
44
+ //# sourceMappingURL=scimsyncjob.js.map
package/esm/sdk/scim.d.ts CHANGED
@@ -49,5 +49,19 @@ export declare class Scim extends ClientSDK {
49
49
  listGroups(request?: operations.ListScimGroupsRequest | undefined, options?: RequestOptions): Promise<PageIterator<operations.ListScimGroupsResponse, {
50
50
  offset: number;
51
51
  }>>;
52
+ /**
53
+ * Start a SCIM directory sync
54
+ *
55
+ * @remarks
56
+ * Start a SCIM directory sync. [Management key](/docs/guides/overview/auth/management-api-keys) required.
57
+ */
58
+ createSyncJob(request?: operations.CreateScimSyncJobRequest | undefined, options?: RequestOptions): Promise<operations.CreateScimSyncJobResponse>;
59
+ /**
60
+ * Get SCIM directory sync status
61
+ *
62
+ * @remarks
63
+ * Get SCIM directory sync status. [Management key](/docs/guides/overview/auth/management-api-keys) required.
64
+ */
65
+ getSyncJob(request: operations.GetScimSyncJobRequest, options?: RequestOptions): Promise<models.GetScimSyncJobResponse>;
52
66
  }
53
67
  //# sourceMappingURL=scim.d.ts.map
package/esm/sdk/scim.js CHANGED
@@ -3,7 +3,9 @@
3
3
  * @generated-id: ecf200b1abaf
4
4
  */
5
5
  import { scimCreate } from "../funcs/scimCreate.js";
6
+ import { scimCreateSyncJob } from "../funcs/scimCreateSyncJob.js";
6
7
  import { scimDelete } from "../funcs/scimDelete.js";
8
+ import { scimGetSyncJob } from "../funcs/scimGetSyncJob.js";
7
9
  import { scimListGroups } from "../funcs/scimListGroups.js";
8
10
  import { scimListMappings } from "../funcs/scimListMappings.js";
9
11
  import { scimRead } from "../funcs/scimRead.js";
@@ -66,5 +68,23 @@ export class Scim extends ClientSDK {
66
68
  async listGroups(request, options) {
67
69
  return unwrapResultIterator(scimListGroups(this, request, options));
68
70
  }
71
+ /**
72
+ * Start a SCIM directory sync
73
+ *
74
+ * @remarks
75
+ * Start a SCIM directory sync. [Management key](/docs/guides/overview/auth/management-api-keys) required.
76
+ */
77
+ async createSyncJob(request, options) {
78
+ return unwrapAsync(scimCreateSyncJob(this, request, options));
79
+ }
80
+ /**
81
+ * Get SCIM directory sync status
82
+ *
83
+ * @remarks
84
+ * Get SCIM directory sync status. [Management key](/docs/guides/overview/auth/management-api-keys) required.
85
+ */
86
+ async getSyncJob(request, options) {
87
+ return unwrapAsync(scimGetSyncJob(this, request, options));
88
+ }
69
89
  }
70
90
  //# sourceMappingURL=scim.js.map
package/jsr.json CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  {
4
4
  "name": "@openrouter/sdk",
5
- "version": "1.2.103",
5
+ "version": "1.2.104",
6
6
  "exports": {
7
7
  ".": "./src/index.ts",
8
8
  "./models/errors": "./src/models/errors/index.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openrouter/sdk",
3
- "version": "1.2.103",
3
+ "version": "1.2.104",
4
4
  "author": "OpenRouter",
5
5
  "description": "The OpenRouter TypeScript SDK is a type-safe toolkit for building AI applications with access to 400+ language models through a unified API.",
6
6
  "keywords": [
@@ -74,13 +74,13 @@
74
74
  "build": "tsc",
75
75
  "prepublishOnly": "npm run build",
76
76
  "compile": "tsc",
77
- "prepare": "npm run build",
78
- "test:e2e": "vitest --run --project e2e",
79
- "test:transit": "exit 0",
80
- "typecheck": "tsc --noEmit",
81
77
  "postinstall": "node scripts/check-types.js || true",
82
78
  "test": "vitest --run --project unit",
79
+ "test:e2e": "vitest --run --project e2e",
80
+ "prepare": "npm run build",
81
+ "test:transit": "exit 0",
83
82
  "test:watch": "vitest --watch --project unit",
83
+ "typecheck": "tsc --noEmit",
84
84
  "typecheck:transit": "exit 0"
85
85
  },
86
86
  "peerDependencies": {},