cloudflare
Version:
The official TypeScript library for the Cloudflare API
212 lines (170 loc) • 4.9 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 ConsumersAPI from "./consumers";
export class Consumers extends APIResource {
/**
* Creates a new consumer for a queue.
*/
create(
queueId: string,
params: ConsumerCreateParams,
options?: Core.RequestOptions,
): Core.APIPromise<ConsumerCreateResponse | null> {
const { account_id, body } = params;
return (
this._client.post(`/accounts/${account_id}/queues/${queueId}/consumers`, {
body: body,
...options,
}) as Core.APIPromise<{ result: ConsumerCreateResponse | null }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Updates the consumer for a queue, or creates one if it does not exist.
*/
update(
queueId: string,
consumerId: string,
params: ConsumerUpdateParams,
options?: Core.RequestOptions,
): Core.APIPromise<ConsumerUpdateResponse | null> {
const { account_id, body } = params;
return (
this._client.put(`/accounts/${account_id}/queues/${queueId}/consumers/${consumerId}`, {
body: body,
...options,
}) as Core.APIPromise<{ result: ConsumerUpdateResponse | null }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Deletes the consumer for a queue.
*/
delete(
queueId: string,
consumerId: string,
params: ConsumerDeleteParams,
options?: Core.RequestOptions,
): Core.APIPromise<ConsumerDeleteResponse | null> {
const { account_id, body } = params;
return (
this._client.delete(`/accounts/${account_id}/queues/${queueId}/consumers/${consumerId}`, {
body: body,
...options,
}) as Core.APIPromise<{ result: ConsumerDeleteResponse | null }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Returns the consumers for a queue.
*/
get(
queueId: string,
params: ConsumerGetParams,
options?: Core.RequestOptions,
): Core.APIPromise<ConsumerGetResponse | null> {
const { account_id } = params;
return (
this._client.get(`/accounts/${account_id}/queues/${queueId}/consumers`, options) as Core.APIPromise<{
result: ConsumerGetResponse | null;
}>
)._thenUnwrap((obj) => obj.result);
}
}
export interface Consumer {
created_on?: unknown;
environment?: unknown;
queue_name?: unknown;
service?: unknown;
settings?: Consumer.Settings;
}
export namespace Consumer {
export interface Settings {
/**
* The maximum number of messages to include in a batch
*/
batch_size?: number;
max_retries?: number;
max_wait_time_ms?: number;
}
}
export interface ConsumerCreateResponse {
created_on?: unknown;
dead_letter_queue?: string;
environment?: unknown;
queue_name?: unknown;
script_name?: unknown;
settings?: ConsumerCreateResponse.Settings;
}
export namespace ConsumerCreateResponse {
export interface Settings {
/**
* The maximum number of messages to include in a batch
*/
batch_size?: number;
max_retries?: number;
max_wait_time_ms?: number;
}
}
export interface ConsumerUpdateResponse {
created_on?: unknown;
dead_letter_queue?: string;
environment?: unknown;
queue_name?: unknown;
script_name?: unknown;
settings?: ConsumerUpdateResponse.Settings;
}
export namespace ConsumerUpdateResponse {
export interface Settings {
batch_size?: number;
max_retries?: number;
max_wait_time_ms?: number;
}
}
export type ConsumerDeleteResponse = unknown | Array<unknown> | string;
export type ConsumerGetResponse = Array<Consumer>;
export interface ConsumerCreateParams {
/**
* Path param: Identifier
*/
account_id: string;
/**
* Body param:
*/
body: unknown;
}
export interface ConsumerUpdateParams {
/**
* Path param: Identifier
*/
account_id: string;
/**
* Body param:
*/
body: unknown;
}
export interface ConsumerDeleteParams {
/**
* Path param: Identifier
*/
account_id: string;
/**
* Body param:
*/
body: unknown;
}
export interface ConsumerGetParams {
/**
* Identifier
*/
account_id: string;
}
export namespace Consumers {
export import Consumer = ConsumersAPI.Consumer;
export import ConsumerCreateResponse = ConsumersAPI.ConsumerCreateResponse;
export import ConsumerUpdateResponse = ConsumersAPI.ConsumerUpdateResponse;
export import ConsumerDeleteResponse = ConsumersAPI.ConsumerDeleteResponse;
export import ConsumerGetResponse = ConsumersAPI.ConsumerGetResponse;
export import ConsumerCreateParams = ConsumersAPI.ConsumerCreateParams;
export import ConsumerUpdateParams = ConsumersAPI.ConsumerUpdateParams;
export import ConsumerDeleteParams = ConsumersAPI.ConsumerDeleteParams;
export import ConsumerGetParams = ConsumersAPI.ConsumerGetParams;
}