UNPKG

@coinbase/cdp-sdk

Version:

SDK for interacting with the Coinbase Developer Platform Wallet API

102 lines (98 loc) 3.14 kB
/** * Generated by orval v7.21.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<ListPolicies200>>, ) => { 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 policy */ export const createPolicy = ( createPolicyBody: CreatePolicyBody, options?: SecondParameter<typeof cdpApiClient<Policy>>, ) => { 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 policy by ID */ export const getPolicyById = ( policyId: string, options?: SecondParameter<typeof cdpApiClient<Policy>>, ) => { 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 policy */ export const deletePolicy = ( policyId: string, options?: SecondParameter<typeof cdpApiClient<void>>, ) => { 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 policy */ export const updatePolicy = ( policyId: string, updatePolicyBody: UpdatePolicyBody, options?: SecondParameter<typeof cdpApiClient<Policy>>, ) => { 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>>>;