cloudflare
Version:
The official TypeScript library for the Cloudflare API
99 lines (86 loc) • 2.74 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 QueuesAPI from "./queues";
export class Queues extends APIResource {
/**
* Define the rules for a given queue which will determine event notification
* production.
*/
update(
bucketName: string,
queueId: string,
params: QueueUpdateParams,
options?: Core.RequestOptions,
): Core.APIPromise<QueueUpdateResponse> {
const { account_id, ...body } = params;
return (
this._client.put(
`/accounts/${account_id}/event_notifications/r2/${bucketName}/configuration/queues/${queueId}`,
{ body, ...options },
) as Core.APIPromise<{ result: QueueUpdateResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Turn off all event notifications configured for delivery to a given queue. No
* further notifications will be produced for the queue once complete.
*/
delete(
bucketName: string,
queueId: string,
params: QueueDeleteParams,
options?: Core.RequestOptions,
): Core.APIPromise<QueueDeleteResponse> {
const { account_id } = params;
return (
this._client.delete(
`/accounts/${account_id}/event_notifications/r2/${bucketName}/configuration/queues/${queueId}`,
options,
) as Core.APIPromise<{ result: QueueDeleteResponse }>
)._thenUnwrap((obj) => obj.result);
}
}
export interface QueueUpdateResponse {
event_notification_detail_id?: string;
}
export type QueueDeleteResponse = unknown | Array<unknown> | string;
export interface QueueUpdateParams {
/**
* Path param: Identifier
*/
account_id: string;
/**
* Body param: Array of rules to drive notifications
*/
rules?: Array<QueueUpdateParams.Rule>;
}
export namespace QueueUpdateParams {
export interface Rule {
/**
* Array of R2 object actions that will trigger notifications
*/
actions: Array<
'PutObject' | 'CopyObject' | 'DeleteObject' | 'CompleteMultipartUpload' | 'AbortMultipartUpload'
>;
/**
* Notifications will be sent only for objects with this prefix
*/
prefix?: string;
/**
* Notifications will be sent only for objects with this suffix
*/
suffix?: string;
}
}
export interface QueueDeleteParams {
/**
* Identifier
*/
account_id: string;
}
export namespace Queues {
export import QueueUpdateResponse = QueuesAPI.QueueUpdateResponse;
export import QueueDeleteResponse = QueuesAPI.QueueDeleteResponse;
export import QueueUpdateParams = QueuesAPI.QueueUpdateParams;
export import QueueDeleteParams = QueuesAPI.QueueDeleteParams;
}