import type { MetaFlowCategory, RegistrationStatus, WhatsAppDayOfWeek } from "./enums"; /** *

The tag for a resource.

* @public */ export interface Tag { /** *

The tag key.

* @public */ key: string | undefined; /** *

The tag value.

* @public */ value?: string | undefined; } /** *

The registration details for a linked phone number.

* @public */ export interface WabaPhoneNumberSetupFinalization { /** *

The unique identifier of the originating phone number associated with the media. Phone * number identifiers are formatted as * phone-number-id-01234567890123456789012345678901. Use the * GetLinkedWhatsAppBusinessAccount * API action to find a phone number's id.

* @public */ id: string | undefined; /** *

The PIN to use for two-step verification. To reset your PIN follow the directions in * Updating PIN in the WhatsApp Business Platform Cloud API * Reference.

* @public */ twoFactorPin: string | undefined; /** *

The two letter ISO region for the location of where Meta will store data.

*

* Asia–Pacific (APAC) *

* *

* Europe *

* *

* Latin America (LATAM) *

* *

* Middle East and Africa (MEA) *

* *

* North America (NORAM) *

* * @public */ dataLocalizationRegion?: string | undefined; /** *

An array of key and value pair tags.

* @public */ tags?: Tag[] | undefined; } /** *

Contains information on the event destination.

* @public */ export interface WhatsAppBusinessAccountEventDestination { /** *

The ARN of the event destination.

* @public */ eventDestinationArn: string | undefined; /** *

The Amazon Resource Name (ARN) of an Identity and Access Management role * that is able to import phone numbers and write events.

* @public */ roleArn?: string | undefined; } /** *

The registration details for a linked WhatsApp Business Account.

* @public */ export interface WabaSetupFinalization { /** *

The ID of the linked WhatsApp Business Account, formatted as waba-01234567890123456789012345678901.

* @public */ id?: string | undefined; /** *

The event destinations for the linked WhatsApp Business Account.

* @public */ eventDestinations?: WhatsAppBusinessAccountEventDestination[] | undefined; /** *

An array of key and value pair tags.

* @public */ tags?: Tag[] | undefined; } /** *

The details of linking a WhatsApp Business Account to your Amazon Web Services account.

* @public */ export interface WhatsAppSetupFinalization { /** *

An Amazon Web Services access token generated by WhatsAppSignupCallback and used by WhatsAppSetupFinalization.

* @public */ associateInProgressToken: string | undefined; /** *

An array of WabaPhoneNumberSetupFinalization objects containing the details of each phone number associated with the WhatsApp Business Account.

* @public */ phoneNumbers: WabaPhoneNumberSetupFinalization[] | undefined; /** *

Used to add a new phone number to an existing WhatsApp Business Account. This field can't be used when the waba field is present.

* @public */ phoneNumberParent?: string | undefined; /** *

Used to create a new WhatsApp Business Account and add a phone number. This field can't be used when the phoneNumberParent field is present.

* @public */ waba?: WabaSetupFinalization | undefined; } /** *

Contains the accessToken provided by Meta during signup.

* @public */ export interface WhatsAppSignupCallback { /** *

The access token for your WhatsApp Business Account. The accessToken value is provided by Meta.

* @public */ accessToken: string | undefined; /** *

The URL where WhatsApp will send callback notifications for this account.

* @public */ callbackUrl?: string | undefined; } /** * @public */ export interface AssociateWhatsAppBusinessAccountInput { /** *

Contains the callback access token.

* @public */ signupCallback?: WhatsAppSignupCallback | undefined; /** *

A JSON object that contains the phone numbers and WhatsApp Business Account to link to your account.

* @public */ setupFinalization?: WhatsAppSetupFinalization | undefined; } /** *

The details of your WhatsApp phone number.

* @public */ export interface WhatsAppPhoneNumberDetail { /** *

The ARN of the WhatsApp phone number.

* @public */ arn: string | undefined; /** *

The phone number for sending WhatsApp.

* @public */ phoneNumber: string | undefined; /** *

The phone number ID. Phone number identifiers are formatted as phone-number-id-01234567890123456789012345678901.

* @public */ phoneNumberId: string | undefined; /** *

The phone number ID from Meta.

* @public */ metaPhoneNumberId: string | undefined; /** *

The display name for this phone number.

* @public */ displayPhoneNumberName: string | undefined; /** *

The phone number that appears in the recipients display.

* @public */ displayPhoneNumber: string | undefined; /** *

The quality rating of the phone number.

* @public */ qualityRating: string | undefined; /** *

The geographic region where the WhatsApp phone number's data is stored and processed.

* @public */ dataLocalizationRegion?: string | undefined; } /** *

Contains your WhatsApp registration status and details of any unregistered WhatsApp * phone number.

* @public */ export interface LinkedWhatsAppBusinessAccountIdMetaData { /** *

The name of your account.

* @public */ accountName?: string | undefined; /** *

The registration status of the linked WhatsApp Business Account.

* @public */ registrationStatus?: RegistrationStatus | undefined; /** *

The details for unregistered WhatsApp phone numbers.

* @public */ unregisteredWhatsAppPhoneNumbers?: WhatsAppPhoneNumberDetail[] | undefined; /** *

The Amazon Resource Name (ARN) of the WhatsApp Business Account ID.

* @public */ wabaId?: string | undefined; } /** *

Contains the results of WhatsAppSignupCallback.

* @public */ export interface WhatsAppSignupCallbackResult { /** *

An Amazon Web Services access token generated by WhatsAppSignupCallback and used by WhatsAppSetupFinalization.

* @public */ associateInProgressToken?: string | undefined; /** *

A LinkedWhatsAppBusinessAccountIdMetaData object map containing the details of any WhatsAppBusiness accounts that have incomplete setup.

* @public */ linkedAccountsWithIncompleteSetup?: Record | undefined; } /** * @public */ export interface AssociateWhatsAppBusinessAccountOutput { /** *

Contains your WhatsApp registration status.

* @public */ signupCallbackResult?: WhatsAppSignupCallbackResult | undefined; /** *

The status code for the response.

* @public */ statusCode?: number | undefined; /** *

The ID of the WhatsApp Business Account that was linked to your Amazon Web Services account.

* @public */ linkedWhatsAppBusinessAccountId?: string | undefined; } /** * @public */ export interface CreateWhatsAppDatasetInput { /** *

The ID of the WhatsApp Business Account to create a dataset for, formatted as waba-01234567890123456789012345678901.

* @public */ id: string | undefined; } /** * @public */ export interface CreateWhatsAppDatasetOutput { /** *

The Meta-generated dataset ID, a numeric string of 10 to 20 digits.

* @public */ datasetId: string | undefined; } /** * @public */ export interface CreateWhatsAppFlowInput { /** *

The ID of the WhatsApp Business Account to associate with this Flow.

* @public */ id: string | undefined; /** *

The name of the Flow. Must be unique within the WhatsApp Business Account.

* @public */ flowName: string | undefined; /** *

The categories that classify the business purpose of the Flow. At least one category is required.

* @public */ categories: MetaFlowCategory[] | undefined; /** *

The Flow JSON definition that describes the screens, components, and logic of the Flow. Maximum size is 10 MB.

* @public */ flowJson?: Uint8Array | undefined; /** *

Set to true to publish the Flow immediately after creation. Requires a valid flowJson that passes Meta's validation.

* @public */ publish?: boolean | undefined; /** *

The ID of an existing Flow within the same WhatsApp Business Account to clone.

* @public */ cloneFlowId?: string | undefined; /** *

The HTTPS endpoint that Meta calls for a data exchange Flow.

* @public */ endpointUri?: string | undefined; } /** * @public */ export interface CreateWhatsAppFlowOutput { /** *

The unique identifier assigned to the Flow by Meta.

* @public */ flowId?: string | undefined; /** *

A list of validation errors returned by Meta, if any. Validation errors must be resolved before the Flow can be published.

* @public */ validationErrors?: string[] | undefined; } /** * @public */ export interface CreateWhatsAppMessageTemplateInput { /** *

The complete template definition as a JSON blob.

* @public */ templateDefinition: Uint8Array | undefined; /** *

The ID of the WhatsApp Business Account to associate with this template.

* @public */ id: string | undefined; } /** * @public */ export interface CreateWhatsAppMessageTemplateOutput { /** *

The numeric ID assigned to the template by Meta.

* @public */ metaTemplateId?: string | undefined; /** *

The status of the created template, such as PENDING or APPROVED..

* @public */ templateStatus?: string | undefined; /** *

The category of the template, such as UTILITY or MARKETING.

* @public */ category?: string | undefined; } /** *

Configuration options for customizing the body content of a template from Meta's library.

* @public */ export interface LibraryTemplateBodyInputs { /** *

When true, includes a contact number in the template body.

* @public */ addContactNumber?: boolean | undefined; /** *

When true, includes a "learn more" link in the template body.

* @public */ addLearnMoreLink?: boolean | undefined; /** *

When true, includes security recommendations in the template body.

* @public */ addSecurityRecommendation?: boolean | undefined; /** *

When true, includes a package tracking link in the template body.

* @public */ addTrackPackageLink?: boolean | undefined; /** *

The number of minutes until a verification code or OTP expires.

* @public */ codeExpirationMinutes?: number | undefined; } /** *

Configuration options for customizing buttons in a template from Meta's library.

* @public */ export interface LibraryTemplateButtonInput { /** *

The type of button (for example, QUICK_REPLY, CALL, or URL).

* @public */ type?: string | undefined; /** *

The phone number in E.164 format for CALL-type buttons.

* @public */ phoneNumber?: string | undefined; /** *

The URL with dynamic parameters for URL-type buttons.

* @public */ url?: Record | undefined; /** *

The type of one-time password for OTP buttons.

* @public */ otpType?: string | undefined; /** *

When true, indicates acceptance of zero-tap terms for the button.

* @public */ zeroTapTermsAccepted?: boolean | undefined; /** *

List of supported applications for this button type.

* @public */ supportedApps?: Record[] | undefined; } /** *

Represents a template from Meta's library with customization options.

* @public */ export interface MetaLibraryTemplate { /** *

The name to assign to the template.

* @public */ templateName: string | undefined; /** *

The name of the template in Meta's library.

* @public */ libraryTemplateName: string | undefined; /** *

The category of the template (for example, UTILITY or MARKETING).

* @public */ templateCategory: string | undefined; /** *

The language code for the template (for example, en_US).

* @public */ templateLanguage: string | undefined; /** *

Button customizations for the template.

* @public */ libraryTemplateButtonInputs?: LibraryTemplateButtonInput[] | undefined; /** *

Body text customizations for the template.

* @public */ libraryTemplateBodyInputs?: LibraryTemplateBodyInputs | undefined; } /** * @public */ export interface CreateWhatsAppMessageTemplateFromLibraryInput { /** *

The template configuration from Meta's library, including customizations for buttons and body text.

* @public */ metaLibraryTemplate: MetaLibraryTemplate | undefined; /** *

The ID of the WhatsApp Business Account to associate with this template.

* @public */ id: string | undefined; } /** * @public */ export interface CreateWhatsAppMessageTemplateFromLibraryOutput { /** *

The numeric ID assigned to the template by Meta.

* @public */ metaTemplateId?: string | undefined; /** *

The status of the created template (for example, PENDING or APPROVED).

* @public */ templateStatus?: string | undefined; /** *

The category of the template (for example, UTILITY or MARKETING).

* @public */ category?: string | undefined; } /** *

Contains information for the S3 bucket that contains media files.

* @public */ export interface S3File { /** *

The bucket name.

* @public */ bucketName: string | undefined; /** *

The S3 key prefix that defines the storage location of your media files. The prefix works like a folder path in S3, * and is combined with the WhatsApp mediaId to create the final file path.

*

For example, if a media file's WhatsApp mediaId is 123.ogg, and the key is audio/example.ogg, * the final file path is audio/example.ogg123.ogg.

*

For the same mediaId, a key of audio/ results in the file path audio/123.ogg.

* @public */ key: string | undefined; } /** * @public */ export interface CreateWhatsAppMessageTemplateMediaInput { /** *

The ID of the WhatsApp Business Account associated with this media upload.

* @public */ id: string | undefined; /** *

Contains information for the S3 bucket that contains media files.

* @public */ sourceS3File?: S3File | undefined; } /** * @public */ export interface CreateWhatsAppMessageTemplateMediaOutput { /** *

The handle assigned to the uploaded media by Meta, used to reference the media in templates.

* @public */ metaHeaderHandle?: string | undefined; } /** * @public */ export interface DeleteWhatsAppFlowInput { /** *

The ID of the WhatsApp Business Account associated with this Flow.

* @public */ id: string | undefined; /** *

The unique identifier of the Flow to delete.

* @public */ flowId: string | undefined; } /** * @public */ export interface DeleteWhatsAppFlowOutput { } /** * @public */ export interface DeleteWhatsAppMessageMediaInput { /** *

The unique identifier of the media file to delete. Use the mediaId returned from PostWhatsAppMessageMedia.

* @public */ mediaId: string | undefined; /** *

The unique identifier of the originating phone number associated with the media. Phone * number identifiers are formatted as * phone-number-id-01234567890123456789012345678901. Use * GetLinkedWhatsAppBusinessAccount to find a phone number's * id.

* @public */ originationPhoneNumberId: string | undefined; } /** * @public */ export interface DeleteWhatsAppMessageMediaOutput { /** *

Success indicator for deleting the media file.

* @public */ success?: boolean | undefined; } /** * @public */ export interface DeleteWhatsAppMessageTemplateInput { /** *

The numeric ID of the template assigned by Meta.

* @public */ metaTemplateId?: string | undefined; /** *

If true, deletes all language versions of the template.

* @public */ deleteAllLanguages?: boolean | undefined; /** *

The ID of the WhatsApp Business Account associated with this template.

* @public */ id: string | undefined; /** *

The name of the template to delete.

* @public */ templateName: string | undefined; } /** * @public */ export interface DeleteWhatsAppMessageTemplateOutput { } /** * @public */ export interface DeprecateWhatsAppFlowInput { /** *

The ID of the WhatsApp Business Account associated with this Flow.

* @public */ id: string | undefined; /** *

The unique identifier of the Flow to deprecate.

* @public */ flowId: string | undefined; } /** * @public */ export interface DeprecateWhatsAppFlowOutput { } /** * @public */ export interface DisassociateWhatsAppBusinessAccountInput { /** *

The unique identifier of your WhatsApp Business Account. WABA identifiers are formatted as * waba-01234567890123456789012345678901. Use * ListLinkedWhatsAppBusinessAccounts to list all WABAs * and their details.

* @public */ id: string | undefined; } /** * @public */ export interface DisassociateWhatsAppBusinessAccountOutput { } /** * @public */ export interface GetLinkedWhatsAppBusinessAccountInput { /** *

The unique identifier, from Amazon Web Services, of the linked WhatsApp Business * Account. WABA identifiers are formatted as * waba-01234567890123456789012345678901. Use * ListLinkedWhatsAppBusinessAccounts to list all WABAs and their details.

* @public */ id: string | undefined; } /** *

The details of a linked phone number.

* @public */ export interface WhatsAppPhoneNumberSummary { /** *

The full Amazon Resource Name (ARN) for the phone number.

* @public */ arn: string | undefined; /** *

The phone number associated with the Linked WhatsApp Business Account.

* @public */ phoneNumber: string | undefined; /** *

The phone number ID. Phone number identifiers are formatted as phone-number-id-01234567890123456789012345678901.

* @public */ phoneNumberId: string | undefined; /** *

The phone number ID from Meta.

* @public */ metaPhoneNumberId: string | undefined; /** *

The display name for this phone number.

* @public */ displayPhoneNumberName: string | undefined; /** *

The phone number that appears in the recipients display.

* @public */ displayPhoneNumber: string | undefined; /** *

The quality rating of the phone number. This is from Meta.

* @public */ qualityRating: string | undefined; /** *

The geographic region where the WhatsApp phone number's data is stored and processed.

* @public */ dataLocalizationRegion?: string | undefined; } /** *

The details of your linked WhatsApp Business Account.

* @public */ export interface LinkedWhatsAppBusinessAccount { /** *

The ARN of the linked WhatsApp Business Account.

* @public */ arn: string | undefined; /** *

The ID of the linked WhatsApp Business Account, formatted as waba-01234567890123456789012345678901.

* @public */ id: string | undefined; /** *

The WhatsApp Business Account ID from meta.

* @public */ wabaId: string | undefined; /** *

The registration status of the linked WhatsApp Business Account.

* @public */ registrationStatus: RegistrationStatus | undefined; /** *

The date the WhatsApp Business Account was linked.

* @public */ linkDate: Date | undefined; /** *

The name of the linked WhatsApp Business Account.

* @public */ wabaName: string | undefined; /** *

The event destinations for the linked WhatsApp Business Account.

* @public */ eventDestinations: WhatsAppBusinessAccountEventDestination[] | undefined; /** *

The onboarding status for the Marketing Messages API. This value is fetched from Meta and indicates whether the WhatsApp Business Account is onboarded for Meta's Marketing Messages API.

* @public */ marketingMessagesOnboardingStatus?: string | undefined; /** *

The Meta Conversions API dataset ID associated with this WhatsApp Business Account. This value is a numeric string of 10 to 20 digits. This field is not present when no dataset has been created for this account.

* @public */ datasetId?: string | undefined; /** *

The phone numbers associated with the Linked WhatsApp Business Account.

* @public */ phoneNumbers: WhatsAppPhoneNumberSummary[] | undefined; } /** * @public */ export interface GetLinkedWhatsAppBusinessAccountOutput { /** *

The details of the linked WhatsApp Business Account.

* @public */ account?: LinkedWhatsAppBusinessAccount | undefined; } /** * @public */ export interface GetLinkedWhatsAppBusinessAccountPhoneNumberInput { /** *

The unique identifier of the phone number. Phone number * identifiers are formatted as phone-number-id-01234567890123456789012345678901. * Use GetLinkedWhatsAppBusinessAccount * to find a phone number's id.

* @public */ id: string | undefined; } /** *

A time of day, expressed as an hour and minute.

* @public */ export interface WhatsAppTimeOfDay { /** *

The hour of the day, from 0 to 23.

* @public */ hours: number | undefined; /** *

The minute of the hour, from 0 to 59.

* @public */ minutes: number | undefined; } /** *

A date-specific override to the weekly operating hours, such as a holiday.

* @public */ export interface WhatsAppHolidayScheduleEntry { /** *

The date that the override applies to, in ISO 8601 format (YYYY-MM-DD).

* @public */ date: string | undefined; /** *

The time of day when the business begins accepting calls on the override date.

* @public */ startTime: WhatsAppTimeOfDay | undefined; /** *

The time of day when the business stops accepting calls on the override date.

* @public */ endTime: WhatsAppTimeOfDay | undefined; } /** *

A single entry in a weekly calling schedule, defining the open and close times for one day of the week.

* @public */ export interface WhatsAppWeeklyOperatingHoursEntry { /** *

The day of the week that the entry applies to.

* @public */ dayOfWeek: WhatsAppDayOfWeek | undefined; /** *

The time of day when the business begins accepting calls.

* @public */ openTime: WhatsAppTimeOfDay | undefined; /** *

The time of day when the business stops accepting calls.

* @public */ closeTime: WhatsAppTimeOfDay | undefined; } /** *

The operating hours during which a business phone number accepts WhatsApp calls, including the time zone, weekly schedule, and any holiday overrides.

* @public */ export interface WhatsAppCallHours { /** *

Specifies whether call hours are enforced. When disabled, the business accepts calls at any time.

* @public */ enabled: boolean | undefined; /** *

The IANA time zone in which the operating hours are interpreted, such as America/New_York.

* @public */ timezone: string | undefined; /** *

The weekly schedule of hours during which the business accepts calls.

* @public */ weeklyOperatingHours: WhatsAppWeeklyOperatingHoursEntry[] | undefined; /** *

Date-specific overrides to the weekly operating hours, such as holidays.

* @public */ holidaySchedule?: WhatsAppHolidayScheduleEntry[] | undefined; } /** *

The calling configuration for a WhatsApp business phone number.

* @public */ export interface WhatsAppCallSettings { /** *

Specifies whether calling is enabled for the phone number.

* @public */ callEnabled: boolean | undefined; /** *

The hours during which the business accepts calls on the phone number.

* @public */ callHours?: WhatsAppCallHours | undefined; /** *

The visibility setting for the call icon shown to end users in WhatsApp.

* @public */ callIconVisibility?: string | undefined; /** *

The callback permission status for the phone number.

* @public */ callbackPermissionStatus?: string | undefined; } /** * @public */ export interface GetLinkedWhatsAppBusinessAccountPhoneNumberOutput { /** *

The details of your WhatsApp phone number.

* @public */ phoneNumber?: WhatsAppPhoneNumberDetail | undefined; /** *

The WABA identifier linked to the phone number, formatted as * waba-01234567890123456789012345678901.

* @public */ linkedWhatsAppBusinessAccountId?: string | undefined; /** *

The calling settings configured for the phone number. This value is absent when calling is not configured.

* @public */ callSettings?: WhatsAppCallSettings | undefined; } /** * @public */ export interface GetWhatsAppBusinessPublicKeyInput { /** *

The unique identifier of the phone number whose business public key to retrieve.

* @public */ originationPhoneNumberId: string | undefined; } /** * @public */ export interface GetWhatsAppBusinessPublicKeyOutput { /** *

The stored PEM-encoded 2048-bit RSA public key.

* @public */ businessPublicKey?: string | undefined; /** *

The signature status of the stored business public key. Valid values are VALID and MISMATCH.

* @public */ businessPublicKeySignatureStatus?: string | undefined; } /** * @public */ export interface GetWhatsAppCallPermissionInput { /** *

The unique identifier of the business phone number for which to retrieve the calling permission. The phone number identifiers are formatted as phone-number-id-01234567890123456789012345678901.

* @public */ originationPhoneNumberId: string | undefined; /** *

The end user's phone number, in E.164 format, for which to retrieve the calling permission.

* @public */ destinationPhoneNumber?: string | undefined; /** *

The business-scoped user identifier (BSUID) of the end user for which to retrieve the calling permission.

* @public */ endUserBsuid?: string | undefined; } /** *

A time-bound restriction on a calling action, such as the number of calls allowed within a time period.

* @public */ export interface WhatsAppCallPermissionLimit { /** *

The time period over which the limit applies, as an ISO 8601 duration.

* @public */ timePeriod: string | undefined; /** *

The maximum number of times the action is allowed within the time period.

* @public */ maxAllowed: number | undefined; /** *

The number of times the action has been used within the current time period.

* @public */ currentUsage: number | undefined; /** *

The time when the limit resets. This value is present only when the current usage has reached the maximum allowed.

* @public */ limitExpirationTime?: Date | undefined; } /** *

Describes a single calling action the business can take with an end user, including whether the action is currently allowed and any limits that apply to it. Returned as an item in the actions list from GetWhatsAppCallPermission.

* @public */ export interface WhatsAppCallPermissionAction { /** *

The name of the calling action.

* @public */ actionName: string | undefined; /** *

Specifies whether the business can currently perform the action.

* @public */ canPerformAction: boolean | undefined; /** *

The time-bound limits that apply to the action.

* @public */ limits: WhatsAppCallPermissionLimit[] | undefined; } /** *

The current calling permission state for a business phone number and a specific WhatsApp end user.

* @public */ export interface WhatsAppCallPermission { /** *

The permission status for the end user.

* @public */ status: string | undefined; /** *

The time when a temporary permission expires. This value is absent for permanent permissions and when there is no permission.

* @public */ expirationTime?: Date | undefined; } /** * @public */ export interface GetWhatsAppCallPermissionOutput { /** *

The current calling permission state for the end user.

* @public */ permission: WhatsAppCallPermission | undefined; /** *

The calling actions the business can take with the end user, and any limits that apply to each action.

* @public */ actions: WhatsAppCallPermissionAction[] | undefined; } /** * @public */ export interface GetWhatsAppFlowInput { /** *

The ID of the WhatsApp Business Account associated with this Flow.

* @public */ id: string | undefined; /** *

The unique identifier of the Flow to retrieve.

* @public */ flowId: string | undefined; } /** *

Contains the Meta application metadata associated with a WhatsApp Flow.

* @public */ export interface MetaFlowApplicationInfo { /** *

The URL link for the Meta application.

* @public */ link?: string | undefined; /** *

The name of the Meta application.

* @public */ name: string | undefined; /** *

The unique identifier of the Meta application.

* @public */ id: string | undefined; } /** *

Represents a single entity in the health status check for a WhatsApp Flow.

* @public */ export interface MetaFlowHealthEntity { /** *

The type of entity (for example, FLOW, WABA, BUSINESS, or APP).

* @public */ entityType: string | undefined; /** *

The unique identifier of the entity.

* @public */ id: string | undefined; /** *

The messaging availability status for this entity (for example, AVAILABLE, LIMITED, or BLOCKED).

* @public */ canSendMessage: string | undefined; } /** *

Contains the overall health status and per-entity breakdown for a WhatsApp Flow.

* @public */ export interface MetaFlowHealthStatus { /** *

The overall messaging availability status (for example, AVAILABLE, LIMITED, or BLOCKED).

* @public */ canSendMessage: string | undefined; /** *

A list of health status entities with per-entity availability information.

* @public */ entities?: MetaFlowHealthEntity[] | undefined; } /** *

Contains the preview URL for testing a WhatsApp Flow and its expiration timestamp.

* @public */ export interface MetaFlowPreviewInfo { /** *

The web URL for previewing the Flow. Can be shared with stakeholders for review.

* @public */ previewUrl: string | undefined; /** *

The timestamp when the preview URL expires.

* @public */ expiresAt: string | undefined; } /** *

Contains WhatsApp Business Account metadata associated with a Flow, as returned by Meta.

* @public */ export interface MetaFlowWhatsAppBusinessAccountInfo { /** *

The WhatsApp Business Account ID from Meta.

* @public */ id: string | undefined; /** *

The name of the WhatsApp Business Account.

* @public */ name: string | undefined; /** *

The currency code for the WhatsApp Business Account (for example, USD).

* @public */ currency?: string | undefined; /** *

The timezone ID for the WhatsApp Business Account.

* @public */ timezoneId?: string | undefined; /** *

The message template namespace for the WhatsApp Business Account.

* @public */ messageTemplateNamespace?: string | undefined; } /** * @public */ export interface GetWhatsAppFlowOutput { /** *

The unique identifier of the Flow.

* @public */ flowId: string | undefined; /** *

The name of the Flow.

* @public */ flowName: string | undefined; /** *

The lifecycle status of the Flow. Valid values are DRAFT, PUBLISHED, DEPRECATED, BLOCKED, and THROTTLED.

* @public */ flowStatus: string | undefined; /** *

The categories that classify the business purpose of the Flow.

* @public */ categories?: MetaFlowCategory[] | undefined; /** *

A list of validation errors from Meta, if any.

* @public */ validationErrors?: string[] | undefined; /** *

The version of the Flow JSON schema used by this Flow (for example, 7.3).

* @public */ jsonVersion?: string | undefined; /** *

The data API version for data exchange endpoint Flows.

* @public */ dataApiVersion?: string | undefined; /** *

The HTTPS endpoint that Meta calls for a data exchange Flow.

* @public */ endpointUri?: string | undefined; /** *

The preview URL and its expiration timestamp for testing the Flow.

* @public */ preview?: MetaFlowPreviewInfo | undefined; /** *

The WhatsApp Business Account information from Meta associated with this Flow.

* @public */ whatsAppBusinessAccount?: MetaFlowWhatsAppBusinessAccountInfo | undefined; /** *

The Meta application information associated with this Flow.

* @public */ application?: MetaFlowApplicationInfo | undefined; /** *

The health status information for this Flow from Meta.

* @public */ healthStatus?: MetaFlowHealthStatus | undefined; } /** * @public */ export interface GetWhatsAppFlowPreviewInput { /** *

The ID of the WhatsApp Business Account associated with this Flow.

* @public */ id: string | undefined; /** *

The unique identifier of the Flow to preview.

* @public */ flowId: string | undefined; /** *

Set to true to force generation of a new preview URL. Use this if the previous URL has been compromised or you want a fresh expiration period.

* @public */ invalidate?: boolean | undefined; } /** * @public */ export interface GetWhatsAppFlowPreviewOutput { /** *

The unique identifier of the Flow.

* @public */ flowId: string | undefined; /** *

The preview URL and its expiration timestamp.

* @public */ preview: MetaFlowPreviewInfo | undefined; } /** *

You can use presigned URLs to grant time-limited access to objects in Amazon S3 without updating your bucket policy. For more information, see Working with presigned URLs in the Amazon S3 * User Guide.

* @public */ export interface S3PresignedUrl { /** *

The presign url to the object.

* @public */ url: string | undefined; /** *

A map of headers and their values. You must specify the Content-Type header when using PostWhatsAppMessageMedia. For a list of common headers, see Common Request Headers in the Amazon S3 * API Reference *

* @public */ headers: Record | undefined; } /** * @public */ export interface GetWhatsAppMessageMediaInput { /** *

The unique identifier for the media file.

* @public */ mediaId: string | undefined; /** *

The unique identifier of the originating phone number for the WhatsApp message media. * The phone number identifiers are formatted as * phone-number-id-01234567890123456789012345678901. Use * GetLinkedWhatsAppBusinessAccount to find a phone number's * id.

* @public */ originationPhoneNumberId: string | undefined; /** *

Set to True to get only the metadata for the file.

* @public */ metadataOnly?: boolean | undefined; /** *

The presign url of the media file.

* @public */ destinationS3PresignedUrl?: S3PresignedUrl | undefined; /** *

The bucketName and key of the S3 media file.

* @public */ destinationS3File?: S3File | undefined; } /** * @public */ export interface GetWhatsAppMessageMediaOutput { /** *

The MIME type of the media.

* @public */ mimeType?: string | undefined; /** *

The size of the media file, in KB.

* @public */ fileSize?: number | undefined; } /** * @public */ export interface GetWhatsAppMessageTemplateInput { /** *

The numeric ID of the template assigned by Meta.

* @public */ metaTemplateId?: string | undefined; /** *

The ID of the WhatsApp Business Account associated with this template.

* @public */ id: string | undefined; /** *

The name of the message template. Use together with templateLanguageCode as an alternative to metaTemplateId to identify a template.

* @public */ templateName?: string | undefined; /** *

The language code of the message template (for example, en or en_US). Use together with templateName as an alternative to metaTemplateId to identify a template.

* @public */ templateLanguageCode?: string | undefined; } /** * @public */ export interface GetWhatsAppMessageTemplateOutput { /** *

The complete template definition as a JSON string (maximum 6000 characters).

* @public */ template?: string | undefined; } /** *

Defines a button in a template from Meta's library.

* @public */ export interface LibraryTemplateButtonList { /** *

The type of button (for example, QUICK_REPLY, CALL, or URL).

* @public */ type?: string | undefined; /** *

The text displayed on the button (maximum 40 characters).

* @public */ text?: string | undefined; /** *

The phone number in E.164 format for CALL-type buttons.

* @public */ phoneNumber?: string | undefined; /** *

The URL for URL-type buttons.

* @public */ url?: string | undefined; /** *

The type of one-time password for OTP buttons.

* @public */ otpType?: string | undefined; /** *

When true, indicates acceptance of zero-tap terms for the button.

* @public */ zeroTapTermsAccepted?: boolean | undefined; /** *

List of supported applications for this button type.

* @public */ supportedApps?: Record[] | undefined; } /** * @public */ export interface ListLinkedWhatsAppBusinessAccountsInput { /** *

The next token for pagination.

* @public */ nextToken?: string | undefined; /** *

The maximum number of results to return.

* @public */ maxResults?: number | undefined; } /** *

The details of a linked WhatsApp Business Account.

* @public */ export interface LinkedWhatsAppBusinessAccountSummary { /** *

The ARN of the linked WhatsApp Business Account.

* @public */ arn: string | undefined; /** *

The ID of the linked WhatsApp Business Account, formatted as waba-01234567890123456789012345678901.

* @public */ id: string | undefined; /** *

The WhatsApp Business Account ID provided by Meta.

* @public */ wabaId: string | undefined; /** *

The registration status of the linked WhatsApp Business Account.

* @public */ registrationStatus: RegistrationStatus | undefined; /** *

The date the WhatsApp Business Account was linked.

* @public */ linkDate: Date | undefined; /** *

The name of the linked WhatsApp Business Account.

* @public */ wabaName: string | undefined; /** *

The event destinations for the linked WhatsApp Business Account.

* @public */ eventDestinations: WhatsAppBusinessAccountEventDestination[] | undefined; /** *

The onboarding status for the Marketing Messages API. This value is fetched from Meta and indicates whether the WhatsApp Business Account is onboarded for Meta's Marketing Messages API.

* @public */ marketingMessagesOnboardingStatus?: string | undefined; /** *

The Meta Conversions API dataset ID associated with this WhatsApp Business Account. This value is a numeric string of 10 to 20 digits. This field is not present when no dataset has been created for this account.

* @public */ datasetId?: string | undefined; } /** * @public */ export interface ListLinkedWhatsAppBusinessAccountsOutput { /** *

A list of WhatsApp Business Accounts linked to your Amazon Web Services account.

* @public */ linkedAccounts?: LinkedWhatsAppBusinessAccountSummary[] | undefined; /** *

The next token for pagination.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListWhatsAppFlowAssetsInput { /** *

The ID of the WhatsApp Business Account associated with this Flow.

* @public */ id: string | undefined; /** *

The unique identifier of the Flow whose assets to list.

* @public */ flowId: string | undefined; /** *

The token for the next page of results.

* @public */ nextToken?: string | undefined; /** *

The maximum number of results to return per page.

* @public */ maxResults?: number | undefined; } /** *

Represents a single asset file associated with a WhatsApp Flow, including a presigned download URL.

* @public */ export interface MetaFlowAsset { /** *

The filename of the asset (for example, flow.json).

* @public */ name: string | undefined; /** *

The type of asset. Currently the only supported value is FLOW_JSON.

* @public */ assetType: string | undefined; /** *

A presigned URL from Meta for downloading the asset. The URL expires after a short period.

* @public */ downloadUrl: string | undefined; } /** * @public */ export interface ListWhatsAppFlowAssetsOutput { /** *

A list of Flow assets with download URLs.

* @public */ flowAssets: MetaFlowAsset[] | undefined; /** *

The token to retrieve the next page of results, if any.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListWhatsAppFlowsInput { /** *

The ID of the WhatsApp Business Account to list Flows for.

* @public */ id: string | undefined; /** *

The token for the next page of results.

* @public */ nextToken?: string | undefined; /** *

The maximum number of results to return per page.

* @public */ maxResults?: number | undefined; } /** *

Contains summary information about a WhatsApp Flow, including its ID, name, status, and categories.

* @public */ export interface MetaFlowSummary { /** *

The unique identifier of the Flow assigned by Meta.

* @public */ flowId: string | undefined; /** *

The name of the Flow.

* @public */ flowName: string | undefined; /** *

The lifecycle status of the Flow (DRAFT, PUBLISHED, DEPRECATED, BLOCKED, or THROTTLED).

* @public */ flowStatus: string | undefined; /** *

The categories that classify the business purpose of the Flow.

* @public */ flowCategories: MetaFlowCategory[] | undefined; /** *

A list of validation errors from Meta, if any.

* @public */ validationErrors: string[] | undefined; } /** * @public */ export interface ListWhatsAppFlowsOutput { /** *

A list of Flow summaries.

* @public */ flows: MetaFlowSummary[] | undefined; /** *

The token to retrieve the next page of results, if any.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListWhatsAppMessageTemplatesInput { /** *

The ID of the WhatsApp Business Account to list templates for.

* @public */ id: string | undefined; /** *

The token for the next page of results.

* @public */ nextToken?: string | undefined; /** *

The maximum number of results to return per page (1-100).

* @public */ maxResults?: number | undefined; } /** *

Provides a summary of a WhatsApp message template's key attributes.

* @public */ export interface TemplateSummary { /** *

The name of the template.

* @public */ templateName?: string | undefined; /** *

The numeric ID assigned to the template by Meta.

* @public */ metaTemplateId?: string | undefined; /** *

The current status of the template (for example, APPROVED, PENDING, or REJECTED).

* @public */ templateStatus?: string | undefined; /** *

The quality score assigned to the template by Meta.

* @public */ templateQualityScore?: string | undefined; /** *

The language code of the template (for example, en_US).

* @public */ templateLanguage?: string | undefined; /** *

The category of the template (for example, UTILITY or MARKETING).

* @public */ templateCategory?: string | undefined; } /** * @public */ export interface ListWhatsAppMessageTemplatesOutput { /** *

A list of template summaries.

* @public */ templates?: TemplateSummary[] | undefined; /** *

The token to retrieve the next page of results, if any.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface ListWhatsAppTemplateLibraryInput { /** *

The token for the next page of results.

* @public */ nextToken?: string | undefined; /** *

The maximum number of results to return per page (1-100).

* @public */ maxResults?: number | undefined; /** *

The ID of the WhatsApp Business Account to list library templates for.

* @public */ id: string | undefined; /** *

Map of filters to apply (searchKey, topic, usecase, industry, language).

* @public */ filters?: Record | undefined; } /** *

Defines the complete structure and content of a template in Meta's library.

* @public */ export interface MetaLibraryTemplateDefinition { /** *

The name of the template.

* @public */ templateName?: string | undefined; /** *

The language code for the template (for example, en_US).

* @public */ templateLanguage?: string | undefined; /** *

The category of the template (for example, UTILITY or MARKETING).

* @public */ templateCategory?: string | undefined; /** *

The topic or subject matter of the template.

* @public */ templateTopic?: string | undefined; /** *

The intended use case for the template.

* @public */ templateUseCase?: string | undefined; /** *

The industries the template is designed for.

* @public */ templateIndustry?: string[] | undefined; /** *

The header text of the template.

* @public */ templateHeader?: string | undefined; /** *

The body text of the template.

* @public */ templateBody?: string | undefined; /** *

The buttons included in the template.

* @public */ templateButtons?: LibraryTemplateButtonList[] | undefined; /** *

The ID of the template in Meta's library.

* @public */ templateId?: string | undefined; /** *

Example parameter values for the template body, used to demonstrate how dynamic content appears in the template.

* @public */ templateBodyExampleParams?: string[] | undefined; } /** * @public */ export interface ListWhatsAppTemplateLibraryOutput { /** *

A list of templates from Meta's library.

* @public */ metaLibraryTemplates?: MetaLibraryTemplateDefinition[] | undefined; /** *

The token to retrieve the next page of results, if any.

* @public */ nextToken?: string | undefined; } /** * @public */ export interface PublishWhatsAppFlowInput { /** *

The ID of the WhatsApp Business Account associated with this Flow.

* @public */ id: string | undefined; /** *

The unique identifier of the Flow to publish.

* @public */ flowId: string | undefined; } /** * @public */ export interface PublishWhatsAppFlowOutput { } /** * @public */ export interface PutWhatsAppBusinessAccountEventDestinationsInput { /** *

The unique identifier of your WhatsApp Business Account. WABA identifiers are formatted as * waba-01234567890123456789012345678901. Use * ListLinkedWhatsAppBusinessAccounts to list all WABAs and their details.

* @public */ id: string | undefined; /** *

An array of WhatsAppBusinessAccountEventDestination event destinations.

* @public */ eventDestinations: WhatsAppBusinessAccountEventDestination[] | undefined; } /** * @public */ export interface PutWhatsAppBusinessAccountEventDestinationsOutput { } /** * @public */ export interface SendWhatsAppConversionEventInput { /** *

The ID of the WhatsApp Business Account associated with the dataset, formatted as waba-01234567890123456789012345678901.

* @public */ id: string | undefined; /** *

The Meta-generated dataset ID to send the event to.

* @public */ datasetId: string | undefined; /** *

The raw Meta Conversions API event payload as a JSON blob. See Meta's server event parameters for the supported format.

* @public */ eventData: Uint8Array | undefined; } /** * @public */ export interface SendWhatsAppConversionEventOutput { /** *

The unique identifier for the conversion event request.

* @public */ requestId: string | undefined; } /** * @public */ export interface UpdateWhatsAppFlowInput { /** *

The ID of the WhatsApp Business Account associated with this Flow.

* @public */ id: string | undefined; /** *

The unique identifier of the Flow to update.

* @public */ flowId: string | undefined; /** *

The updated name for the Flow.

* @public */ flowName?: string | undefined; /** *

The updated categories for the Flow.

* @public */ categories?: MetaFlowCategory[] | undefined; /** *

The updated HTTPS endpoint for a data exchange Flow.

* @public */ endpointUri?: string | undefined; /** *

The ID of the Meta application to attach to the Flow.

* @public */ metaAppId?: string | undefined; } /** * @public */ export interface UpdateWhatsAppFlowOutput { } /** * @public */ export interface UpdateWhatsAppFlowAssetsInput { /** *

The ID of the WhatsApp Business Account associated with this Flow.

* @public */ id: string | undefined; /** *

The unique identifier of the Flow whose assets to update.

* @public */ flowId: string | undefined; /** *

The updated Flow JSON definition. Maximum size is 10 MB.

* @public */ flowJson: Uint8Array | undefined; } /** * @public */ export interface UpdateWhatsAppFlowAssetsOutput { /** *

A list of validation errors returned by Meta, if any. Validation errors must be resolved before the Flow can be published.

* @public */ validationErrors?: string[] | undefined; } /** * @public */ export interface UpdateWhatsAppMessageTemplateInput { /** *

The ID of the WhatsApp Business Account associated with this template.

* @public */ id: string | undefined; /** *

The numeric ID of the template assigned by Meta.

* @public */ metaTemplateId?: string | undefined; /** *

The name of the message template. Use together with templateLanguageCode as an alternative to metaTemplateId to identify a template.

* @public */ templateName?: string | undefined; /** *

The language code of the message template (for example, en or en_US). Use together with templateName as an alternative to metaTemplateId to identify a template.

* @public */ templateLanguageCode?: string | undefined; /** *

The format specification for parameters in the template, this can be either 'named' or 'positional'.

* @public */ parameterFormat?: string | undefined; /** *

The new category for the template (for example, UTILITY or MARKETING).

* @public */ templateCategory?: string | undefined; /** *

The updated components of the template as a JSON blob (maximum 3000 characters).

* @public */ templateComponents?: Uint8Array | undefined; /** *

When true, disables click tracking for call-to-action URL buttons in the template.

* @public */ ctaUrlLinkTrackingOptedOut?: boolean | undefined; } /** * @public */ export interface UpdateWhatsAppMessageTemplateOutput { } /** * @public */ export interface PostWhatsAppMessageMediaInput { /** *

The ID of the phone number to associate with the WhatsApp media file. The phone number * identifiers are formatted as phone-number-id-01234567890123456789012345678901. * Use GetLinkedWhatsAppBusinessAccount * to find a phone number's id.

* @public */ originationPhoneNumberId: string | undefined; /** *

The source presign url of the media file.

* @public */ sourceS3PresignedUrl?: S3PresignedUrl | undefined; /** *

The source S3 url for the media file.

* @public */ sourceS3File?: S3File | undefined; } /** * @public */ export interface PostWhatsAppMessageMediaOutput { /** *

The unique identifier of the posted WhatsApp message.

* @public */ mediaId?: string | undefined; } /** * @public */ export interface PutWhatsAppBusinessPublicKeyInput { /** *

The unique identifier of the phone number to associate with the business public key.

* @public */ originationPhoneNumberId: string | undefined; /** *

The PEM-encoded 2048-bit RSA public key to set. Mutually exclusive with kmsKeyArn.

* @public */ businessPublicKey?: string | undefined; /** *

The ARN of a customer managed asymmetric RSA key in Amazon Web Services KMS. Mutually exclusive with businessPublicKey.

* @public */ kmsKeyArn?: string | undefined; } /** * @public */ export interface PutWhatsAppBusinessPublicKeyOutput { } /** * @public */ export interface SendWhatsAppCallEventInput { /** *

The unique identifier of the origination phone number for the call. The phone number identifiers are formatted as phone-number-id-01234567890123456789012345678901. Use GetLinkedWhatsAppBusinessAccount to find a phone number's ID.

* @public */ originationPhoneNumberId: string | undefined; /** *

The version of the Meta Graph API to use for the request.

* @public */ metaApiVersion: string | undefined; /** *

The call event payload to send, as a JSON blob in the format defined by the Meta calling API.

* @public */ callEvent: Uint8Array | undefined; } /** * @public */ export interface SendWhatsAppCallEventOutput { /** *

The unique identifier that Meta assigns to the call.

* @public */ callId: string | undefined; } /** * @public */ export interface SendWhatsAppMessageInput { /** *

The ID of the phone number used to send the WhatsApp message. If you are sending a media * file only the originationPhoneNumberId used to upload the file can be used. * Phone number identifiers are formatted as * phone-number-id-01234567890123456789012345678901. Use * GetLinkedWhatsAppBusinessAccount to find a phone number's * id.

* @public */ originationPhoneNumberId: string | undefined; /** *

The message to send through WhatsApp. The length is in KB. The message field passes through a WhatsApp * Message object, see Messages in the WhatsApp Business Platform Cloud API * Reference.

* @public */ message: Uint8Array | undefined; /** *

The API version for the request formatted as v\{VersionNumber\}. For a list of supported API versions and Amazon Web Services Regions, see * Amazon Web Services End User Messaging Social API Service Endpoints in the Amazon Web Services General Reference.

* @public */ metaApiVersion: string | undefined; } /** * @public */ export interface SendWhatsAppMessageOutput { /** *

The unique identifier of the message.

* @public */ messageId?: string | undefined; } /** * @public */ export interface UpdateLinkedWhatsAppBusinessAccountPhoneNumberInput { /** *

The unique identifier of the phone number to update. The phone number identifiers are formatted as phone-number-id-01234567890123456789012345678901.

* @public */ id: string | undefined; /** *

The calling settings to apply to the phone number.

* @public */ callSettings: WhatsAppCallSettings | undefined; } /** * @public */ export interface UpdateLinkedWhatsAppBusinessAccountPhoneNumberOutput { /** *

The unique identifier of the phone number that was updated.

* @public */ phoneNumberId: string | undefined; } /** * @public */ export interface ListTagsForResourceInput { /** *

The Amazon Resource Name (ARN) of the resource to retrieve the tags from.

* @public */ resourceArn: string | undefined; } /** * @public */ export interface ListTagsForResourceOutput { /** *

The status code of the response.

* @public */ statusCode?: number | undefined; /** *

The tags for the resource.

* @public */ tags?: Tag[] | undefined; } /** * @public */ export interface TagResourceInput { /** *

The Amazon Resource Name (ARN) of the resource to tag.

* @public */ resourceArn: string | undefined; /** *

The tags to add to the resource.

* @public */ tags: Tag[] | undefined; } /** * @public */ export interface TagResourceOutput { /** *

The status code of the tag resource operation.

* @public */ statusCode?: number | undefined; } /** * @public */ export interface UntagResourceInput { /** *

The Amazon Resource Name (ARN) of the resource to remove tags from.

* @public */ resourceArn: string | undefined; /** *

The keys of the tags to remove from the resource.

* @public */ tagKeys: string[] | undefined; } /** * @public */ export interface UntagResourceOutput { /** *

The status code of the untag resource operation.

* @public */ statusCode?: number | undefined; }