// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../../core/resource'; import * as RequestsAPI from './requests'; import { APIPromise } from '../../../core/api-promise'; import { RequestOptions } from '../../../internal/request-options'; import { path } from '../../../internal/utils/path'; export class BasePriorityResource extends APIResource { static override readonly _key: readonly ['cloudforceOne', 'requests', 'priority'] = Object.freeze([ 'cloudforceOne', 'requests', 'priority', ] as const); /** * Creates a new priority intelligence request in Cloudforce One. * * @example * ```ts * const priority = * await client.cloudforceOne.requests.priority.create({ * account_id: '023e105f4ecef8ad9ca31a8372d0c353', * labels: ['DoS', 'CVE'], * priority: 1, * requirement: 'DoS attacks carried out by CVEs', * tlp: 'clear', * }); * ``` */ create(params: PriorityCreateParams, options?: RequestOptions): APIPromise { const { account_id, ...body } = params; return ( this._client.post(path`/accounts/${account_id}/cloudforce-one/requests/priority/new`, { body, ...options, }) as APIPromise<{ result: Priority }> )._thenUnwrap((obj) => obj.result); } /** * Updates a priority intelligence request in Cloudforce One. * * @example * ```ts * const item = * await client.cloudforceOne.requests.priority.update( * 'f174e90a-fafe-4643-bbbc-4a0ed4fc8415', * { * account_id: '023e105f4ecef8ad9ca31a8372d0c353', * labels: ['DoS', 'CVE'], * priority: 1, * requirement: 'DoS attacks carried out by CVEs', * tlp: 'clear', * }, * ); * ``` */ update( priorityID: string, params: PriorityUpdateParams, options?: RequestOptions, ): APIPromise { const { account_id, ...body } = params; return ( this._client.put(path`/accounts/${account_id}/cloudforce-one/requests/priority/${priorityID}`, { body, ...options, }) as APIPromise<{ result: RequestsAPI.Item }> )._thenUnwrap((obj) => obj.result); } /** * Deletes a priority intelligence request from Cloudforce One. * * @example * ```ts * const priority = * await client.cloudforceOne.requests.priority.delete( * 'f174e90a-fafe-4643-bbbc-4a0ed4fc8415', * { account_id: '023e105f4ecef8ad9ca31a8372d0c353' }, * ); * ``` */ delete( priorityID: string, params: PriorityDeleteParams, options?: RequestOptions, ): APIPromise { const { account_id } = params; return this._client.delete( path`/accounts/${account_id}/cloudforce-one/requests/priority/${priorityID}`, options, ); } /** * Retrieves a specific priority intelligence request from Cloudforce One. * * @example * ```ts * const item = * await client.cloudforceOne.requests.priority.get( * 'f174e90a-fafe-4643-bbbc-4a0ed4fc8415', * { account_id: '023e105f4ecef8ad9ca31a8372d0c353' }, * ); * ``` */ get(priorityID: string, params: PriorityGetParams, options?: RequestOptions): APIPromise { const { account_id } = params; return ( this._client.get( path`/accounts/${account_id}/cloudforce-one/requests/priority/${priorityID}`, options, ) as APIPromise<{ result: RequestsAPI.Item }> )._thenUnwrap((obj) => obj.result); } /** * Retrieves quota usage for Cloudforce One priority requests. * * @example * ```ts * const quota = * await client.cloudforceOne.requests.priority.quota({ * account_id: '023e105f4ecef8ad9ca31a8372d0c353', * }); * ``` */ quota(params: PriorityQuotaParams, options?: RequestOptions): APIPromise { const { account_id } = params; return ( this._client.get( path`/accounts/${account_id}/cloudforce-one/requests/priority/quota`, options, ) as APIPromise<{ result: RequestsAPI.Quota }> )._thenUnwrap((obj) => obj.result); } } export class PriorityResource extends BasePriorityResource {} export type Label = string; export type LabelParam = string; export interface Priority { /** * UUID. */ id: string; /** * Priority creation time. */ created: string; /** * List of labels. */ labels: Array