UNPKG

@docusign/iam-sdk

Version:

Developer-friendly & type-safe Typescript SDK specifically catered to leverage *@docusign/iam-sdk* API.

116 lines 5.5 kB
/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { encodeJSON, encodeSimple } from "../lib/encodings.js"; import { matchStatusCode } from "../lib/http.js"; import * as M from "../lib/matchers.js"; import { compactMap } from "../lib/primitives.js"; import { safeParse } from "../lib/schemas.js"; import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; import { pathToFunc } from "../lib/url.js"; import * as components from "../models/components/index.js"; import * as errors from "../models/errors/index.js"; import * as operations from "../models/operations/index.js"; import { APIPromise } from "../types/async.js"; /** * Creates an envelope with the given documents. Returns the ID of the created envelope * * @remarks * This operation creates an envelope associated with the workspace. Using the `envelope_id` from the response, the [eSignature API](https://developers.docusign.com/docs/esign-rest-api/) may be utilized to modify the envelope and ultimately send it. * * Envelope recipients will automatically be granted Participate access to the workspace. Envelope recipients will receive consolidated notifications from Docusign Workspaces rather than standard individual envelope notifications. * * Docusign Connect events may be utilized to receive updates to individual envelope events. * * The `envelopes` operation on the workspace may be utilized to query the status of all the envelopes in the workspace. * * When `document_ids` is empty or excluded, the envelope is created without any documents from the workspace. eSignature API calls, including adding documents and templates, may be utilized to modify the envelope before it is sent. The eSignature API must be utilized to send the envelope. * * If set, this operation will use {@link Security.accessToken} from the global security. */ export function workspacesWorkspacesCreateWorkspaceEnvelope(client, request, options) { return new APIPromise($do(client, request, options)); } async function $do(client, request, options) { const parsed = safeParse(request, (value) => operations.CreateWorkspaceEnvelopeRequest$outboundSchema.parse(value), "Input validation failed"); if (!parsed.ok) { return [parsed, { status: "invalid" }]; } const payload = parsed.value; const body = encodeJSON("body", payload.WorkspaceEnvelopeForCreate, { explode: true, }); const pathParams = { accountId: encodeSimple("accountId", payload.accountId, { explode: false, charEncoding: "percent", }), workspaceId: encodeSimple("workspaceId", payload.workspaceId, { explode: false, charEncoding: "percent", }), }; const path = pathToFunc("/v1/accounts/{accountId}/workspaces/{workspaceId}/envelopes")(pathParams); const headers = new Headers(compactMap({ "Content-Type": "application/json", Accept: "application/json", })); const secConfig = await extractSecurity(client._options.accessToken); const securityInput = secConfig == null ? {} : { accessToken: secConfig }; const requestSecurity = resolveGlobalSecurity(securityInput, [0]); const context = { options: client._options, baseURL: options?.serverURL ?? client._baseURL ?? "", operationID: "createWorkspaceEnvelope", oAuth2Scopes: null, resolvedSecurity: requestSecurity, securitySource: client._options.accessToken, retryConfig: options?.retries || client._options.retryConfig || { strategy: "backoff", backoff: { initialInterval: 500, maxInterval: 5000, exponent: 1.5, maxElapsedTime: 30000, }, retryConnectionErrors: true, } || { strategy: "none" }, retryCodes: options?.retryCodes || ["5XX", "429"], }; const requestRes = client._createRequest(context, { security: requestSecurity, method: "POST", baseURL: options?.serverURL, path: path, headers: headers, body: body, userAgent: client._options.userAgent, timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, }, options); if (!requestRes.ok) { return [requestRes, { status: "invalid" }]; } const req = requestRes.value; const doResult = await client._do(req, { context, isErrorStatusCode: (statusCode) => matchStatusCode({ status: statusCode }, ["4XX", "5XX"]), retryConfig: context.retryConfig, retryCodes: context.retryCodes, }); if (!doResult.ok) { return [doResult, { status: "request-error", request: req }]; } const response = doResult.value; const responseFields = { HttpMeta: { Response: response, Request: req }, }; const [result] = await M.match(M.json(201, components.CreateWorkspaceEnvelopeResponse$inboundSchema), M.jsonErr([400, 401], errors.ErrorDetails$inboundSchema), M.jsonErr(500, errors.ErrorDetails$inboundSchema), M.fail("4XX"), M.fail("5XX"))(response, req, { extraFields: responseFields }); if (!result.ok) { return [result, { status: "complete", request: req, response }]; } return [result, { status: "complete", request: req, response }]; } //# sourceMappingURL=workspacesWorkspacesCreateWorkspaceEnvelope.js.map