// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from '../../../resource'; import * as Core from '../../../core'; import * as RequestsAPI from './requests'; export class PriorityResource extends APIResource { /** * 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?: Core.RequestOptions): Core.APIPromise { const { account_id, ...body } = params; return ( this._client.post(`/accounts/${account_id}/cloudforce-one/requests/priority/new`, { body, ...options, }) as Core.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?: Core.RequestOptions, ): Core.APIPromise { const { account_id, ...body } = params; return ( this._client.put(`/accounts/${account_id}/cloudforce-one/requests/priority/${priorityId}`, { body, ...options, }) as Core.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?: Core.RequestOptions, ): Core.APIPromise { const { account_id } = params; return this._client.delete( `/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?: Core.RequestOptions, ): Core.APIPromise { const { account_id } = params; return ( this._client.get( `/accounts/${account_id}/cloudforce-one/requests/priority/${priorityId}`, options, ) as Core.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?: Core.RequestOptions): Core.APIPromise { const { account_id } = params; return ( this._client.get( `/accounts/${account_id}/cloudforce-one/requests/priority/quota`, options, ) as Core.APIPromise<{ result: RequestsAPI.Quota }> )._thenUnwrap((obj) => obj.result); } } export type Label = string; export type LabelParam = string; export interface Priority { /** * UUID. */ id: string; /** * Priority creation time. */ created: string; /** * List of labels. */ labels: Array