/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. * @generated-id: 848fff2f9504 */ import * as z from "zod/v3"; import { DatasourceBulkMembershipDefinition, DatasourceBulkMembershipDefinition$Outbound, DatasourceBulkMembershipDefinition$outboundSchema, } from "./datasourcebulkmembershipdefinition.js"; /** * Describes the request body for the /bulkindexmemberships API call */ export type BulkIndexMembershipsRequest = { /** * Unique id that must be used for this instance of datasource group memberships upload */ uploadId: string; /** * true if this is the first page of the upload. Defaults to false */ isFirstPage?: boolean | undefined; /** * true if this is the last page of the upload. Defaults to false */ isLastPage?: boolean | undefined; /** * Flag to discard previous upload attempts and start from scratch. Must be specified with isFirstPage=true */ forceRestartUpload?: boolean | undefined; /** * datasource of the memberships */ datasource: string; /** * group who's memberships are specified */ group?: string | undefined; /** * batch of memberships for the group */ memberships: Array; }; /** @internal */ export type BulkIndexMembershipsRequest$Outbound = { uploadId: string; isFirstPage?: boolean | undefined; isLastPage?: boolean | undefined; forceRestartUpload?: boolean | undefined; datasource: string; group?: string | undefined; memberships: Array; }; /** @internal */ export const BulkIndexMembershipsRequest$outboundSchema: z.ZodType< BulkIndexMembershipsRequest$Outbound, z.ZodTypeDef, BulkIndexMembershipsRequest > = z.object({ uploadId: z.string(), isFirstPage: z.boolean().optional(), isLastPage: z.boolean().optional(), forceRestartUpload: z.boolean().optional(), datasource: z.string(), group: z.string().optional(), memberships: z.array(DatasourceBulkMembershipDefinition$outboundSchema), }); export function bulkIndexMembershipsRequestToJSON( bulkIndexMembershipsRequest: BulkIndexMembershipsRequest, ): string { return JSON.stringify( BulkIndexMembershipsRequest$outboundSchema.parse( bulkIndexMembershipsRequest, ), ); }