@cumulus/aws-client
Version:
Utilities for working with AWS
76 lines • 3.26 kB
TypeScript
/**
* @module SQS
*/
import Logger from '@cumulus/logger';
import { CumulusMessage } from '@cumulus/types/message';
import { SQSRecord } from 'aws-lambda';
import { Message } from '@aws-sdk/client-sqs';
import { StepFunctionEventBridgeEvent } from './Lambda';
export interface SQSMessage extends Message {
ReceiptHandle: string;
}
export declare const getQueueNameFromUrl: (queueUrl: string) => string | undefined;
export declare const getQueueUrl: (sourceArn: string, queueName: string) => string;
export declare const getQueueUrlByName: (queueName: string) => Promise<string | undefined>;
/**
* Create an SQS Queue. Properly handles localstack queue URLs
*/
export declare function createQueue(QueueName: string): Promise<string | undefined>;
export declare const deleteQueue: (queueUrl: string) => Promise<import("@aws-sdk/client-sqs").DeleteQueueCommandOutput>;
export declare const getQueueAttributes: (queueName: string) => Promise<{
name: string;
All?: string | undefined;
ApproximateNumberOfMessages?: string | undefined;
ApproximateNumberOfMessagesDelayed?: string | undefined;
ApproximateNumberOfMessagesNotVisible?: string | undefined;
ContentBasedDeduplication?: string | undefined;
CreatedTimestamp?: string | undefined;
DeduplicationScope?: string | undefined;
DelaySeconds?: string | undefined;
FifoQueue?: string | undefined;
FifoThroughputLimit?: string | undefined;
KmsDataKeyReusePeriodSeconds?: string | undefined;
KmsMasterKeyId?: string | undefined;
LastModifiedTimestamp?: string | undefined;
MaximumMessageSize?: string | undefined;
MessageRetentionPeriod?: string | undefined;
Policy?: string | undefined;
QueueArn?: string | undefined;
ReceiveMessageWaitTimeSeconds?: string | undefined;
RedriveAllowPolicy?: string | undefined;
RedrivePolicy?: string | undefined;
SqsManagedSseEnabled?: string | undefined;
VisibilityTimeout?: string | undefined;
}>;
/**
* Send a message to AWS SQS
**/
export declare const sendSQSMessage: (queueUrl: string, message: string | object, logOverride?: Logger | undefined) => Promise<import("@aws-sdk/client-sqs").SendMessageCommandOutput>;
declare type ReceiveSQSMessagesOptions = {
numOfMessages?: number;
visibilityTimeout?: number;
waitTimeSeconds?: number;
};
/**
* Receives SQS messages from a given queue. The number of messages received
* can be set and the timeout is also adjustable.
*/
export declare const receiveSQSMessages: (queueUrl: string, options: ReceiveSQSMessagesOptions) => Promise<SQSMessage[]>;
/**
* Bare check for SQS message Shape
*/
export declare const isSQSRecordLike: (message: Object) => message is SQSRecord;
/**
* Extract SQS message body
*/
export declare const parseSQSMessageBody: (message: SQSRecord | Message) => StepFunctionEventBridgeEvent | CumulusMessage | SQSRecord;
/**
* Delete a given SQS message from a given queue.
*/
export declare const deleteSQSMessage: (QueueUrl: string, ReceiptHandle: string) => Promise<import("@aws-sdk/client-sqs").DeleteMessageCommandOutput>;
/**
* Test if an SQS queue exists
*/
export declare const sqsQueueExists: (queueUrl: string) => Promise<boolean>;
export {};
//# sourceMappingURL=SQS.d.ts.map