@docusign/iam-sdk
Version:
Developer-friendly & type-safe Typescript SDK specifically catered to leverage *@docusign/iam-sdk* API.
115 lines (108 loc) • 3.41 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 { SDKValidationError } from "../errors/sdkvalidationerror.js";
import {
TabConnectedFieldsData,
TabConnectedFieldsData$inboundSchema,
} from "./tabconnectedfieldsdata.js";
import {
TabConnectionInstance,
TabConnectionInstance$inboundSchema,
} from "./tabconnectioninstance.js";
/**
* Indicates if the field is required to sign the document
*/
export const ExtensionPolicy = {
None: "None",
} as const;
/**
* Indicates if the field is required to sign the document
*/
export type ExtensionPolicy = ClosedEnum<typeof ExtensionPolicy>;
export type TabExtensionData = {
/**
* A unique UUID for each tab group. Tabs associated with the same model or concept will share the same extensionGroupId.
*/
extensionGroupId: string;
/**
* Determines input data key required for data verification.
*/
actionInputKey: string;
/**
* Indicates if the field is required to sign the document
*/
extensionPolicy?: ExtensionPolicy | undefined;
/**
* Publisher of the extension app.
*/
publisherName?: string | undefined;
/**
* Name of the extension app.
*/
applicationName?: string | undefined;
/**
* Name of an action in an extension app.
*/
actionName?: string | undefined;
/**
* Indicates the template that defines an extension.
*/
extensionContract?: string | undefined;
/**
* Indicates the template defining an action.
*/
actionContract?: string | undefined;
/**
* Name of the extension.
*/
extensionName?: string | undefined;
/**
* A boolean value that indicates if the field must pass verification to sign the document.
*/
requiredForExtension: boolean;
/**
* Array representing the extension app connection name and instance.
*/
connectionInstances?: Array<TabConnectionInstance> | undefined;
connectedFieldsData?: TabConnectedFieldsData | undefined;
};
/** @internal */
export const ExtensionPolicy$inboundSchema: z.ZodNativeEnum<
typeof ExtensionPolicy
> = z.nativeEnum(ExtensionPolicy);
/** @internal */
export const TabExtensionData$inboundSchema: z.ZodType<
TabExtensionData,
z.ZodTypeDef,
unknown
> = z.object({
extensionGroupId: types.string(),
actionInputKey: types.string(),
extensionPolicy: types.optional(ExtensionPolicy$inboundSchema),
publisherName: types.optional(types.string()),
applicationName: types.optional(types.string()),
actionName: types.optional(types.string()),
extensionContract: types.optional(types.string()),
actionContract: types.optional(types.string()),
extensionName: types.optional(types.string()),
requiredForExtension: types.boolean(),
connectionInstances: types.optional(
z.array(TabConnectionInstance$inboundSchema),
),
connectedFieldsData: types.optional(TabConnectedFieldsData$inboundSchema),
});
export function tabExtensionDataFromJSON(
jsonString: string,
): SafeParseResult<TabExtensionData, SDKValidationError> {
return safeParse(
jsonString,
(x) => TabExtensionData$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'TabExtensionData' from JSON`,
);
}