cloudflare
Version:
The official TypeScript library for the Cloudflare API
411 lines (346 loc) • 10.5 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import * as Core from "../../../core";
import { APIResource } from "../../../resource";
import * as RequestsAPI from "./requests";
import * as MessageAPI from "./message";
import * as PriorityAPI from "./priority";
import { V4PagePaginationArray, type V4PagePaginationArrayParams } from "../../../pagination";
export class Requests extends APIResource {
message: MessageAPI.Message = new MessageAPI.Message(this._client);
priority: PriorityAPI.Priority = new PriorityAPI.Priority(this._client);
/**
* Creating a request adds the request into the Cloudforce One queue for analysis.
* In addition to the content, a short title, type, priority, and releasability
* should be provided. If one is not provided a default will be assigned.
*/
create(
accountIdentifier: string,
body: RequestCreateParams,
options?: Core.RequestOptions,
): Core.APIPromise<CloudforceOneRequestItem> {
return (
this._client.post(`/accounts/${accountIdentifier}/cloudforce-one/requests/new`, {
body,
...options,
}) as Core.APIPromise<{ result: CloudforceOneRequestItem }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Updating a request alters the request in the Cloudforce One queue. This API may
* be used to update any attributes of the request after the initial submission.
* Only fields that you choose to update need to be add to the request body
*/
update(
accountIdentifier: string,
requestIdentifier: string,
body: RequestUpdateParams,
options?: Core.RequestOptions,
): Core.APIPromise<CloudforceOneRequestItem> {
return (
this._client.put(`/accounts/${accountIdentifier}/cloudforce-one/requests/${requestIdentifier}`, {
body,
...options,
}) as Core.APIPromise<{ result: CloudforceOneRequestItem }>
)._thenUnwrap((obj) => obj.result);
}
/**
* List Requests
*/
list(
accountIdentifier: string,
body: RequestListParams,
options?: Core.RequestOptions,
): Core.PagePromise<CloudforceOneRequestListItemsV4PagePaginationArray, CloudforceOneRequestListItem> {
return this._client.getAPIList(
`/accounts/${accountIdentifier}/cloudforce-one/requests`,
CloudforceOneRequestListItemsV4PagePaginationArray,
{ body, method: 'post', ...options },
);
}
/**
* Delete a Request
*/
delete(
accountIdentifier: string,
requestIdentifier: string,
options?: Core.RequestOptions,
): Core.APIPromise<RequestDeleteResponse> {
return (
this._client.delete(
`/accounts/${accountIdentifier}/cloudforce-one/requests/${requestIdentifier}`,
options,
) as Core.APIPromise<{ result: RequestDeleteResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Get Request Priority, Status, and TLP constants
*/
constants(
accountIdentifier: string,
options?: Core.RequestOptions,
): Core.APIPromise<CloudforceOneRequestConstants> {
return (
this._client.get(
`/accounts/${accountIdentifier}/cloudforce-one/requests/constants`,
options,
) as Core.APIPromise<{ result: CloudforceOneRequestConstants }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Get a Request
*/
get(
accountIdentifier: string,
requestIdentifier: string,
options?: Core.RequestOptions,
): Core.APIPromise<CloudforceOneRequestItem> {
return (
this._client.get(
`/accounts/${accountIdentifier}/cloudforce-one/requests/${requestIdentifier}`,
options,
) as Core.APIPromise<{ result: CloudforceOneRequestItem }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Get Request Quota
*/
quota(accountIdentifier: string, options?: Core.RequestOptions): Core.APIPromise<CloudforceOneQuota> {
return (
this._client.get(
`/accounts/${accountIdentifier}/cloudforce-one/requests/quota`,
options,
) as Core.APIPromise<{ result: CloudforceOneQuota }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Get Request Types
*/
types(
accountIdentifier: string,
options?: Core.RequestOptions,
): Core.APIPromise<CloudforceOneRequestTypes> {
return (
this._client.get(
`/accounts/${accountIdentifier}/cloudforce-one/requests/types`,
options,
) as Core.APIPromise<{ result: CloudforceOneRequestTypes }>
)._thenUnwrap((obj) => obj.result);
}
}
export class CloudforceOneRequestListItemsV4PagePaginationArray extends V4PagePaginationArray<CloudforceOneRequestListItem> {}
export interface CloudforceOneQuota {
/**
* Anniversary date is when annual quota limit is refresh
*/
anniversary_date?: string;
/**
* Quater anniversary date is when quota limit is refreshed each quarter
*/
quarter_anniversary_date?: string;
/**
* Tokens for the quarter
*/
quota?: number;
/**
* Tokens remaining for the quarter
*/
remaining?: number;
}
export interface CloudforceOneRequestConstants {
priority?: Array<'routine' | 'high' | 'urgent'>;
status?: Array<'open' | 'accepted' | 'reported' | 'approved' | 'completed' | 'declined'>;
tlp?: Array<'clear' | 'amber' | 'amber-strict' | 'green' | 'red'>;
}
export interface CloudforceOneRequestItem {
/**
* UUID
*/
id: string;
/**
* Request content
*/
content: string;
created: string;
priority: string;
/**
* Requested information from request
*/
request: string;
/**
* Brief description of the request
*/
summary: string;
/**
* The CISA defined Traffic Light Protocol (TLP)
*/
tlp: 'clear' | 'amber' | 'amber-strict' | 'green' | 'red';
updated: string;
completed?: string;
/**
* Tokens for the request messages
*/
message_tokens?: number;
/**
* Readable Request ID
*/
readable_id?: string;
/**
* Request Status
*/
status?: 'open' | 'accepted' | 'reported' | 'approved' | 'completed' | 'declined';
/**
* Tokens for the request
*/
tokens?: number;
}
export interface CloudforceOneRequestListItem {
/**
* UUID
*/
id: string;
/**
* Request creation time
*/
created: string;
priority: 'routine' | 'high' | 'urgent';
/**
* Requested information from request
*/
request: string;
/**
* Brief description of the request
*/
summary: string;
/**
* The CISA defined Traffic Light Protocol (TLP)
*/
tlp: 'clear' | 'amber' | 'amber-strict' | 'green' | 'red';
/**
* Request last updated time
*/
updated: string;
/**
* Request completion time
*/
completed?: string;
/**
* Tokens for the request messages
*/
message_tokens?: number;
/**
* Readable Request ID
*/
readable_id?: string;
/**
* Request Status
*/
status?: 'open' | 'accepted' | 'reported' | 'approved' | 'completed' | 'declined';
/**
* Tokens for the request
*/
tokens?: number;
}
export type CloudforceOneRequestTypes = Array<string>;
export type RequestDeleteResponse = unknown | Array<unknown> | string;
export interface RequestCreateParams {
/**
* Request content
*/
content?: string;
/**
* Priority for analyzing the request
*/
priority?: string;
/**
* Requested information from request
*/
request_type?: string;
/**
* Brief description of the request
*/
summary?: string;
/**
* The CISA defined Traffic Light Protocol (TLP)
*/
tlp?: 'clear' | 'amber' | 'amber-strict' | 'green' | 'red';
}
export interface RequestUpdateParams {
/**
* Request content
*/
content?: string;
/**
* Priority for analyzing the request
*/
priority?: string;
/**
* Requested information from request
*/
request_type?: string;
/**
* Brief description of the request
*/
summary?: string;
/**
* The CISA defined Traffic Light Protocol (TLP)
*/
tlp?: 'clear' | 'amber' | 'amber-strict' | 'green' | 'red';
}
export interface RequestListParams extends V4PagePaginationArrayParams {
/**
* Retrieve requests completed after this time
*/
completed_after?: string;
/**
* Retrieve requests completed before this time
*/
completed_before?: string;
/**
* Retrieve requests created after this time
*/
created_after?: string;
/**
* Retrieve requests created before this time
*/
created_before?: string;
/**
* Requested information from request
*/
request_type?: string;
/**
* Field to sort results by
*/
sort_by?: string;
/**
* Sort order (asc or desc)
*/
sort_order?: 'asc' | 'desc';
/**
* Request Status
*/
status?: 'open' | 'accepted' | 'reported' | 'approved' | 'completed' | 'declined';
}
export namespace Requests {
export import CloudforceOneQuota = RequestsAPI.CloudforceOneQuota;
export import CloudforceOneRequestConstants = RequestsAPI.CloudforceOneRequestConstants;
export import CloudforceOneRequestItem = RequestsAPI.CloudforceOneRequestItem;
export import CloudforceOneRequestListItem = RequestsAPI.CloudforceOneRequestListItem;
export import CloudforceOneRequestTypes = RequestsAPI.CloudforceOneRequestTypes;
export import RequestDeleteResponse = RequestsAPI.RequestDeleteResponse;
export import CloudforceOneRequestListItemsV4PagePaginationArray = RequestsAPI.CloudforceOneRequestListItemsV4PagePaginationArray;
export import RequestCreateParams = RequestsAPI.RequestCreateParams;
export import RequestUpdateParams = RequestsAPI.RequestUpdateParams;
export import RequestListParams = RequestsAPI.RequestListParams;
export import Message = MessageAPI.Message;
export import CloudforceOneRequestMessageItem = MessageAPI.CloudforceOneRequestMessageItem;
export import MessageDeleteResponse = MessageAPI.MessageDeleteResponse;
export import MessageGetResponse = MessageAPI.MessageGetResponse;
export import MessageCreateParams = MessageAPI.MessageCreateParams;
export import MessageUpdateParams = MessageAPI.MessageUpdateParams;
export import MessageGetParams = MessageAPI.MessageGetParams;
export import Priority = PriorityAPI.Priority;
export import CloudforceOnePriorityItem = PriorityAPI.CloudforceOnePriorityItem;
export import PriorityDeleteResponse = PriorityAPI.PriorityDeleteResponse;
export import PriorityCreateParams = PriorityAPI.PriorityCreateParams;
export import PriorityUpdateParams = PriorityAPI.PriorityUpdateParams;
}