@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>
237 lines (216 loc) • 6.56 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 UpdateAccessGroupRole = {
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 UpdateAccessGroupRole = ClosedEnum<typeof UpdateAccessGroupRole>;
export type UpdateAccessGroupProjects = {
/**
* 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: UpdateAccessGroupRole | null;
};
export type UpdateAccessGroupRequestBody = {
/**
* The name of the access group
*/
name?: string | undefined;
projects?: Array<UpdateAccessGroupProjects> | undefined;
/**
* List of members to add to the access group.
*/
membersToAdd?: Array<string> | undefined;
/**
* List of members to remove from the access group.
*/
membersToRemove?: Array<string> | undefined;
};
export type UpdateAccessGroupRequest = {
idOrName: string;
/**
* 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: UpdateAccessGroupRequestBody;
};
export const UpdateAccessGroupEntitlements = {
V0: "v0",
} as const;
export type UpdateAccessGroupEntitlements = ClosedEnum<
typeof UpdateAccessGroupEntitlements
>;
export type UpdateAccessGroupResponseBody = {
entitlements: Array<UpdateAccessGroupEntitlements>;
/**
* 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;
/**
* Number of members in the access group.
*/
membersCount: number;
/**
* Number of projects in the access group.
*/
projectsCount: number;
/**
* 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 UpdateAccessGroupRole$outboundSchema: z.ZodNativeEnum<
typeof UpdateAccessGroupRole
> = z.nativeEnum(UpdateAccessGroupRole);
/** @internal */
export type UpdateAccessGroupProjects$Outbound = {
projectId: string;
role: string | null;
};
/** @internal */
export const UpdateAccessGroupProjects$outboundSchema: z.ZodType<
UpdateAccessGroupProjects$Outbound,
z.ZodTypeDef,
UpdateAccessGroupProjects
> = z.object({
projectId: z.string(),
role: z.nullable(UpdateAccessGroupRole$outboundSchema),
});
export function updateAccessGroupProjectsToJSON(
updateAccessGroupProjects: UpdateAccessGroupProjects,
): string {
return JSON.stringify(
UpdateAccessGroupProjects$outboundSchema.parse(updateAccessGroupProjects),
);
}
/** @internal */
export type UpdateAccessGroupRequestBody$Outbound = {
name?: string | undefined;
projects?: Array<UpdateAccessGroupProjects$Outbound> | undefined;
membersToAdd?: Array<string> | undefined;
membersToRemove?: Array<string> | undefined;
};
/** @internal */
export const UpdateAccessGroupRequestBody$outboundSchema: z.ZodType<
UpdateAccessGroupRequestBody$Outbound,
z.ZodTypeDef,
UpdateAccessGroupRequestBody
> = z.object({
name: z.string().optional(),
projects: z.array(z.lazy(() => UpdateAccessGroupProjects$outboundSchema))
.optional(),
membersToAdd: z.array(z.string()).optional(),
membersToRemove: z.array(z.string()).optional(),
});
export function updateAccessGroupRequestBodyToJSON(
updateAccessGroupRequestBody: UpdateAccessGroupRequestBody,
): string {
return JSON.stringify(
UpdateAccessGroupRequestBody$outboundSchema.parse(
updateAccessGroupRequestBody,
),
);
}
/** @internal */
export type UpdateAccessGroupRequest$Outbound = {
idOrName: string;
teamId?: string | undefined;
slug?: string | undefined;
RequestBody: UpdateAccessGroupRequestBody$Outbound;
};
/** @internal */
export const UpdateAccessGroupRequest$outboundSchema: z.ZodType<
UpdateAccessGroupRequest$Outbound,
z.ZodTypeDef,
UpdateAccessGroupRequest
> = z.object({
idOrName: z.string(),
teamId: z.string().optional(),
slug: z.string().optional(),
requestBody: z.lazy(() => UpdateAccessGroupRequestBody$outboundSchema),
}).transform((v) => {
return remap$(v, {
requestBody: "RequestBody",
});
});
export function updateAccessGroupRequestToJSON(
updateAccessGroupRequest: UpdateAccessGroupRequest,
): string {
return JSON.stringify(
UpdateAccessGroupRequest$outboundSchema.parse(updateAccessGroupRequest),
);
}
/** @internal */
export const UpdateAccessGroupEntitlements$inboundSchema: z.ZodNativeEnum<
typeof UpdateAccessGroupEntitlements
> = z.nativeEnum(UpdateAccessGroupEntitlements);
/** @internal */
export const UpdateAccessGroupResponseBody$inboundSchema: z.ZodType<
UpdateAccessGroupResponseBody,
z.ZodTypeDef,
unknown
> = z.object({
entitlements: z.array(UpdateAccessGroupEntitlements$inboundSchema),
name: types.string(),
createdAt: types.string(),
teamId: types.string(),
updatedAt: types.string(),
accessGroupId: types.string(),
membersCount: types.number(),
projectsCount: types.number(),
teamRoles: types.optional(z.array(types.string())),
teamPermissions: types.optional(z.array(types.string())),
});
export function updateAccessGroupResponseBodyFromJSON(
jsonString: string,
): SafeParseResult<UpdateAccessGroupResponseBody, SDKValidationError> {
return safeParse(
jsonString,
(x) => UpdateAccessGroupResponseBody$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'UpdateAccessGroupResponseBody' from JSON`,
);
}