@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>
222 lines (201 loc) • 6.13 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 { SDKValidationError } from "./sdkvalidationerror.js";
/**
* The project role that will be added to this Access Group. "null" will remove this project level role.
*/
export const CreateAccessGroupRole = {
Admin: "ADMIN",
ProjectViewer: "PROJECT_VIEWER",
ProjectDeveloper: "PROJECT_DEVELOPER",
} as const;
/**
* The project role that will be added to this Access Group. "null" will remove this project level role.
*/
export type CreateAccessGroupRole = ClosedEnum<typeof CreateAccessGroupRole>;
export type CreateAccessGroupProjects = {
/**
* The ID of the project.
*/
projectId: string;
/**
* The project role that will be added to this Access Group. "null" will remove this project level role.
*/
role: CreateAccessGroupRole | null;
};
export type CreateAccessGroupRequestBody = {
/**
* The name of the access group
*/
name: string;
projects?: Array<CreateAccessGroupProjects> | undefined;
/**
* List of members to add to the access group.
*/
membersToAdd?: Array<string> | undefined;
};
export type CreateAccessGroupRequest = {
/**
* The Team identifier to perform the request on behalf of.
*/
teamId?: string | undefined;
/**
* The Team slug to perform the request on behalf of.
*/
slug?: string | undefined;
requestBody: CreateAccessGroupRequestBody;
};
export const CreateAccessGroupEntitlements = {
V0: "v0",
} as const;
export type CreateAccessGroupEntitlements = ClosedEnum<
typeof CreateAccessGroupEntitlements
>;
export type CreateAccessGroupResponseBody = {
entitlements: Array<CreateAccessGroupEntitlements>;
membersCount: number;
projectsCount: number;
/**
* The name of this access group.
*/
name: string;
/**
* Timestamp in milliseconds when the access group was created.
*/
createdAt: string;
/**
* ID of the team that this access group belongs to.
*/
teamId: string;
/**
* Timestamp in milliseconds when the access group was last updated.
*/
updatedAt: string;
/**
* ID of the access group.
*/
accessGroupId: string;
/**
* Roles that the team has in the access group.
*/
teamRoles?: Array<string> | undefined;
/**
* Permissions that the team has in the access group.
*/
teamPermissions?: Array<string> | undefined;
};
/** @internal */
export const CreateAccessGroupRole$outboundSchema: z.ZodNativeEnum<
typeof CreateAccessGroupRole
> = z.nativeEnum(CreateAccessGroupRole);
/** @internal */
export type CreateAccessGroupProjects$Outbound = {
projectId: string;
role: string | null;
};
/** @internal */
export const CreateAccessGroupProjects$outboundSchema: z.ZodType<
CreateAccessGroupProjects$Outbound,
z.ZodTypeDef,
CreateAccessGroupProjects
> = z.object({
projectId: z.string(),
role: z.nullable(CreateAccessGroupRole$outboundSchema),
});
export function createAccessGroupProjectsToJSON(
createAccessGroupProjects: CreateAccessGroupProjects,
): string {
return JSON.stringify(
CreateAccessGroupProjects$outboundSchema.parse(createAccessGroupProjects),
);
}
/** @internal */
export type CreateAccessGroupRequestBody$Outbound = {
name: string;
projects?: Array<CreateAccessGroupProjects$Outbound> | undefined;
membersToAdd?: Array<string> | undefined;
};
/** @internal */
export const CreateAccessGroupRequestBody$outboundSchema: z.ZodType<
CreateAccessGroupRequestBody$Outbound,
z.ZodTypeDef,
CreateAccessGroupRequestBody
> = z.object({
name: z.string(),
projects: z.array(z.lazy(() => CreateAccessGroupProjects$outboundSchema))
.optional(),
membersToAdd: z.array(z.string()).optional(),
});
export function createAccessGroupRequestBodyToJSON(
createAccessGroupRequestBody: CreateAccessGroupRequestBody,
): string {
return JSON.stringify(
CreateAccessGroupRequestBody$outboundSchema.parse(
createAccessGroupRequestBody,
),
);
}
/** @internal */
export type CreateAccessGroupRequest$Outbound = {
teamId?: string | undefined;
slug?: string | undefined;
RequestBody: CreateAccessGroupRequestBody$Outbound;
};
/** @internal */
export const CreateAccessGroupRequest$outboundSchema: z.ZodType<
CreateAccessGroupRequest$Outbound,
z.ZodTypeDef,
CreateAccessGroupRequest
> = z.object({
teamId: z.string().optional(),
slug: z.string().optional(),
requestBody: z.lazy(() => CreateAccessGroupRequestBody$outboundSchema),
}).transform((v) => {
return remap$(v, {
requestBody: "RequestBody",
});
});
export function createAccessGroupRequestToJSON(
createAccessGroupRequest: CreateAccessGroupRequest,
): string {
return JSON.stringify(
CreateAccessGroupRequest$outboundSchema.parse(createAccessGroupRequest),
);
}
/** @internal */
export const CreateAccessGroupEntitlements$inboundSchema: z.ZodNativeEnum<
typeof CreateAccessGroupEntitlements
> = z.nativeEnum(CreateAccessGroupEntitlements);
/** @internal */
export const CreateAccessGroupResponseBody$inboundSchema: z.ZodType<
CreateAccessGroupResponseBody,
z.ZodTypeDef,
unknown
> = z.object({
entitlements: z.array(CreateAccessGroupEntitlements$inboundSchema),
membersCount: types.number(),
projectsCount: types.number(),
name: types.string(),
createdAt: types.string(),
teamId: types.string(),
updatedAt: types.string(),
accessGroupId: types.string(),
teamRoles: types.optional(z.array(types.string())),
teamPermissions: types.optional(z.array(types.string())),
});
export function createAccessGroupResponseBodyFromJSON(
jsonString: string,
): SafeParseResult<CreateAccessGroupResponseBody, SDKValidationError> {
return safeParse(
jsonString,
(x) => CreateAccessGroupResponseBody$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'CreateAccessGroupResponseBody' from JSON`,
);
}