UNPKG

@coinbase/cdp-sdk

Version:

SDK for interacting with the Coinbase Developer Platform Wallet API

96 lines (92 loc) 3.09 kB
/** * Generated by orval v7.6.0 🍺 * Do not edit manually. * Coinbase Developer Platform APIs * The Coinbase Developer Platform APIs - leading the world's transition onchain. * OpenAPI spec version: 2.0.0 */ import type { CreatePolicyBody, ListPolicies200, ListPoliciesParams, Policy, UpdatePolicyBody, } from "../coinbaseDeveloperPlatformAPIs.schemas.js"; import { cdpApiClient } from "../../cdpApiClient.js"; type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1]; /** * Lists the policies belonging to the developer's CDP Project. Use the `scope` parameter to filter the policies by scope. The response is paginated, and by default, returns 20 policies per page. * @summary List policies */ export const listPolicies = ( params?: ListPoliciesParams, options?: SecondParameter<typeof cdpApiClient>, ) => { return cdpApiClient<ListPolicies200>( { url: `/v2/policy-engine/policies`, method: "GET", params }, options, ); }; /** * Create a policy that can be used to govern the behavior of accounts. * @summary Create a policy */ export const createPolicy = ( createPolicyBody: CreatePolicyBody, options?: SecondParameter<typeof cdpApiClient>, ) => { return cdpApiClient<Policy>( { url: `/v2/policy-engine/policies`, method: "POST", headers: { "Content-Type": "application/json" }, data: createPolicyBody, }, options, ); }; /** * Get a policy by its ID. * @summary Get a policy by ID */ export const getPolicyById = (policyId: string, options?: SecondParameter<typeof cdpApiClient>) => { return cdpApiClient<Policy>( { url: `/v2/policy-engine/policies/${policyId}`, method: "GET" }, options, ); }; /** * Delete a policy by its ID. This will have the effect of removing the policy from all accounts that are currently using it. * @summary Delete a policy */ export const deletePolicy = (policyId: string, options?: SecondParameter<typeof cdpApiClient>) => { return cdpApiClient<void>( { url: `/v2/policy-engine/policies/${policyId}`, method: "DELETE" }, options, ); }; /** * Updates a policy by its ID. This will have the effect of applying the updated policy to all accounts that are currently using it. * @summary Update a policy */ export const updatePolicy = ( policyId: string, updatePolicyBody: UpdatePolicyBody, options?: SecondParameter<typeof cdpApiClient>, ) => { return cdpApiClient<Policy>( { url: `/v2/policy-engine/policies/${policyId}`, method: "PUT", headers: { "Content-Type": "application/json" }, data: updatePolicyBody, }, options, ); }; export type ListPoliciesResult = NonNullable<Awaited<ReturnType<typeof listPolicies>>>; export type CreatePolicyResult = NonNullable<Awaited<ReturnType<typeof createPolicy>>>; export type GetPolicyByIdResult = NonNullable<Awaited<ReturnType<typeof getPolicyById>>>; export type DeletePolicyResult = NonNullable<Awaited<ReturnType<typeof deletePolicy>>>; export type UpdatePolicyResult = NonNullable<Awaited<ReturnType<typeof updatePolicy>>>;