UNPKG

@docusign/iam-sdk

Version:

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

108 lines 4.71 kB
/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { encodeFormQuery, 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"; /** * Gets workspaces available to the calling user * * @remarks * This operation retrieves a list of workspaces available to the calling user. It returns basic information about each workspace, including its unique identifier (ID), name, and metadata such as when it was created and by whom. * * Pagination is supported by passing `start_position` and `count` in the request. The response will include `resultSetSize`, `start_position`, and `end_position` which may be utilized for subsequent requests. * * If set, this operation will use {@link Security.accessToken} from the global security. */ export function workspacesWorkspacesGetWorkspaces(client, request, options) { return new APIPromise($do(client, request, options)); } async function $do(client, request, options) { const parsed = safeParse(request, (value) => operations.GetWorkspacesRequest$outboundSchema.parse(value), "Input validation failed"); if (!parsed.ok) { return [parsed, { status: "invalid" }]; } const payload = parsed.value; const body = null; const pathParams = { accountId: encodeSimple("accountId", payload.accountId, { explode: false, charEncoding: "percent", }), }; const path = pathToFunc("/v1/accounts/{accountId}/workspaces")(pathParams); const query = encodeFormQuery({ "count": payload.count, "start_position": payload.start_position, }); const headers = new Headers(compactMap({ 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: "getWorkspaces", 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: "GET", baseURL: options?.serverURL, path: path, headers: headers, query: query, 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(200, components.GetWorkspacesResponse$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=workspacesWorkspacesGetWorkspaces.js.map