@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>
677 lines (599 loc) • 16.6 kB
text/typescript
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import * as z from "zod/v3";
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 const SegmentOutcomeDataRulesType = {
Entity: "entity",
} as const;
export type SegmentOutcomeDataRulesType = ClosedEnum<
typeof SegmentOutcomeDataRulesType
>;
export type SegmentOutcomeBase = {
type: SegmentOutcomeDataRulesType;
kind: string;
attribute: string;
};
export type SegmentOutcome2 = {
type: "split";
base: SegmentOutcomeBase;
passPromille: number;
};
export type SegmentOutcome1 = {
type: "all";
};
export type SegmentOutcome = SegmentOutcome1 | SegmentOutcome2;
export const SegmentRhsDataType = {
Regex: "regex",
} as const;
export type SegmentRhsDataType = ClosedEnum<typeof SegmentRhsDataType>;
export type SegmentRhs4 = {
type: SegmentRhsDataType;
pattern: string;
flags: string;
};
export const SegmentRhsType = {
List: "list",
ListInline: "list/inline",
} as const;
export type SegmentRhsType = ClosedEnum<typeof SegmentRhsType>;
export type SegmentItems2 = {
label?: string | undefined;
note?: string | undefined;
value: string;
};
export type SegmentItems1 = {
label?: string | undefined;
note?: string | undefined;
value: number;
};
export type SegmentRhsItems = SegmentItems1 | SegmentItems2;
export type SegmentRhs3 = {
type: SegmentRhsType;
items: Array<SegmentItems1 | SegmentItems2>;
};
export type SegmentRhs = SegmentRhs4 | SegmentRhs3 | string | number | boolean;
export type SegmentCmpOptions = {
ignoreCase?: boolean | undefined;
};
export type SegmentLhs2 = {
type: "entity";
kind: string;
attribute: string;
};
export type SegmentLhs1 = {
type: "segment";
};
export type SegmentLhs = SegmentLhs1 | SegmentLhs2;
export const SegmentCmp = {
NotContains: "!contains",
NotEndsWith: "!endsWith",
NotEq: "!eq",
NotEx: "!ex",
NotOneOf: "!oneOf",
NotRegex: "!regex",
NotStartsWith: "!startsWith",
After: "after",
Before: "before",
Contains: "contains",
ContainsAllOf: "containsAllOf",
ContainsAnyOf: "containsAnyOf",
ContainsNoneOf: "containsNoneOf",
EndsWith: "endsWith",
Eq: "eq",
Ex: "ex",
Gt: "gt",
Gte: "gte",
Lt: "lt",
Lte: "lte",
OneOf: "oneOf",
Regex: "regex",
StartsWith: "startsWith",
} as const;
export type SegmentCmp = ClosedEnum<typeof SegmentCmp>;
export type SegmentConditions = {
rhs?: SegmentRhs4 | SegmentRhs3 | string | number | boolean | undefined;
cmpOptions?: SegmentCmpOptions | undefined;
lhs: SegmentLhs1 | SegmentLhs2;
cmp: SegmentCmp;
};
export type SegmentRules = {
id: string;
outcome: SegmentOutcome1 | SegmentOutcome2;
conditions: Array<SegmentConditions>;
};
export type Include = {
note?: string | undefined;
value: string;
};
export type ExcludeT = {
note?: string | undefined;
value: string;
};
export type Data = {
rules?: Array<SegmentRules> | undefined;
include?: { [k: string]: { [k: string]: Array<Include> } } | undefined;
exclude?: { [k: string]: { [k: string]: Array<ExcludeT> } } | undefined;
};
export const SegmentTypeName = {
Segment: "segment",
} as const;
export type SegmentTypeName = ClosedEnum<typeof SegmentTypeName>;
export type SegmentCreator = {
id: string;
name: string;
};
export type SegmentMetadata = {
creator?: SegmentCreator | undefined;
};
export type Segment = {
description?: string | undefined;
createdBy?: string | undefined;
usedByFlags?: Array<string> | undefined;
usedBySegments?: Array<string> | undefined;
data: Data;
id: string;
label: string;
slug: string;
createdAt: number;
updatedAt: number;
projectId: string;
typeName: SegmentTypeName;
hint: string;
metadata?: SegmentMetadata | undefined;
};
/** @internal */
export const SegmentOutcomeDataRulesType$inboundSchema: z.ZodNativeEnum<
typeof SegmentOutcomeDataRulesType
> = z.nativeEnum(SegmentOutcomeDataRulesType);
/** @internal */
export const SegmentOutcomeBase$inboundSchema: z.ZodType<
SegmentOutcomeBase,
z.ZodTypeDef,
unknown
> = z.object({
type: SegmentOutcomeDataRulesType$inboundSchema,
kind: types.string(),
attribute: types.string(),
});
export function segmentOutcomeBaseFromJSON(
jsonString: string,
): SafeParseResult<SegmentOutcomeBase, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentOutcomeBase$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentOutcomeBase' from JSON`,
);
}
/** @internal */
export const SegmentOutcome2$inboundSchema: z.ZodType<
SegmentOutcome2,
z.ZodTypeDef,
unknown
> = z.object({
type: types.literal("split"),
base: z.lazy(() => SegmentOutcomeBase$inboundSchema),
passPromille: types.number(),
});
export function segmentOutcome2FromJSON(
jsonString: string,
): SafeParseResult<SegmentOutcome2, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentOutcome2$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentOutcome2' from JSON`,
);
}
/** @internal */
export const SegmentOutcome1$inboundSchema: z.ZodType<
SegmentOutcome1,
z.ZodTypeDef,
unknown
> = z.object({
type: types.literal("all"),
});
export function segmentOutcome1FromJSON(
jsonString: string,
): SafeParseResult<SegmentOutcome1, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentOutcome1$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentOutcome1' from JSON`,
);
}
/** @internal */
export const SegmentOutcome$inboundSchema: z.ZodType<
SegmentOutcome,
z.ZodTypeDef,
unknown
> = z.union([
z.lazy(() => SegmentOutcome1$inboundSchema),
z.lazy(() => SegmentOutcome2$inboundSchema),
]);
export function segmentOutcomeFromJSON(
jsonString: string,
): SafeParseResult<SegmentOutcome, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentOutcome$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentOutcome' from JSON`,
);
}
/** @internal */
export const SegmentRhsDataType$inboundSchema: z.ZodNativeEnum<
typeof SegmentRhsDataType
> = z.nativeEnum(SegmentRhsDataType);
/** @internal */
export const SegmentRhs4$inboundSchema: z.ZodType<
SegmentRhs4,
z.ZodTypeDef,
unknown
> = z.object({
type: SegmentRhsDataType$inboundSchema,
pattern: types.string(),
flags: types.string(),
});
export function segmentRhs4FromJSON(
jsonString: string,
): SafeParseResult<SegmentRhs4, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentRhs4$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentRhs4' from JSON`,
);
}
/** @internal */
export const SegmentRhsType$inboundSchema: z.ZodNativeEnum<
typeof SegmentRhsType
> = z.nativeEnum(SegmentRhsType);
/** @internal */
export const SegmentItems2$inboundSchema: z.ZodType<
SegmentItems2,
z.ZodTypeDef,
unknown
> = z.object({
label: types.optional(types.string()),
note: types.optional(types.string()),
value: types.string(),
});
export function segmentItems2FromJSON(
jsonString: string,
): SafeParseResult<SegmentItems2, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentItems2$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentItems2' from JSON`,
);
}
/** @internal */
export const SegmentItems1$inboundSchema: z.ZodType<
SegmentItems1,
z.ZodTypeDef,
unknown
> = z.object({
label: types.optional(types.string()),
note: types.optional(types.string()),
value: types.number(),
});
export function segmentItems1FromJSON(
jsonString: string,
): SafeParseResult<SegmentItems1, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentItems1$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentItems1' from JSON`,
);
}
/** @internal */
export const SegmentRhsItems$inboundSchema: z.ZodType<
SegmentRhsItems,
z.ZodTypeDef,
unknown
> = smartUnion([
z.lazy(() => SegmentItems1$inboundSchema),
z.lazy(() => SegmentItems2$inboundSchema),
]);
export function segmentRhsItemsFromJSON(
jsonString: string,
): SafeParseResult<SegmentRhsItems, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentRhsItems$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentRhsItems' from JSON`,
);
}
/** @internal */
export const SegmentRhs3$inboundSchema: z.ZodType<
SegmentRhs3,
z.ZodTypeDef,
unknown
> = z.object({
type: SegmentRhsType$inboundSchema,
items: z.array(
smartUnion([
z.lazy(() => SegmentItems1$inboundSchema),
z.lazy(() => SegmentItems2$inboundSchema),
]),
),
});
export function segmentRhs3FromJSON(
jsonString: string,
): SafeParseResult<SegmentRhs3, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentRhs3$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentRhs3' from JSON`,
);
}
/** @internal */
export const SegmentRhs$inboundSchema: z.ZodType<
SegmentRhs,
z.ZodTypeDef,
unknown
> = smartUnion([
z.lazy(() => SegmentRhs4$inboundSchema),
z.lazy(() => SegmentRhs3$inboundSchema),
types.string(),
types.number(),
types.boolean(),
]);
export function segmentRhsFromJSON(
jsonString: string,
): SafeParseResult<SegmentRhs, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentRhs$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentRhs' from JSON`,
);
}
/** @internal */
export const SegmentCmpOptions$inboundSchema: z.ZodType<
SegmentCmpOptions,
z.ZodTypeDef,
unknown
> = z.object({
ignoreCase: types.optional(types.boolean()),
});
export function segmentCmpOptionsFromJSON(
jsonString: string,
): SafeParseResult<SegmentCmpOptions, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentCmpOptions$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentCmpOptions' from JSON`,
);
}
/** @internal */
export const SegmentLhs2$inboundSchema: z.ZodType<
SegmentLhs2,
z.ZodTypeDef,
unknown
> = z.object({
type: types.literal("entity"),
kind: types.string(),
attribute: types.string(),
});
export function segmentLhs2FromJSON(
jsonString: string,
): SafeParseResult<SegmentLhs2, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentLhs2$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentLhs2' from JSON`,
);
}
/** @internal */
export const SegmentLhs1$inboundSchema: z.ZodType<
SegmentLhs1,
z.ZodTypeDef,
unknown
> = z.object({
type: types.literal("segment"),
});
export function segmentLhs1FromJSON(
jsonString: string,
): SafeParseResult<SegmentLhs1, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentLhs1$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentLhs1' from JSON`,
);
}
/** @internal */
export const SegmentLhs$inboundSchema: z.ZodType<
SegmentLhs,
z.ZodTypeDef,
unknown
> = z.union([
z.lazy(() => SegmentLhs1$inboundSchema),
z.lazy(() => SegmentLhs2$inboundSchema),
]);
export function segmentLhsFromJSON(
jsonString: string,
): SafeParseResult<SegmentLhs, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentLhs$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentLhs' from JSON`,
);
}
/** @internal */
export const SegmentCmp$inboundSchema: z.ZodNativeEnum<typeof SegmentCmp> = z
.nativeEnum(SegmentCmp);
/** @internal */
export const SegmentConditions$inboundSchema: z.ZodType<
SegmentConditions,
z.ZodTypeDef,
unknown
> = z.object({
rhs: types.optional(
smartUnion([
z.lazy(() => SegmentRhs4$inboundSchema),
z.lazy(() => SegmentRhs3$inboundSchema),
types.string(),
types.number(),
types.boolean(),
]),
),
cmpOptions: types.optional(z.lazy(() => SegmentCmpOptions$inboundSchema)),
lhs: z.union([
z.lazy(() => SegmentLhs1$inboundSchema),
z.lazy(() => SegmentLhs2$inboundSchema),
]),
cmp: SegmentCmp$inboundSchema,
});
export function segmentConditionsFromJSON(
jsonString: string,
): SafeParseResult<SegmentConditions, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentConditions$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentConditions' from JSON`,
);
}
/** @internal */
export const SegmentRules$inboundSchema: z.ZodType<
SegmentRules,
z.ZodTypeDef,
unknown
> = z.object({
id: types.string(),
outcome: z.union([
z.lazy(() => SegmentOutcome1$inboundSchema),
z.lazy(() => SegmentOutcome2$inboundSchema),
]),
conditions: z.array(z.lazy(() => SegmentConditions$inboundSchema)),
});
export function segmentRulesFromJSON(
jsonString: string,
): SafeParseResult<SegmentRules, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentRules$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentRules' from JSON`,
);
}
/** @internal */
export const Include$inboundSchema: z.ZodType<Include, z.ZodTypeDef, unknown> =
z.object({
note: types.optional(types.string()),
value: types.string(),
});
export function includeFromJSON(
jsonString: string,
): SafeParseResult<Include, SDKValidationError> {
return safeParse(
jsonString,
(x) => Include$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'Include' from JSON`,
);
}
/** @internal */
export const ExcludeT$inboundSchema: z.ZodType<
ExcludeT,
z.ZodTypeDef,
unknown
> = z.object({
note: types.optional(types.string()),
value: types.string(),
});
export function excludeFromJSON(
jsonString: string,
): SafeParseResult<ExcludeT, SDKValidationError> {
return safeParse(
jsonString,
(x) => ExcludeT$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'ExcludeT' from JSON`,
);
}
/** @internal */
export const Data$inboundSchema: z.ZodType<Data, z.ZodTypeDef, unknown> = z
.object({
rules: types.optional(z.array(z.lazy(() => SegmentRules$inboundSchema))),
include: types.optional(
z.record(z.record(z.array(z.lazy(() => Include$inboundSchema)))),
),
exclude: types.optional(
z.record(z.record(z.array(z.lazy(() => ExcludeT$inboundSchema)))),
),
});
export function dataFromJSON(
jsonString: string,
): SafeParseResult<Data, SDKValidationError> {
return safeParse(
jsonString,
(x) => Data$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'Data' from JSON`,
);
}
/** @internal */
export const SegmentTypeName$inboundSchema: z.ZodNativeEnum<
typeof SegmentTypeName
> = z.nativeEnum(SegmentTypeName);
/** @internal */
export const SegmentCreator$inboundSchema: z.ZodType<
SegmentCreator,
z.ZodTypeDef,
unknown
> = z.object({
id: types.string(),
name: types.string(),
});
export function segmentCreatorFromJSON(
jsonString: string,
): SafeParseResult<SegmentCreator, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentCreator$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentCreator' from JSON`,
);
}
/** @internal */
export const SegmentMetadata$inboundSchema: z.ZodType<
SegmentMetadata,
z.ZodTypeDef,
unknown
> = z.object({
creator: types.optional(z.lazy(() => SegmentCreator$inboundSchema)),
});
export function segmentMetadataFromJSON(
jsonString: string,
): SafeParseResult<SegmentMetadata, SDKValidationError> {
return safeParse(
jsonString,
(x) => SegmentMetadata$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'SegmentMetadata' from JSON`,
);
}
/** @internal */
export const Segment$inboundSchema: z.ZodType<Segment, z.ZodTypeDef, unknown> =
z.object({
description: types.optional(types.string()),
createdBy: types.optional(types.string()),
usedByFlags: types.optional(z.array(types.string())),
usedBySegments: types.optional(z.array(types.string())),
data: z.lazy(() => Data$inboundSchema),
id: types.string(),
label: types.string(),
slug: types.string(),
createdAt: types.number(),
updatedAt: types.number(),
projectId: types.string(),
typeName: SegmentTypeName$inboundSchema,
hint: types.string(),
metadata: types.optional(z.lazy(() => SegmentMetadata$inboundSchema)),
});
export function segmentFromJSON(
jsonString: string,
): SafeParseResult<Segment, SDKValidationError> {
return safeParse(
jsonString,
(x) => Segment$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'Segment' from JSON`,
);
}