aiconfigtargetingenvironment.ts•4.95 kB
/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import * as z from "zod";
import { remap as remap$ } from "../../lib/primitives.js";
import { safeParse } from "../../lib/schemas.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import {
AIConfigTargetingEnvironmentFallthrough,
AIConfigTargetingEnvironmentFallthrough$inboundSchema,
AIConfigTargetingEnvironmentFallthrough$Outbound,
AIConfigTargetingEnvironmentFallthrough$outboundSchema,
} from "./aiconfigtargetingenvironmentfallthrough.js";
import {
AIConfigTargetingEnvironmentRule,
AIConfigTargetingEnvironmentRule$inboundSchema,
AIConfigTargetingEnvironmentRule$Outbound,
AIConfigTargetingEnvironmentRule$outboundSchema,
} from "./aiconfigtargetingenvironmentrule.js";
import {
AIConfigTargetingEnvironmentTarget,
AIConfigTargetingEnvironmentTarget$inboundSchema,
AIConfigTargetingEnvironmentTarget$Outbound,
AIConfigTargetingEnvironmentTarget$outboundSchema,
} from "./aiconfigtargetingenvironmenttarget.js";
export type AIConfigTargetingEnvironment = {
contextTargets: Array<AIConfigTargetingEnvironmentTarget>;
enabled: boolean;
fallthrough: AIConfigTargetingEnvironmentFallthrough;
lastModified: number;
offVariation?: number | undefined;
rules: Array<AIConfigTargetingEnvironmentRule>;
targets: Array<AIConfigTargetingEnvironmentTarget>;
trackEvents: boolean;
trackEventsFallthrough: boolean;
environmentName: string;
version: number;
};
/** @internal */
export const AIConfigTargetingEnvironment$inboundSchema: z.ZodType<
AIConfigTargetingEnvironment,
z.ZodTypeDef,
unknown
> = z.object({
contextTargets: z.array(AIConfigTargetingEnvironmentTarget$inboundSchema),
enabled: z.boolean(),
fallthrough: AIConfigTargetingEnvironmentFallthrough$inboundSchema,
lastModified: z.number().int(),
offVariation: z.number().int().optional(),
rules: z.array(AIConfigTargetingEnvironmentRule$inboundSchema),
targets: z.array(AIConfigTargetingEnvironmentTarget$inboundSchema),
trackEvents: z.boolean(),
trackEventsFallthrough: z.boolean(),
_environmentName: z.string(),
_version: z.number().int(),
}).transform((v) => {
return remap$(v, {
"_environmentName": "environmentName",
"_version": "version",
});
});
/** @internal */
export type AIConfigTargetingEnvironment$Outbound = {
contextTargets: Array<AIConfigTargetingEnvironmentTarget$Outbound>;
enabled: boolean;
fallthrough: AIConfigTargetingEnvironmentFallthrough$Outbound;
lastModified: number;
offVariation?: number | undefined;
rules: Array<AIConfigTargetingEnvironmentRule$Outbound>;
targets: Array<AIConfigTargetingEnvironmentTarget$Outbound>;
trackEvents: boolean;
trackEventsFallthrough: boolean;
_environmentName: string;
_version: number;
};
/** @internal */
export const AIConfigTargetingEnvironment$outboundSchema: z.ZodType<
AIConfigTargetingEnvironment$Outbound,
z.ZodTypeDef,
AIConfigTargetingEnvironment
> = z.object({
contextTargets: z.array(AIConfigTargetingEnvironmentTarget$outboundSchema),
enabled: z.boolean(),
fallthrough: AIConfigTargetingEnvironmentFallthrough$outboundSchema,
lastModified: z.number().int(),
offVariation: z.number().int().optional(),
rules: z.array(AIConfigTargetingEnvironmentRule$outboundSchema),
targets: z.array(AIConfigTargetingEnvironmentTarget$outboundSchema),
trackEvents: z.boolean(),
trackEventsFallthrough: z.boolean(),
environmentName: z.string(),
version: z.number().int(),
}).transform((v) => {
return remap$(v, {
environmentName: "_environmentName",
version: "_version",
});
});
/**
* @internal
* @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
*/
export namespace AIConfigTargetingEnvironment$ {
/** @deprecated use `AIConfigTargetingEnvironment$inboundSchema` instead. */
export const inboundSchema = AIConfigTargetingEnvironment$inboundSchema;
/** @deprecated use `AIConfigTargetingEnvironment$outboundSchema` instead. */
export const outboundSchema = AIConfigTargetingEnvironment$outboundSchema;
/** @deprecated use `AIConfigTargetingEnvironment$Outbound` instead. */
export type Outbound = AIConfigTargetingEnvironment$Outbound;
}
export function aiConfigTargetingEnvironmentToJSON(
aiConfigTargetingEnvironment: AIConfigTargetingEnvironment,
): string {
return JSON.stringify(
AIConfigTargetingEnvironment$outboundSchema.parse(
aiConfigTargetingEnvironment,
),
);
}
export function aiConfigTargetingEnvironmentFromJSON(
jsonString: string,
): SafeParseResult<AIConfigTargetingEnvironment, SDKValidationError> {
return safeParse(
jsonString,
(x) => AIConfigTargetingEnvironment$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'AIConfigTargetingEnvironment' from JSON`,
);
}