@vercel/sdk
Version:
<p align="center"> <a href="https://vercel.com"> <img src="https://assets.vercel.com/image/upload/v1588805858/repositories/vercel/logo.png" height="96"> <h3 align="center">Vercel</h3> </a> <p align="center">Develop. Preview. Ship.</p> </p>
416 lines (370 loc) • 11.2 kB
text/typescript
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import * as z from "zod/v3";
import { remap as remap$ } from "../lib/primitives.js";
import { safeParse } from "../lib/schemas.js";
import { ClosedEnum } from "../types/enums.js";
import { Result as SafeParseResult } from "../types/fp.js";
import * as types from "../types/primitives.js";
import { smartUnion } from "../types/smartUnion.js";
import { SDKValidationError } from "./sdkvalidationerror.js";
export type TypeOther = {
type: string;
additionalProperties?: { [k: string]: any } | undefined;
};
export const GetConnectorTokenSubjectConnectRequestType = {
JwtBearer: "jwt-bearer",
} as const;
export type GetConnectorTokenSubjectConnectRequestType = ClosedEnum<
typeof GetConnectorTokenSubjectConnectRequestType
>;
export type TypeJwtBearer = {
type: GetConnectorTokenSubjectConnectRequestType;
sub?: string | undefined;
iss?: string | undefined;
aud?: string | undefined;
additionalClaims?: { [k: string]: any } | undefined;
additionalProperties?: { [k: string]: any } | undefined;
};
export const GetConnectorTokenSubjectConnectType = {
User: "user",
} as const;
export type GetConnectorTokenSubjectConnectType = ClosedEnum<
typeof GetConnectorTokenSubjectConnectType
>;
export type TypeUser = {
type: GetConnectorTokenSubjectConnectType;
id?: string | undefined;
issuer?: string | undefined;
additionalProperties?: { [k: string]: any } | undefined;
};
export const GetConnectorTokenSubjectType = {
App: "app",
} as const;
export type GetConnectorTokenSubjectType = ClosedEnum<
typeof GetConnectorTokenSubjectType
>;
export type TypeApp = {
type: GetConnectorTokenSubjectType;
additionalProperties?: { [k: string]: any } | undefined;
};
export type Subject = TypeApp | TypeUser | TypeJwtBearer | TypeOther;
export type AuthorizationDetails = {
type?: string | undefined;
additionalProperties?: { [k: string]: any } | undefined;
};
export type GetConnectorTokenRequestBody = {
subject?: TypeApp | TypeUser | TypeJwtBearer | TypeOther | undefined;
installationId?: string | undefined;
audience?: Array<string> | undefined;
scopes?: Array<string> | undefined;
resources?: Array<string> | undefined;
authorizationDetails?: Array<AuthorizationDetails> | undefined;
validityBufferMs?: number | undefined;
};
export type GetConnectorTokenRequest = {
connector: string;
requestBody?: GetConnectorTokenRequestBody | undefined;
};
export type Connector = {
id: string;
uid: string;
type: string;
};
export type GetConnectorTokenResponseBody = {
token: string;
expiresAt: number;
connector: Connector;
name?: string | undefined;
installationId?: string | undefined;
tenantId?: string | undefined;
externalSubject?: string | undefined;
/**
* Driver-specific metadata (e.g., botUserId for Slack).
*/
metadata?: { [k: string]: any } | undefined;
};
/** @internal */
export type TypeOther$Outbound = {
type: string;
[additionalProperties: string]: unknown;
};
/** @internal */
export const TypeOther$outboundSchema: z.ZodType<
TypeOther$Outbound,
z.ZodTypeDef,
TypeOther
> = z.object({
type: z.string(),
additionalProperties: z.record(z.any()).optional(),
}).transform((v) => {
return {
...v.additionalProperties,
...remap$(v, {
additionalProperties: null,
}),
};
});
export function typeOtherToJSON(typeOther: TypeOther): string {
return JSON.stringify(TypeOther$outboundSchema.parse(typeOther));
}
/** @internal */
export const GetConnectorTokenSubjectConnectRequestType$outboundSchema:
z.ZodNativeEnum<typeof GetConnectorTokenSubjectConnectRequestType> = z
.nativeEnum(GetConnectorTokenSubjectConnectRequestType);
/** @internal */
export type TypeJwtBearer$Outbound = {
type: string;
sub?: string | undefined;
iss?: string | undefined;
aud?: string | undefined;
additionalClaims?: { [k: string]: any } | undefined;
[additionalProperties: string]: unknown;
};
/** @internal */
export const TypeJwtBearer$outboundSchema: z.ZodType<
TypeJwtBearer$Outbound,
z.ZodTypeDef,
TypeJwtBearer
> = z.object({
type: GetConnectorTokenSubjectConnectRequestType$outboundSchema,
sub: z.string().optional(),
iss: z.string().optional(),
aud: z.string().optional(),
additionalClaims: z.record(z.any()).optional(),
additionalProperties: z.record(z.any()).optional(),
}).transform((v) => {
return {
...v.additionalProperties,
...remap$(v, {
additionalProperties: null,
}),
};
});
export function typeJwtBearerToJSON(typeJwtBearer: TypeJwtBearer): string {
return JSON.stringify(TypeJwtBearer$outboundSchema.parse(typeJwtBearer));
}
/** @internal */
export const GetConnectorTokenSubjectConnectType$outboundSchema:
z.ZodNativeEnum<typeof GetConnectorTokenSubjectConnectType> = z.nativeEnum(
GetConnectorTokenSubjectConnectType,
);
/** @internal */
export type TypeUser$Outbound = {
type: string;
id?: string | undefined;
issuer?: string | undefined;
[additionalProperties: string]: unknown;
};
/** @internal */
export const TypeUser$outboundSchema: z.ZodType<
TypeUser$Outbound,
z.ZodTypeDef,
TypeUser
> = z.object({
type: GetConnectorTokenSubjectConnectType$outboundSchema,
id: z.string().optional(),
issuer: z.string().optional(),
additionalProperties: z.record(z.any()).optional(),
}).transform((v) => {
return {
...v.additionalProperties,
...remap$(v, {
additionalProperties: null,
}),
};
});
export function typeUserToJSON(typeUser: TypeUser): string {
return JSON.stringify(TypeUser$outboundSchema.parse(typeUser));
}
/** @internal */
export const GetConnectorTokenSubjectType$outboundSchema: z.ZodNativeEnum<
typeof GetConnectorTokenSubjectType
> = z.nativeEnum(GetConnectorTokenSubjectType);
/** @internal */
export type TypeApp$Outbound = {
type: string;
[additionalProperties: string]: unknown;
};
/** @internal */
export const TypeApp$outboundSchema: z.ZodType<
TypeApp$Outbound,
z.ZodTypeDef,
TypeApp
> = z.object({
type: GetConnectorTokenSubjectType$outboundSchema,
additionalProperties: z.record(z.any()).optional(),
}).transform((v) => {
return {
...v.additionalProperties,
...remap$(v, {
additionalProperties: null,
}),
};
});
export function typeAppToJSON(typeApp: TypeApp): string {
return JSON.stringify(TypeApp$outboundSchema.parse(typeApp));
}
/** @internal */
export type Subject$Outbound =
| TypeApp$Outbound
| TypeUser$Outbound
| TypeJwtBearer$Outbound
| TypeOther$Outbound;
/** @internal */
export const Subject$outboundSchema: z.ZodType<
Subject$Outbound,
z.ZodTypeDef,
Subject
> = smartUnion([
z.lazy(() => TypeApp$outboundSchema),
z.lazy(() => TypeUser$outboundSchema),
z.lazy(() => TypeJwtBearer$outboundSchema),
z.lazy(() => TypeOther$outboundSchema),
]);
export function subjectToJSON(subject: Subject): string {
return JSON.stringify(Subject$outboundSchema.parse(subject));
}
/** @internal */
export type AuthorizationDetails$Outbound = {
type?: string | undefined;
[additionalProperties: string]: unknown;
};
/** @internal */
export const AuthorizationDetails$outboundSchema: z.ZodType<
AuthorizationDetails$Outbound,
z.ZodTypeDef,
AuthorizationDetails
> = z.object({
type: z.string().optional(),
additionalProperties: z.record(z.any()).optional(),
}).transform((v) => {
return {
...v.additionalProperties,
...remap$(v, {
additionalProperties: null,
}),
};
});
export function authorizationDetailsToJSON(
authorizationDetails: AuthorizationDetails,
): string {
return JSON.stringify(
AuthorizationDetails$outboundSchema.parse(authorizationDetails),
);
}
/** @internal */
export type GetConnectorTokenRequestBody$Outbound = {
subject?:
| TypeApp$Outbound
| TypeUser$Outbound
| TypeJwtBearer$Outbound
| TypeOther$Outbound
| undefined;
installationId?: string | undefined;
audience?: Array<string> | undefined;
scopes?: Array<string> | undefined;
resources?: Array<string> | undefined;
authorizationDetails?: Array<AuthorizationDetails$Outbound> | undefined;
validityBufferMs?: number | undefined;
};
/** @internal */
export const GetConnectorTokenRequestBody$outboundSchema: z.ZodType<
GetConnectorTokenRequestBody$Outbound,
z.ZodTypeDef,
GetConnectorTokenRequestBody
> = z.object({
subject: smartUnion([
z.lazy(() => TypeApp$outboundSchema),
z.lazy(() => TypeUser$outboundSchema),
z.lazy(() => TypeJwtBearer$outboundSchema),
z.lazy(() => TypeOther$outboundSchema),
]).optional(),
installationId: z.string().optional(),
audience: z.array(z.string()).optional(),
scopes: z.array(z.string()).optional(),
resources: z.array(z.string()).optional(),
authorizationDetails: z.array(
z.lazy(() => AuthorizationDetails$outboundSchema),
).optional(),
validityBufferMs: z.number().optional(),
});
export function getConnectorTokenRequestBodyToJSON(
getConnectorTokenRequestBody: GetConnectorTokenRequestBody,
): string {
return JSON.stringify(
GetConnectorTokenRequestBody$outboundSchema.parse(
getConnectorTokenRequestBody,
),
);
}
/** @internal */
export type GetConnectorTokenRequest$Outbound = {
connector: string;
RequestBody?: GetConnectorTokenRequestBody$Outbound | undefined;
};
/** @internal */
export const GetConnectorTokenRequest$outboundSchema: z.ZodType<
GetConnectorTokenRequest$Outbound,
z.ZodTypeDef,
GetConnectorTokenRequest
> = z.object({
connector: z.string(),
requestBody: z.lazy(() => GetConnectorTokenRequestBody$outboundSchema)
.optional(),
}).transform((v) => {
return remap$(v, {
requestBody: "RequestBody",
});
});
export function getConnectorTokenRequestToJSON(
getConnectorTokenRequest: GetConnectorTokenRequest,
): string {
return JSON.stringify(
GetConnectorTokenRequest$outboundSchema.parse(getConnectorTokenRequest),
);
}
/** @internal */
export const Connector$inboundSchema: z.ZodType<
Connector,
z.ZodTypeDef,
unknown
> = z.object({
id: types.string(),
uid: types.string(),
type: types.string(),
});
export function connectorFromJSON(
jsonString: string,
): SafeParseResult<Connector, SDKValidationError> {
return safeParse(
jsonString,
(x) => Connector$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'Connector' from JSON`,
);
}
/** @internal */
export const GetConnectorTokenResponseBody$inboundSchema: z.ZodType<
GetConnectorTokenResponseBody,
z.ZodTypeDef,
unknown
> = z.object({
token: types.string(),
expiresAt: types.number(),
connector: z.lazy(() => Connector$inboundSchema),
name: types.optional(types.string()),
installationId: types.optional(types.string()),
tenantId: types.optional(types.string()),
externalSubject: types.optional(types.string()),
metadata: types.optional(z.record(z.any())),
});
export function getConnectorTokenResponseBodyFromJSON(
jsonString: string,
): SafeParseResult<GetConnectorTokenResponseBody, SDKValidationError> {
return safeParse(
jsonString,
(x) => GetConnectorTokenResponseBody$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'GetConnectorTokenResponseBody' from JSON`,
);
}