cloudflare
Version:
The official TypeScript library for the Cloudflare API
443 lines (370 loc) • 9.88 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import { APIResource } from '../../resource';
import * as Core from '../../core';
import * as Shared from '../shared';
import { SinglePage } from '../../pagination';
export class Consumers extends APIResource {
/**
* Creates a new consumer for a Queue
*/
create(
queueId: string,
params: ConsumerCreateParams,
options?: Core.RequestOptions,
): Core.APIPromise<Consumer> {
const { account_id, ...body } = params;
return (
this._client.post(`/accounts/${account_id}/queues/${queueId}/consumers`, {
body,
...options,
}) as Core.APIPromise<{ result: Consumer }>
)._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<Consumer> {
const { account_id, ...body } = params;
return (
this._client.put(`/accounts/${account_id}/queues/${queueId}/consumers/${consumerId}`, {
body,
...options,
}) as Core.APIPromise<{ result: Consumer }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Deletes the consumer for a queue.
*/
delete(
queueId: string,
consumerId: string,
params: ConsumerDeleteParams,
options?: Core.RequestOptions,
): Core.APIPromise<ConsumerDeleteResponse> {
const { account_id } = params;
return this._client.delete(`/accounts/${account_id}/queues/${queueId}/consumers/${consumerId}`, options);
}
/**
* Returns the consumers for a Queue
*/
get(
queueId: string,
params: ConsumerGetParams,
options?: Core.RequestOptions,
): Core.PagePromise<ConsumersSinglePage, Consumer> {
const { account_id } = params;
return this._client.getAPIList(
`/accounts/${account_id}/queues/${queueId}/consumers`,
ConsumersSinglePage,
options,
);
}
}
export class ConsumersSinglePage extends SinglePage<Consumer> {}
export type Consumer = Consumer.MqWorkerConsumer | Consumer.MqHTTPConsumer;
export namespace Consumer {
export interface MqWorkerConsumer {
/**
* A Resource identifier.
*/
consumer_id?: string;
created_on?: string;
/**
* A Resource identifier.
*/
queue_id?: string;
/**
* Name of a Worker
*/
script?: string;
settings?: MqWorkerConsumer.Settings;
type?: 'worker';
}
export namespace MqWorkerConsumer {
export interface Settings {
/**
* The maximum number of messages to include in a batch.
*/
batch_size?: number;
/**
* Maximum number of concurrent consumers that may consume from this Queue. Set to
* `null` to automatically opt in to the platform's maximum (recommended).
*/
max_concurrency?: number;
/**
* The maximum number of retries
*/
max_retries?: number;
/**
* The number of milliseconds to wait for a batch to fill up before attempting to
* deliver it
*/
max_wait_time_ms?: number;
/**
* The number of seconds to delay before making the message available for another
* attempt.
*/
retry_delay?: number;
}
}
export interface MqHTTPConsumer {
/**
* A Resource identifier.
*/
consumer_id?: string;
created_on?: string;
/**
* A Resource identifier.
*/
queue_id?: string;
settings?: MqHTTPConsumer.Settings;
type?: 'http_pull';
}
export namespace MqHTTPConsumer {
export interface Settings {
/**
* The maximum number of messages to include in a batch.
*/
batch_size?: number;
/**
* The maximum number of retries
*/
max_retries?: number;
/**
* The number of seconds to delay before making the message available for another
* attempt.
*/
retry_delay?: number;
/**
* The number of milliseconds that a message is exclusively leased. After the
* timeout, the message becomes available for another attempt.
*/
visibility_timeout_ms?: number;
}
}
}
export interface ConsumerDeleteResponse {
errors?: Array<Shared.ResponseInfo>;
messages?: Array<string>;
/**
* Indicates if the API call was successful or not.
*/
success?: true;
}
export type ConsumerCreateParams =
| ConsumerCreateParams.MqWorkerConsumer
| ConsumerCreateParams.MqHTTPConsumer;
export declare namespace ConsumerCreateParams {
export interface MqWorkerConsumer {
/**
* Path param: A Resource identifier.
*/
account_id: string;
/**
* Body param:
*/
dead_letter_queue?: string;
/**
* Body param: Name of a Worker
*/
script_name?: string;
/**
* Body param:
*/
settings?: MqWorkerConsumer.Settings;
/**
* Body param:
*/
type?: 'worker';
}
export namespace MqWorkerConsumer {
export interface Settings {
/**
* The maximum number of messages to include in a batch.
*/
batch_size?: number;
/**
* Maximum number of concurrent consumers that may consume from this Queue. Set to
* `null` to automatically opt in to the platform's maximum (recommended).
*/
max_concurrency?: number;
/**
* The maximum number of retries
*/
max_retries?: number;
/**
* The number of milliseconds to wait for a batch to fill up before attempting to
* deliver it
*/
max_wait_time_ms?: number;
/**
* The number of seconds to delay before making the message available for another
* attempt.
*/
retry_delay?: number;
}
}
export interface MqHTTPConsumer {
/**
* Path param: A Resource identifier.
*/
account_id: string;
/**
* Body param:
*/
dead_letter_queue?: string;
/**
* Body param:
*/
settings?: MqHTTPConsumer.Settings;
/**
* Body param:
*/
type?: 'http_pull';
}
export namespace MqHTTPConsumer {
export interface Settings {
/**
* The maximum number of messages to include in a batch.
*/
batch_size?: number;
/**
* The maximum number of retries
*/
max_retries?: number;
/**
* The number of seconds to delay before making the message available for another
* attempt.
*/
retry_delay?: number;
/**
* The number of milliseconds that a message is exclusively leased. After the
* timeout, the message becomes available for another attempt.
*/
visibility_timeout_ms?: number;
}
}
}
export type ConsumerUpdateParams =
| ConsumerUpdateParams.MqWorkerConsumer
| ConsumerUpdateParams.MqHTTPConsumer;
export declare namespace ConsumerUpdateParams {
export interface MqWorkerConsumer {
/**
* Path param: A Resource identifier.
*/
account_id: string;
/**
* Body param:
*/
dead_letter_queue?: string;
/**
* Body param: Name of a Worker
*/
script_name?: string;
/**
* Body param:
*/
settings?: MqWorkerConsumer.Settings;
/**
* Body param:
*/
type?: 'worker';
}
export namespace MqWorkerConsumer {
export interface Settings {
/**
* The maximum number of messages to include in a batch.
*/
batch_size?: number;
/**
* Maximum number of concurrent consumers that may consume from this Queue. Set to
* `null` to automatically opt in to the platform's maximum (recommended).
*/
max_concurrency?: number;
/**
* The maximum number of retries
*/
max_retries?: number;
/**
* The number of milliseconds to wait for a batch to fill up before attempting to
* deliver it
*/
max_wait_time_ms?: number;
/**
* The number of seconds to delay before making the message available for another
* attempt.
*/
retry_delay?: number;
}
}
export interface MqHTTPConsumer {
/**
* Path param: A Resource identifier.
*/
account_id: string;
/**
* Body param:
*/
dead_letter_queue?: string;
/**
* Body param:
*/
settings?: MqHTTPConsumer.Settings;
/**
* Body param:
*/
type?: 'http_pull';
}
export namespace MqHTTPConsumer {
export interface Settings {
/**
* The maximum number of messages to include in a batch.
*/
batch_size?: number;
/**
* The maximum number of retries
*/
max_retries?: number;
/**
* The number of seconds to delay before making the message available for another
* attempt.
*/
retry_delay?: number;
/**
* The number of milliseconds that a message is exclusively leased. After the
* timeout, the message becomes available for another attempt.
*/
visibility_timeout_ms?: number;
}
}
}
export interface ConsumerDeleteParams {
/**
* A Resource identifier.
*/
account_id: string;
}
export interface ConsumerGetParams {
/**
* A Resource identifier.
*/
account_id: string;
}
Consumers.ConsumersSinglePage = ConsumersSinglePage;
export declare namespace Consumers {
export {
type Consumer as Consumer,
type ConsumerDeleteResponse as ConsumerDeleteResponse,
ConsumersSinglePage as ConsumersSinglePage,
type ConsumerCreateParams as ConsumerCreateParams,
type ConsumerUpdateParams as ConsumerUpdateParams,
type ConsumerDeleteParams as ConsumerDeleteParams,
type ConsumerGetParams as ConsumerGetParams,
};
}