> ## Documentation Index
> Fetch the complete documentation index at: https://docs.photon.codes/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use Stable documentation by default. Honor an explicit Beta request or a URL under /docs/beta/. If the requested version conflicts with the installed CLI package or API origin, clarify the target before writing integration code.
> Pages under /docs/beta/ document Beta; other product pages document Stable. Keep the CLI package, commands, API origin, and credentials within the selected version. State the documentation version in your answer.
> For MCP search, always pass version: Stable or version: Beta. Unfiltered search mixes both versions. For filesystem reads, keep Beta queries under /beta/ and exclude /beta/ from Stable queries; discover paths before reading them.
> The public docs base is https://photon.codes/docs. Convert MCP page paths to public URLs under that base, preserving /beta/ when present. Read https://photon.codes/docs/skill.md for version selection and https://photon.codes/docs/llms.txt for the version indexes.

# Platforms

> The Platforms resource in the TypeScript, Python and Rust clients.

## Methods

<Tabs>
  <Tab title="TypeScript">
    **[List filtered verification codes](/docs/beta/api-client/sdk/projects/platforms/list-filtered-verification-codes)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.listFilteredVerificationCodes(input: ListFilteredVerificationCodesInput, options?: RequestOptions): Promise<ListFilteredVerificationCodesOutput>
    ```

    `GET /v1/projects/{id}/platforms/filtered-otp`

    **[List number area codes](/docs/beta/api-client/sdk/projects/platforms/list-number-area-codes)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.listNumberAreaCodes(input: ListNumberAreaCodesInput, options?: RequestOptions): Promise<ListNumberAreaCodesOutput>
    ```

    `GET /v1/projects/{id}/platforms/sms/numbers/area-codes`

    **[List number countries](/docs/beta/api-client/sdk/projects/platforms/list-number-countries)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.listNumberCountries(input: ListNumberCountriesInput, options?: RequestOptions): Promise<ListNumberCountriesOutput>
    ```

    `GET /v1/projects/{id}/platforms/sms/numbers/countries`

    **[List operations](/docs/beta/api-client/sdk/projects/platforms/list-operations)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.listOperations(input: ListOperationsInput, options?: RequestOptions): Promise<ListOperationsOutput>
    ```

    `GET /v1/projects/{id}/platforms/operations`

    **[List project platforms](/docs/beta/api-client/sdk/projects/platforms/list-project-platforms)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.listProjectPlatforms(input: ListProjectPlatformsInput, options?: RequestOptions): Promise<ListProjectPlatformsOutput>
    ```

    `GET /v1/projects/{id}/platforms`

    **[List a line's filtered verification codes](/docs/beta/api-client/sdk/projects/platforms/list-resource-filtered-verification-codes)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.listResourceFilteredVerificationCodes(input: ListResourceFilteredVerificationCodesInput, options?: RequestOptions): Promise<ListResourceFilteredVerificationCodesOutput>
    ```

    `GET /v1/projects/{id}/platforms/resources/{resourceId}/filtered-otp`

    **[List resources](/docs/beta/api-client/sdk/projects/platforms/list-resources)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.listResources(input: ListResourcesInput, options?: RequestOptions): Promise<ListResourcesOutput>
    ```

    `GET /v1/projects/{id}/platforms/resources`

    **[List Voice profiles](/docs/beta/api-client/sdk/projects/platforms/list-voice-profiles)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.listVoiceProfiles(input: ListVoiceProfilesInput, options?: RequestOptions): Promise<ListVoiceProfilesOutput>
    ```

    `GET /v1/projects/{id}/platforms/voice/profiles`

    **[List WhatsApp account phone numbers](/docs/beta/api-client/sdk/projects/platforms/list-whatsapp-account-phone-numbers)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.listWhatsappAccountPhoneNumbers(input: ListWhatsappAccountPhoneNumbersInput, options?: RequestOptions): Promise<ListWhatsappAccountPhoneNumbersOutput>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp-business/account/phone-numbers`

    **[List WhatsApp shared line assignments](/docs/beta/api-client/sdk/projects/platforms/list-whatsapp-shared-line-assignments)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.listWhatsappSharedLineAssignments(input: ListWhatsappSharedLineAssignmentsInput, options?: RequestOptions): Promise<ListWhatsappSharedLineAssignmentsOutput>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp/assignments`

    **[Count filtered verification codes](/docs/beta/api-client/sdk/projects/platforms/count-filtered-verification-codes)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.countFilteredVerificationCodes(input: CountFilteredVerificationCodesInput, options?: RequestOptions): Promise<CountFilteredVerificationCodesOutput>
    ```

    `GET /v1/projects/{id}/platforms/filtered-otp/count`

    **[Count a line's filtered verification codes](/docs/beta/api-client/sdk/projects/platforms/count-resource-filtered-verification-codes)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.countResourceFilteredVerificationCodes(input: CountResourceFilteredVerificationCodesInput, options?: RequestOptions): Promise<CountResourceFilteredVerificationCodesOutput>
    ```

    `GET /v1/projects/{id}/platforms/resources/{resourceId}/filtered-otp/count`

    **[Get default Voice profile](/docs/beta/api-client/sdk/projects/platforms/get-default-voice-profile)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.getDefaultVoiceProfile(input: GetDefaultVoiceProfileInput, options?: RequestOptions): Promise<GetDefaultVoiceProfileOutput>
    ```

    `GET /v1/projects/{id}/platforms/voice/profiles/default`

    **[Get project iMessage platform](/docs/beta/api-client/sdk/projects/platforms/get-imessage)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.getImessage(input: GetProjectImessagePlatformInput, options?: RequestOptions): Promise<GetProjectImessagePlatformOutput>
    ```

    `GET /v1/projects/{id}/platforms/imessage`

    **[Get operation](/docs/beta/api-client/sdk/projects/platforms/get-operation)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.getOperation(input: GetOperationInput, options?: RequestOptions): Promise<GetOperationOutput>
    ```

    `GET /v1/projects/{id}/platforms/operations/{operationId}`

    **[Get project WhatsApp platform](/docs/beta/api-client/sdk/projects/platforms/get-project-whatsapp-platform)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.getProjectWhatsappPlatform(input: GetProjectWhatsappPlatformInput, options?: RequestOptions): Promise<GetProjectWhatsappPlatformOutput>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp`

    **[Get resource](/docs/beta/api-client/sdk/projects/platforms/get-resource)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.getResource(input: GetResourceInput, options?: RequestOptions): Promise<GetResourceOutput>
    ```

    `GET /v1/projects/{id}/platforms/resources/{resourceId}`

    **[Get SMS line campaign assignment](/docs/beta/api-client/sdk/projects/platforms/get-sms-line-campaign-assignment)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.getSmsLineCampaignAssignment(input: GetSmsLineCampaignAssignmentInput, options?: RequestOptions): Promise<GetSmsLineCampaignAssignmentOutput>
    ```

    `GET /v1/projects/{id}/platforms/sms/lines/{resourceId}/campaign`

    **[Get Voice line profile assignment](/docs/beta/api-client/sdk/projects/platforms/get-voice-line-profile-assignment)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.getVoiceLineProfileAssignment(input: GetVoiceLineProfileAssignmentInput, options?: RequestOptions): Promise<GetVoiceLineProfileAssignmentOutput>
    ```

    `GET /v1/projects/{id}/platforms/voice/lines/{resourceId}/profile`

    **[Get Voice profile](/docs/beta/api-client/sdk/projects/platforms/get-voice-profile)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.getVoiceProfile(input: GetVoiceProfileInput, options?: RequestOptions): Promise<GetVoiceProfileOutput>
    ```

    `GET /v1/projects/{id}/platforms/voice/profiles/{profileId}`

    **[Get WhatsApp Business account](/docs/beta/api-client/sdk/projects/platforms/get-whatsapp-business-account)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.getWhatsappBusinessAccount(input: GetWhatsappBusinessAccountInput, options?: RequestOptions): Promise<GetWhatsappBusinessAccountOutput>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp-business/account`

    **[Get WhatsApp Business verification code](/docs/beta/api-client/sdk/projects/platforms/get-whatsapp-business-verification-code)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.getWhatsappBusinessVerificationCode(input: GetWhatsappBusinessVerificationCodeInput, options?: RequestOptions): Promise<GetWhatsappBusinessVerificationCodeOutput>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp-business/numbers/{resourceId}/verification-code`

    **[Get WhatsApp shared line assignment](/docs/beta/api-client/sdk/projects/platforms/get-whatsapp-shared-line-assignment)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.getWhatsappSharedLineAssignment(input: GetWhatsappSharedLineAssignmentInput, options?: RequestOptions): Promise<GetWhatsappSharedLineAssignmentOutput>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp/assignments/{assignmentId}`

    **[Get WhatsApp signup config](/docs/beta/api-client/sdk/projects/platforms/get-whatsapp-signup-config)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.getWhatsappSignupConfig(input: GetWhatsappSignupConfigInput, options?: RequestOptions): Promise<GetWhatsappSignupConfigOutput>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp-business/signup-config`

    **[Batch update Voice line assignments](/docs/beta/api-client/sdk/projects/platforms/batch-update-voice-line-profile-assignments)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.batchUpdateVoiceLineProfileAssignments(input: BatchUpdateVoiceLineProfileAssignmentsInput, options?: RequestOptions): Promise<BatchUpdateVoiceLineProfileAssignmentsOutput>
    ```

    `POST /v1/projects/{id}/platforms/voice/lines/profile-assignments/batch`

    **[Cancel operation](/docs/beta/api-client/sdk/projects/platforms/cancel-operation)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.cancelOperation(input: CancelOperationInput, options?: RequestOptions): Promise<CancelOperationOutput>
    ```

    `POST /v1/projects/{id}/platforms/operations/{operationId}/cancel`

    **[Connect email domain](/docs/beta/api-client/sdk/projects/platforms/connect-email-domain)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.connectEmailDomain(input: ConnectEmailDomainInput, options?: RequestOptions): Promise<ConnectEmailDomainOutput>
    ```

    `POST /v1/projects/{id}/platforms/email/domains`

    **[Connect Telegram bot](/docs/beta/api-client/sdk/projects/platforms/connect-telegram-bot)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.connectTelegramBot(input: ConnectTelegramBotInput, options?: RequestOptions): Promise<ConnectTelegramBotOutput>
    ```

    `POST /v1/projects/{id}/platforms/telegram/bots`

    **[Connect WhatsApp Business](/docs/beta/api-client/sdk/projects/platforms/connect-whatsapp-business)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.connectWhatsappBusiness(input: ConnectWhatsappBusinessInput, options?: RequestOptions): Promise<ConnectWhatsappBusinessOutput>
    ```

    `POST /v1/projects/{id}/platforms/whatsapp-business/numbers`

    **[Create Voice profile](/docs/beta/api-client/sdk/projects/platforms/create-voice-profile)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.createVoiceProfile(input: CreateVoiceProfileInput, options?: RequestOptions): Promise<CreateVoiceProfileOutput>
    ```

    `POST /v1/projects/{id}/platforms/voice/profiles`

    **[Create WhatsApp shared line assignment](/docs/beta/api-client/sdk/projects/platforms/create-whatsapp-shared-line-assignment)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.createWhatsappSharedLineAssignment(input: CreateWhatsappSharedLineAssignmentInput, options?: RequestOptions): Promise<CreateWhatsappSharedLineAssignmentOutput>
    ```

    `POST /v1/projects/{id}/platforms/whatsapp/assignments`

    **[Create WhatsApp VoIP sender](/docs/beta/api-client/sdk/projects/platforms/create-whatsapp-voip-sender)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.createWhatsappVoipSender(input: CreateWhatsappVoipSenderInput, options?: RequestOptions): Promise<CreateWhatsappVoipSenderOutput>
    ```

    `POST /v1/projects/{id}/platforms/whatsapp-business/account/senders`

    **[Provision dedicated iMessage line](/docs/beta/api-client/sdk/projects/platforms/provision-imessage-dedicated-line)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.provisionImessageDedicatedLine(input: ProvisionImessageDedicatedLineInput, options?: RequestOptions): Promise<ProvisionImessageDedicatedLineOutput>
    ```

    `POST /v1/projects/{id}/platforms/imessage/dedicated`

    **[Provision dedicated WhatsApp line](/docs/beta/api-client/sdk/projects/platforms/provision-whatsapp-dedicated-line)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.provisionWhatsappDedicatedLine(input: ProvisionWhatsappDedicatedLineInput, options?: RequestOptions): Promise<ProvisionWhatsappDedicatedLineOutput>
    ```

    `POST /v1/projects/{id}/platforms/whatsapp/dedicated`

    **[Purchase SMS number](/docs/beta/api-client/sdk/projects/platforms/purchase-sms-number)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.purchaseSmsNumber(input: PurchaseSmsNumberInput, options?: RequestOptions): Promise<PurchaseSmsNumberOutput>
    ```

    `POST /v1/projects/{id}/platforms/sms/numbers`

    **[Rotate Voice outbound credential](/docs/beta/api-client/sdk/projects/platforms/rotate-voice-profile-outbound-credential)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.rotateVoiceProfileOutboundCredential(input: RotateVoiceProfileOutboundCredentialInput, options?: RequestOptions): Promise<RotateVoiceProfileOutboundCredentialOutput>
    ```

    `POST /v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound/rotate`

    **[Assign or replace SMS line campaign](/docs/beta/api-client/sdk/projects/platforms/assign-sms-line-campaign)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.assignSmsLineCampaign(input: AssignSmsLineCampaignInput, options?: RequestOptions): Promise<AssignSmsLineCampaignOutput>
    ```

    `PUT /v1/projects/{id}/platforms/sms/lines/{resourceId}/campaign`

    **[Assign Voice line profile](/docs/beta/api-client/sdk/projects/platforms/assign-voice-line-profile)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.assignVoiceLineProfile(input: AssignVoiceLineProfileInput, options?: RequestOptions): Promise<AssignVoiceLineProfileOutput>
    ```

    `PUT /v1/projects/{id}/platforms/voice/lines/{resourceId}/profile`

    **[Configure Voice outbound credential](/docs/beta/api-client/sdk/projects/platforms/configure-voice-profile-outbound)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.configureVoiceProfileOutbound(input: ConfigureVoiceProfileOutboundInput, options?: RequestOptions): Promise<ConfigureVoiceProfileOutboundOutput>
    ```

    `PUT /v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound`

    **[Create default Voice profile](/docs/beta/api-client/sdk/projects/platforms/create-default-voice-profile)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.createDefaultVoiceProfile(input: CreateDefaultVoiceProfileInput, options?: RequestOptions): Promise<CreateDefaultVoiceProfileOutput>
    ```

    `PUT /v1/projects/{id}/platforms/voice/profiles/default`

    **[Replace Voice inbound configuration](/docs/beta/api-client/sdk/projects/platforms/replace-voice-profile-inbound)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.replaceVoiceProfileInbound(input: ReplaceVoiceProfileInboundInput, options?: RequestOptions): Promise<ReplaceVoiceProfileInboundOutput>
    ```

    `PUT /v1/projects/{id}/platforms/voice/profiles/{profileId}/inbound`

    **[Update default Voice profile](/docs/beta/api-client/sdk/projects/platforms/update-default-voice-profile)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.updateDefaultVoiceProfile(input: UpdateDefaultVoiceProfileInput, options?: RequestOptions): Promise<UpdateDefaultVoiceProfileOutput>
    ```

    `PATCH /v1/projects/{id}/platforms/voice/profiles/default`

    **[Update Voice profile](/docs/beta/api-client/sdk/projects/platforms/update-voice-profile)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.updateVoiceProfile(input: UpdateVoiceProfileInput, options?: RequestOptions): Promise<UpdateVoiceProfileOutput>
    ```

    `PATCH /v1/projects/{id}/platforms/voice/profiles/{profileId}`

    **[Update Voice inbound configuration](/docs/beta/api-client/sdk/projects/platforms/update-voice-profile-inbound)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.updateVoiceProfileInbound(input: UpdateVoiceProfileInboundInput, options?: RequestOptions): Promise<UpdateVoiceProfileInboundOutput>
    ```

    `PATCH /v1/projects/{id}/platforms/voice/profiles/{profileId}/inbound`

    **[Update Voice outbound authentication](/docs/beta/api-client/sdk/projects/platforms/update-voice-profile-outbound-authentication)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.updateVoiceProfileOutboundAuthentication(input: UpdateVoiceProfileOutboundAuthenticationInput, options?: RequestOptions): Promise<UpdateVoiceProfileOutboundAuthenticationOutput>
    ```

    `PATCH /v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound`

    **[Delete Voice profile](/docs/beta/api-client/sdk/projects/platforms/delete-voice-profile)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.deleteVoiceProfile(input: DeleteVoiceProfileInput, options?: RequestOptions): Promise<DeleteVoiceProfileOutput>
    ```

    `DELETE /v1/projects/{id}/platforms/voice/profiles/{profileId}`

    **[Delete Voice inbound configuration](/docs/beta/api-client/sdk/projects/platforms/delete-voice-profile-inbound)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.deleteVoiceProfileInbound(input: DeleteVoiceProfileInboundInput, options?: RequestOptions): Promise<DeleteVoiceProfileInboundOutput>
    ```

    `DELETE /v1/projects/{id}/platforms/voice/profiles/{profileId}/inbound`

    **[Revoke Voice outbound credential](/docs/beta/api-client/sdk/projects/platforms/delete-voice-profile-outbound)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.deleteVoiceProfileOutbound(input: DeleteVoiceProfileOutboundInput, options?: RequestOptions): Promise<DeleteVoiceProfileOutboundOutput>
    ```

    `DELETE /v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound`

    **[Disconnect WhatsApp Business account](/docs/beta/api-client/sdk/projects/platforms/disconnect-whatsapp-business-account)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.disconnectWhatsappBusinessAccount(input: DisconnectWhatsappBusinessAccountInput, options?: RequestOptions): Promise<DisconnectWhatsappBusinessAccountOutput>
    ```

    `DELETE /v1/projects/{id}/platforms/whatsapp-business/account`

    **[Release dedicated iMessage line](/docs/beta/api-client/sdk/projects/platforms/release-imessage-dedicated-line)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.releaseImessageDedicatedLine(input: ReleaseImessageDedicatedLineInput, options?: RequestOptions): Promise<ReleaseImessageDedicatedLineOutput>
    ```

    `DELETE /v1/projects/{id}/platforms/imessage/dedicated/{resourceId}`

    **[Release resource](/docs/beta/api-client/sdk/projects/platforms/release-resource)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.releaseResource(input: ReleaseResourceInput, options?: RequestOptions): Promise<ReleaseResourceOutput>
    ```

    `DELETE /v1/projects/{id}/platforms/resources/{resourceId}`

    **[Release dedicated WhatsApp line](/docs/beta/api-client/sdk/projects/platforms/release-whatsapp-dedicated-line)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.releaseWhatsappDedicatedLine(input: ReleaseWhatsappDedicatedLineInput, options?: RequestOptions): Promise<ReleaseWhatsappDedicatedLineOutput>
    ```

    `DELETE /v1/projects/{id}/platforms/whatsapp/dedicated/{resourceId}`

    **[Release WhatsApp shared line assignment](/docs/beta/api-client/sdk/projects/platforms/release-whatsapp-shared-line-assignment)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.releaseWhatsappSharedLineAssignment(input: ReleaseWhatsappSharedLineAssignmentInput, options?: RequestOptions): Promise<ReleaseWhatsappSharedLineAssignmentOutput>
    ```

    `DELETE /v1/projects/{id}/platforms/whatsapp/assignments/{assignmentId}`

    **[Unassign SMS line campaign](/docs/beta/api-client/sdk/projects/platforms/unassign-sms-line-campaign)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.unassignSmsLineCampaign(input: UnassignSmsLineCampaignInput, options?: RequestOptions): Promise<UnassignSmsLineCampaignOutput>
    ```

    `DELETE /v1/projects/{id}/platforms/sms/lines/{resourceId}/campaign`

    **[Unassign Voice line profile](/docs/beta/api-client/sdk/projects/platforms/unassign-voice-line-profile)**

    ```typescript TypeScript theme={null}
    photon.projects.platforms.unassignVoiceLineProfile(input: UnassignVoiceLineProfileInput, options?: RequestOptions): Promise<UnassignVoiceLineProfileOutput>
    ```

    `DELETE /v1/projects/{id}/platforms/voice/lines/{resourceId}/profile`
  </Tab>

  <Tab title="Python">
    **[List filtered verification codes](/docs/beta/api-client/sdk/projects/platforms/list-filtered-verification-codes)**

    ```python Python theme={null}
    photon.projects.platforms.list_filtered_verification_codes(input: ListFilteredVerificationCodesInput) -> models.FilteredVerificationCodePage
    ```

    `GET /v1/projects/{id}/platforms/filtered-otp`

    **[List number area codes](/docs/beta/api-client/sdk/projects/platforms/list-number-area-codes)**

    ```python Python theme={null}
    photon.projects.platforms.list_number_area_codes(input: ListNumberAreaCodesInput) -> models.ListNumberAreaCodesResponse
    ```

    `GET /v1/projects/{id}/platforms/sms/numbers/area-codes`

    **[List number countries](/docs/beta/api-client/sdk/projects/platforms/list-number-countries)**

    ```python Python theme={null}
    photon.projects.platforms.list_number_countries(input: ListNumberCountriesInput) -> models.ListNumberCountriesResponse
    ```

    `GET /v1/projects/{id}/platforms/sms/numbers/countries`

    **[List operations](/docs/beta/api-client/sdk/projects/platforms/list-operations)**

    ```python Python theme={null}
    photon.projects.platforms.list_operations(input: ListOperationsInput) -> models.OperationPage
    ```

    `GET /v1/projects/{id}/platforms/operations`

    **[List project platforms](/docs/beta/api-client/sdk/projects/platforms/list-project-platforms)**

    ```python Python theme={null}
    photon.projects.platforms.list_project_platforms(input: ListProjectPlatformsInput) -> models.ListProjectPlatformsResponse
    ```

    `GET /v1/projects/{id}/platforms`

    **[List a line's filtered verification codes](/docs/beta/api-client/sdk/projects/platforms/list-resource-filtered-verification-codes)**

    ```python Python theme={null}
    photon.projects.platforms.list_resource_filtered_verification_codes(input: ListResourceFilteredVerificationCodesInput) -> models.FilteredVerificationCodePage
    ```

    `GET /v1/projects/{id}/platforms/resources/{resourceId}/filtered-otp`

    **[List resources](/docs/beta/api-client/sdk/projects/platforms/list-resources)**

    ```python Python theme={null}
    photon.projects.platforms.list_resources(input: ListResourcesInput) -> models.ResourcePage
    ```

    `GET /v1/projects/{id}/platforms/resources`

    **[List Voice profiles](/docs/beta/api-client/sdk/projects/platforms/list-voice-profiles)**

    ```python Python theme={null}
    photon.projects.platforms.list_voice_profiles(input: ListVoiceProfilesInput) -> models.VoiceProfilePage
    ```

    `GET /v1/projects/{id}/platforms/voice/profiles`

    **[List WhatsApp account phone numbers](/docs/beta/api-client/sdk/projects/platforms/list-whatsapp-account-phone-numbers)**

    ```python Python theme={null}
    photon.projects.platforms.list_whatsapp_account_phone_numbers(input: ListWhatsappAccountPhoneNumbersInput) -> models.ListWhatsappAccountPhoneNumbersResponse
    ```

    `GET /v1/projects/{id}/platforms/whatsapp-business/account/phone-numbers`

    **[List WhatsApp shared line assignments](/docs/beta/api-client/sdk/projects/platforms/list-whatsapp-shared-line-assignments)**

    ```python Python theme={null}
    photon.projects.platforms.list_whatsapp_shared_line_assignments(input: ListWhatsappSharedLineAssignmentsInput) -> models.SharedLineAssignmentPage
    ```

    `GET /v1/projects/{id}/platforms/whatsapp/assignments`

    **[Count filtered verification codes](/docs/beta/api-client/sdk/projects/platforms/count-filtered-verification-codes)**

    ```python Python theme={null}
    photon.projects.platforms.count_filtered_verification_codes(input: CountFilteredVerificationCodesInput) -> models.FilteredVerificationCodeCount
    ```

    `GET /v1/projects/{id}/platforms/filtered-otp/count`

    **[Count a line's filtered verification codes](/docs/beta/api-client/sdk/projects/platforms/count-resource-filtered-verification-codes)**

    ```python Python theme={null}
    photon.projects.platforms.count_resource_filtered_verification_codes(input: CountResourceFilteredVerificationCodesInput) -> models.FilteredVerificationCodeCount
    ```

    `GET /v1/projects/{id}/platforms/resources/{resourceId}/filtered-otp/count`

    **[Get default Voice profile](/docs/beta/api-client/sdk/projects/platforms/get-default-voice-profile)**

    ```python Python theme={null}
    photon.projects.platforms.get_default_voice_profile(input: GetDefaultVoiceProfileInput) -> models.VoiceProfile
    ```

    `GET /v1/projects/{id}/platforms/voice/profiles/default`

    **[Get project iMessage platform](/docs/beta/api-client/sdk/projects/platforms/get-imessage)**

    ```python Python theme={null}
    photon.projects.platforms.get_imessage(input: GetProjectImessagePlatformInput) -> models.ProjectPlatformSettings
    ```

    `GET /v1/projects/{id}/platforms/imessage`

    **[Get operation](/docs/beta/api-client/sdk/projects/platforms/get-operation)**

    ```python Python theme={null}
    photon.projects.platforms.get_operation(input: GetOperationInput) -> models.GetOperationResponse
    ```

    `GET /v1/projects/{id}/platforms/operations/{operationId}`

    **[Get project WhatsApp platform](/docs/beta/api-client/sdk/projects/platforms/get-project-whatsapp-platform)**

    ```python Python theme={null}
    photon.projects.platforms.get_project_whatsapp_platform(input: GetProjectWhatsappPlatformInput) -> models.ProjectPlatformSettings
    ```

    `GET /v1/projects/{id}/platforms/whatsapp`

    **[Get resource](/docs/beta/api-client/sdk/projects/platforms/get-resource)**

    ```python Python theme={null}
    photon.projects.platforms.get_resource(input: GetResourceInput) -> models.Resource
    ```

    `GET /v1/projects/{id}/platforms/resources/{resourceId}`

    **[Get SMS line campaign assignment](/docs/beta/api-client/sdk/projects/platforms/get-sms-line-campaign-assignment)**

    ```python Python theme={null}
    photon.projects.platforms.get_sms_line_campaign_assignment(input: GetSmsLineCampaignAssignmentInput) -> models.GetSmsLineCampaignAssignmentResponse
    ```

    `GET /v1/projects/{id}/platforms/sms/lines/{resourceId}/campaign`

    **[Get Voice line profile assignment](/docs/beta/api-client/sdk/projects/platforms/get-voice-line-profile-assignment)**

    ```python Python theme={null}
    photon.projects.platforms.get_voice_line_profile_assignment(input: GetVoiceLineProfileAssignmentInput) -> models.VoiceLineProfileAssignment
    ```

    `GET /v1/projects/{id}/platforms/voice/lines/{resourceId}/profile`

    **[Get Voice profile](/docs/beta/api-client/sdk/projects/platforms/get-voice-profile)**

    ```python Python theme={null}
    photon.projects.platforms.get_voice_profile(input: GetVoiceProfileInput) -> models.VoiceProfile
    ```

    `GET /v1/projects/{id}/platforms/voice/profiles/{profileId}`

    **[Get WhatsApp Business account](/docs/beta/api-client/sdk/projects/platforms/get-whatsapp-business-account)**

    ```python Python theme={null}
    photon.projects.platforms.get_whatsapp_business_account(input: GetWhatsappBusinessAccountInput) -> models.WhatsappBusinessAccount
    ```

    `GET /v1/projects/{id}/platforms/whatsapp-business/account`

    **[Get WhatsApp Business verification code](/docs/beta/api-client/sdk/projects/platforms/get-whatsapp-business-verification-code)**

    ```python Python theme={null}
    photon.projects.platforms.get_whatsapp_business_verification_code(input: GetWhatsappBusinessVerificationCodeInput) -> models.GetWhatsappBusinessVerificationCodeResponse
    ```

    `GET /v1/projects/{id}/platforms/whatsapp-business/numbers/{resourceId}/verification-code`

    **[Get WhatsApp shared line assignment](/docs/beta/api-client/sdk/projects/platforms/get-whatsapp-shared-line-assignment)**

    ```python Python theme={null}
    photon.projects.platforms.get_whatsapp_shared_line_assignment(input: GetWhatsappSharedLineAssignmentInput) -> models.SharedLineAssignment
    ```

    `GET /v1/projects/{id}/platforms/whatsapp/assignments/{assignmentId}`

    **[Get WhatsApp signup config](/docs/beta/api-client/sdk/projects/platforms/get-whatsapp-signup-config)**

    ```python Python theme={null}
    photon.projects.platforms.get_whatsapp_signup_config(input: GetWhatsappSignupConfigInput) -> models.GetWhatsappSignupConfigResponse
    ```

    `GET /v1/projects/{id}/platforms/whatsapp-business/signup-config`

    **[Batch update Voice line assignments](/docs/beta/api-client/sdk/projects/platforms/batch-update-voice-line-profile-assignments)**

    ```python Python theme={null}
    photon.projects.platforms.batch_update_voice_line_profile_assignments(input: BatchUpdateVoiceLineProfileAssignmentsInput) -> models.BatchUpdateVoiceLineProfileAssignmentsResponse
    ```

    `POST /v1/projects/{id}/platforms/voice/lines/profile-assignments/batch`

    **[Cancel operation](/docs/beta/api-client/sdk/projects/platforms/cancel-operation)**

    ```python Python theme={null}
    photon.projects.platforms.cancel_operation(input: CancelOperationInput) -> models.Operation
    ```

    `POST /v1/projects/{id}/platforms/operations/{operationId}/cancel`

    **[Connect email domain](/docs/beta/api-client/sdk/projects/platforms/connect-email-domain)**

    ```python Python theme={null}
    photon.projects.platforms.connect_email_domain(input: ConnectEmailDomainInput) -> models.Operation
    ```

    `POST /v1/projects/{id}/platforms/email/domains`

    **[Connect Telegram bot](/docs/beta/api-client/sdk/projects/platforms/connect-telegram-bot)**

    ```python Python theme={null}
    photon.projects.platforms.connect_telegram_bot(input: ConnectTelegramBotInput) -> models.Operation
    ```

    `POST /v1/projects/{id}/platforms/telegram/bots`

    **[Connect WhatsApp Business](/docs/beta/api-client/sdk/projects/platforms/connect-whatsapp-business)**

    ```python Python theme={null}
    photon.projects.platforms.connect_whatsapp_business(input: ConnectWhatsappBusinessInput) -> models.Operation
    ```

    `POST /v1/projects/{id}/platforms/whatsapp-business/numbers`

    **[Create Voice profile](/docs/beta/api-client/sdk/projects/platforms/create-voice-profile)**

    ```python Python theme={null}
    photon.projects.platforms.create_voice_profile(input: CreateVoiceProfileInput) -> models.VoiceProfile
    ```

    `POST /v1/projects/{id}/platforms/voice/profiles`

    **[Create WhatsApp shared line assignment](/docs/beta/api-client/sdk/projects/platforms/create-whatsapp-shared-line-assignment)**

    ```python Python theme={null}
    photon.projects.platforms.create_whatsapp_shared_line_assignment(input: CreateWhatsappSharedLineAssignmentInput) -> models.SharedLineAssignment
    ```

    `POST /v1/projects/{id}/platforms/whatsapp/assignments`

    **[Create WhatsApp VoIP sender](/docs/beta/api-client/sdk/projects/platforms/create-whatsapp-voip-sender)**

    ```python Python theme={null}
    photon.projects.platforms.create_whatsapp_voip_sender(input: CreateWhatsappVoipSenderInput) -> models.Operation
    ```

    `POST /v1/projects/{id}/platforms/whatsapp-business/account/senders`

    **[Provision dedicated iMessage line](/docs/beta/api-client/sdk/projects/platforms/provision-imessage-dedicated-line)**

    ```python Python theme={null}
    photon.projects.platforms.provision_imessage_dedicated_line(input: ProvisionImessageDedicatedLineInput) -> models.Operation
    ```

    `POST /v1/projects/{id}/platforms/imessage/dedicated`

    **[Provision dedicated WhatsApp line](/docs/beta/api-client/sdk/projects/platforms/provision-whatsapp-dedicated-line)**

    ```python Python theme={null}
    photon.projects.platforms.provision_whatsapp_dedicated_line(input: ProvisionWhatsappDedicatedLineInput) -> models.Operation
    ```

    `POST /v1/projects/{id}/platforms/whatsapp/dedicated`

    **[Purchase SMS number](/docs/beta/api-client/sdk/projects/platforms/purchase-sms-number)**

    ```python Python theme={null}
    photon.projects.platforms.purchase_sms_number(input: PurchaseSmsNumberInput) -> models.Operation
    ```

    `POST /v1/projects/{id}/platforms/sms/numbers`

    **[Rotate Voice outbound credential](/docs/beta/api-client/sdk/projects/platforms/rotate-voice-profile-outbound-credential)**

    ```python Python theme={null}
    photon.projects.platforms.rotate_voice_profile_outbound_credential(input: RotateVoiceProfileOutboundCredentialInput) -> models.RotateVoiceProfileOutboundCredentialResponse
    ```

    `POST /v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound/rotate`

    **[Assign or replace SMS line campaign](/docs/beta/api-client/sdk/projects/platforms/assign-sms-line-campaign)**

    ```python Python theme={null}
    photon.projects.platforms.assign_sms_line_campaign(input: AssignSmsLineCampaignInput) -> models.Operation
    ```

    `PUT /v1/projects/{id}/platforms/sms/lines/{resourceId}/campaign`

    **[Assign Voice line profile](/docs/beta/api-client/sdk/projects/platforms/assign-voice-line-profile)**

    ```python Python theme={null}
    photon.projects.platforms.assign_voice_line_profile(input: AssignVoiceLineProfileInput) -> models.VoiceLineProfileAssignment
    ```

    `PUT /v1/projects/{id}/platforms/voice/lines/{resourceId}/profile`

    **[Configure Voice outbound credential](/docs/beta/api-client/sdk/projects/platforms/configure-voice-profile-outbound)**

    ```python Python theme={null}
    photon.projects.platforms.configure_voice_profile_outbound(input: ConfigureVoiceProfileOutboundInput) -> models.ConfigureVoiceProfileOutboundResponse
    ```

    `PUT /v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound`

    **[Create default Voice profile](/docs/beta/api-client/sdk/projects/platforms/create-default-voice-profile)**

    ```python Python theme={null}
    photon.projects.platforms.create_default_voice_profile(input: CreateDefaultVoiceProfileInput) -> models.VoiceProfile
    ```

    `PUT /v1/projects/{id}/platforms/voice/profiles/default`

    **[Replace Voice inbound configuration](/docs/beta/api-client/sdk/projects/platforms/replace-voice-profile-inbound)**

    ```python Python theme={null}
    photon.projects.platforms.replace_voice_profile_inbound(input: ReplaceVoiceProfileInboundInput) -> models.VoiceProfileInboundConfiguration
    ```

    `PUT /v1/projects/{id}/platforms/voice/profiles/{profileId}/inbound`

    **[Update default Voice profile](/docs/beta/api-client/sdk/projects/platforms/update-default-voice-profile)**

    ```python Python theme={null}
    photon.projects.platforms.update_default_voice_profile(input: UpdateDefaultVoiceProfileInput) -> models.VoiceProfile
    ```

    `PATCH /v1/projects/{id}/platforms/voice/profiles/default`

    **[Update Voice profile](/docs/beta/api-client/sdk/projects/platforms/update-voice-profile)**

    ```python Python theme={null}
    photon.projects.platforms.update_voice_profile(input: UpdateVoiceProfileInput) -> models.VoiceProfile
    ```

    `PATCH /v1/projects/{id}/platforms/voice/profiles/{profileId}`

    **[Update Voice inbound configuration](/docs/beta/api-client/sdk/projects/platforms/update-voice-profile-inbound)**

    ```python Python theme={null}
    photon.projects.platforms.update_voice_profile_inbound(input: UpdateVoiceProfileInboundInput) -> models.VoiceProfileInboundConfiguration
    ```

    `PATCH /v1/projects/{id}/platforms/voice/profiles/{profileId}/inbound`

    **[Update Voice outbound authentication](/docs/beta/api-client/sdk/projects/platforms/update-voice-profile-outbound-authentication)**

    ```python Python theme={null}
    photon.projects.platforms.update_voice_profile_outbound_authentication(input: UpdateVoiceProfileOutboundAuthenticationInput) -> models.UpdateVoiceProfileOutboundAuthenticationResponse
    ```

    `PATCH /v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound`

    **[Delete Voice profile](/docs/beta/api-client/sdk/projects/platforms/delete-voice-profile)**

    ```python Python theme={null}
    photon.projects.platforms.delete_voice_profile(input: DeleteVoiceProfileInput) -> None
    ```

    `DELETE /v1/projects/{id}/platforms/voice/profiles/{profileId}`

    **[Delete Voice inbound configuration](/docs/beta/api-client/sdk/projects/platforms/delete-voice-profile-inbound)**

    ```python Python theme={null}
    photon.projects.platforms.delete_voice_profile_inbound(input: DeleteVoiceProfileInboundInput) -> models.VoiceProfileInboundConfiguration
    ```

    `DELETE /v1/projects/{id}/platforms/voice/profiles/{profileId}/inbound`

    **[Revoke Voice outbound credential](/docs/beta/api-client/sdk/projects/platforms/delete-voice-profile-outbound)**

    ```python Python theme={null}
    photon.projects.platforms.delete_voice_profile_outbound(input: DeleteVoiceProfileOutboundInput) -> models.DeleteVoiceProfileOutboundResponse
    ```

    `DELETE /v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound`

    **[Disconnect WhatsApp Business account](/docs/beta/api-client/sdk/projects/platforms/disconnect-whatsapp-business-account)**

    ```python Python theme={null}
    photon.projects.platforms.disconnect_whatsapp_business_account(input: DisconnectWhatsappBusinessAccountInput) -> models.Operation
    ```

    `DELETE /v1/projects/{id}/platforms/whatsapp-business/account`

    **[Release dedicated iMessage line](/docs/beta/api-client/sdk/projects/platforms/release-imessage-dedicated-line)**

    ```python Python theme={null}
    photon.projects.platforms.release_imessage_dedicated_line(input: ReleaseImessageDedicatedLineInput) -> models.Operation
    ```

    `DELETE /v1/projects/{id}/platforms/imessage/dedicated/{resourceId}`

    **[Release resource](/docs/beta/api-client/sdk/projects/platforms/release-resource)**

    ```python Python theme={null}
    photon.projects.platforms.release_resource(input: ReleaseResourceInput) -> models.Operation
    ```

    `DELETE /v1/projects/{id}/platforms/resources/{resourceId}`

    **[Release dedicated WhatsApp line](/docs/beta/api-client/sdk/projects/platforms/release-whatsapp-dedicated-line)**

    ```python Python theme={null}
    photon.projects.platforms.release_whatsapp_dedicated_line(input: ReleaseWhatsappDedicatedLineInput) -> models.Operation
    ```

    `DELETE /v1/projects/{id}/platforms/whatsapp/dedicated/{resourceId}`

    **[Release WhatsApp shared line assignment](/docs/beta/api-client/sdk/projects/platforms/release-whatsapp-shared-line-assignment)**

    ```python Python theme={null}
    photon.projects.platforms.release_whatsapp_shared_line_assignment(input: ReleaseWhatsappSharedLineAssignmentInput) -> models.SharedLineAssignment
    ```

    `DELETE /v1/projects/{id}/platforms/whatsapp/assignments/{assignmentId}`

    **[Unassign SMS line campaign](/docs/beta/api-client/sdk/projects/platforms/unassign-sms-line-campaign)**

    ```python Python theme={null}
    photon.projects.platforms.unassign_sms_line_campaign(input: UnassignSmsLineCampaignInput) -> models.Operation
    ```

    `DELETE /v1/projects/{id}/platforms/sms/lines/{resourceId}/campaign`

    **[Unassign Voice line profile](/docs/beta/api-client/sdk/projects/platforms/unassign-voice-line-profile)**

    ```python Python theme={null}
    photon.projects.platforms.unassign_voice_line_profile(input: UnassignVoiceLineProfileInput) -> None
    ```

    `DELETE /v1/projects/{id}/platforms/voice/lines/{resourceId}/profile`
  </Tab>

  <Tab title="Rust">
    **[List filtered verification codes](/docs/beta/api-client/sdk/projects/platforms/list-filtered-verification-codes)**

    ```rust Rust theme={null}
    client.list_filtered_verification_codes(id: String, params: Option<ListFilteredVerificationCodesParams>).await -> Result<ResponseValue<types::FilteredVerificationCodePage>, Error<ListFilteredVerificationCodesError>>
    ```

    `GET /v1/projects/{id}/platforms/filtered-otp`

    **[List number area codes](/docs/beta/api-client/sdk/projects/platforms/list-number-area-codes)**

    ```rust Rust theme={null}
    client.list_number_area_codes(id: String, country_code: String).await -> Result<ResponseValue<types::ListNumberAreaCodesResponse>, Error<ListNumberAreaCodesError>>
    ```

    `GET /v1/projects/{id}/platforms/sms/numbers/area-codes`

    **[List number countries](/docs/beta/api-client/sdk/projects/platforms/list-number-countries)**

    ```rust Rust theme={null}
    client.list_number_countries(id: String).await -> Result<ResponseValue<types::ListNumberCountriesResponse>, Error<ListNumberCountriesError>>
    ```

    `GET /v1/projects/{id}/platforms/sms/numbers/countries`

    **[List operations](/docs/beta/api-client/sdk/projects/platforms/list-operations)**

    ```rust Rust theme={null}
    client.list_operations(id: String, params: Option<ListOperationsParams>).await -> Result<ResponseValue<types::OperationPage>, Error<ListOperationsError>>
    ```

    `GET /v1/projects/{id}/platforms/operations`

    **[List project platforms](/docs/beta/api-client/sdk/projects/platforms/list-project-platforms)**

    ```rust Rust theme={null}
    client.list_project_platforms(id: String).await -> Result<ResponseValue<types::ListProjectPlatformsResponse>, Error<ListProjectPlatformsError>>
    ```

    `GET /v1/projects/{id}/platforms`

    **[List a line's filtered verification codes](/docs/beta/api-client/sdk/projects/platforms/list-resource-filtered-verification-codes)**

    ```rust Rust theme={null}
    client.list_resource_filtered_verification_codes(id: String, resource_id: String, params: Option<ListResourceFilteredVerificationCodesParams>).await -> Result<ResponseValue<types::FilteredVerificationCodePage>, Error<ListResourceFilteredVerificationCodesError>>
    ```

    `GET /v1/projects/{id}/platforms/resources/{resourceId}/filtered-otp`

    **[List resources](/docs/beta/api-client/sdk/projects/platforms/list-resources)**

    ```rust Rust theme={null}
    client.list_resources(id: String, params: Option<ListResourcesParams>).await -> Result<ResponseValue<types::ResourcePage>, Error<ListResourcesError>>
    ```

    `GET /v1/projects/{id}/platforms/resources`

    **[List Voice profiles](/docs/beta/api-client/sdk/projects/platforms/list-voice-profiles)**

    ```rust Rust theme={null}
    client.list_voice_profiles(id: String, params: Option<ListVoiceProfilesParams>).await -> Result<ResponseValue<types::VoiceProfilePage>, Error<ListVoiceProfilesError>>
    ```

    `GET /v1/projects/{id}/platforms/voice/profiles`

    **[List WhatsApp account phone numbers](/docs/beta/api-client/sdk/projects/platforms/list-whatsapp-account-phone-numbers)**

    ```rust Rust theme={null}
    client.list_whatsapp_account_phone_numbers(id: String).await -> Result<ResponseValue<types::ListWhatsappAccountPhoneNumbersResponse>, Error<ListWhatsappAccountPhoneNumbersError>>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp-business/account/phone-numbers`

    **[List WhatsApp shared line assignments](/docs/beta/api-client/sdk/projects/platforms/list-whatsapp-shared-line-assignments)**

    ```rust Rust theme={null}
    client.list_whatsapp_shared_line_assignments(id: String, params: Option<ListWhatsappSharedLineAssignmentsParams>).await -> Result<ResponseValue<types::SharedLineAssignmentPage>, Error<ListWhatsappSharedLineAssignmentsError>>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp/assignments`

    **[Count filtered verification codes](/docs/beta/api-client/sdk/projects/platforms/count-filtered-verification-codes)**

    ```rust Rust theme={null}
    client.count_filtered_verification_codes(id: String, params: Option<CountFilteredVerificationCodesParams>).await -> Result<ResponseValue<types::FilteredVerificationCodeCount>, Error<CountFilteredVerificationCodesError>>
    ```

    `GET /v1/projects/{id}/platforms/filtered-otp/count`

    **[Count a line's filtered verification codes](/docs/beta/api-client/sdk/projects/platforms/count-resource-filtered-verification-codes)**

    ```rust Rust theme={null}
    client.count_resource_filtered_verification_codes(id: String, resource_id: String, params: Option<CountResourceFilteredVerificationCodesParams>).await -> Result<ResponseValue<types::FilteredVerificationCodeCount>, Error<CountResourceFilteredVerificationCodesError>>
    ```

    `GET /v1/projects/{id}/platforms/resources/{resourceId}/filtered-otp/count`

    **[Get default Voice profile](/docs/beta/api-client/sdk/projects/platforms/get-default-voice-profile)**

    ```rust Rust theme={null}
    client.get_default_voice_profile(id: String).await -> Result<ResponseValue<types::VoiceProfile>, Error<GetDefaultVoiceProfileError>>
    ```

    `GET /v1/projects/{id}/platforms/voice/profiles/default`

    **[Get project iMessage platform](/docs/beta/api-client/sdk/projects/platforms/get-imessage)**

    ```rust Rust theme={null}
    client.get_project_imessage_platform(id: String).await -> Result<ResponseValue<types::ProjectPlatformSettings>, Error<GetProjectImessagePlatformError>>
    ```

    `GET /v1/projects/{id}/platforms/imessage`

    **[Get operation](/docs/beta/api-client/sdk/projects/platforms/get-operation)**

    ```rust Rust theme={null}
    client.get_operation(id: String, operation_id: String).await -> Result<ResponseValue<types::GetOperationResponse>, Error<GetOperationError>>
    ```

    `GET /v1/projects/{id}/platforms/operations/{operationId}`

    **[Get project WhatsApp platform](/docs/beta/api-client/sdk/projects/platforms/get-project-whatsapp-platform)**

    ```rust Rust theme={null}
    client.get_project_whatsapp_platform(id: String).await -> Result<ResponseValue<types::ProjectPlatformSettings>, Error<GetProjectWhatsappPlatformError>>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp`

    **[Get resource](/docs/beta/api-client/sdk/projects/platforms/get-resource)**

    ```rust Rust theme={null}
    client.get_resource(id: String, resource_id: String).await -> Result<ResponseValue<types::Resource>, Error<GetResourceError>>
    ```

    `GET /v1/projects/{id}/platforms/resources/{resourceId}`

    **[Get SMS line campaign assignment](/docs/beta/api-client/sdk/projects/platforms/get-sms-line-campaign-assignment)**

    ```rust Rust theme={null}
    client.get_sms_line_campaign_assignment(id: String, resource_id: String).await -> Result<ResponseValue<types::GetSmsLineCampaignAssignmentResponse>, Error<GetSmsLineCampaignAssignmentError>>
    ```

    `GET /v1/projects/{id}/platforms/sms/lines/{resourceId}/campaign`

    **[Get Voice line profile assignment](/docs/beta/api-client/sdk/projects/platforms/get-voice-line-profile-assignment)**

    ```rust Rust theme={null}
    client.get_voice_line_profile_assignment(id: String, resource_id: String).await -> Result<ResponseValue<types::VoiceLineProfileAssignment>, Error<GetVoiceLineProfileAssignmentError>>
    ```

    `GET /v1/projects/{id}/platforms/voice/lines/{resourceId}/profile`

    **[Get Voice profile](/docs/beta/api-client/sdk/projects/platforms/get-voice-profile)**

    ```rust Rust theme={null}
    client.get_voice_profile(id: String, profile_id: String).await -> Result<ResponseValue<types::VoiceProfile>, Error<GetVoiceProfileError>>
    ```

    `GET /v1/projects/{id}/platforms/voice/profiles/{profileId}`

    **[Get WhatsApp Business account](/docs/beta/api-client/sdk/projects/platforms/get-whatsapp-business-account)**

    ```rust Rust theme={null}
    client.get_whatsapp_business_account(id: String).await -> Result<ResponseValue<types::WhatsappBusinessAccount>, Error<GetWhatsappBusinessAccountError>>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp-business/account`

    **[Get WhatsApp Business verification code](/docs/beta/api-client/sdk/projects/platforms/get-whatsapp-business-verification-code)**

    ```rust Rust theme={null}
    client.get_whatsapp_business_verification_code(id: String, resource_id: String, received_after: DateTime).await -> Result<ResponseValue<types::GetWhatsappBusinessVerificationCodeResponse>, Error<GetWhatsappBusinessVerificationCodeError>>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp-business/numbers/{resourceId}/verification-code`

    **[Get WhatsApp shared line assignment](/docs/beta/api-client/sdk/projects/platforms/get-whatsapp-shared-line-assignment)**

    ```rust Rust theme={null}
    client.get_whatsapp_shared_line_assignment(assignment_id: String, id: String).await -> Result<ResponseValue<types::SharedLineAssignment>, Error<GetWhatsappSharedLineAssignmentError>>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp/assignments/{assignmentId}`

    **[Get WhatsApp signup config](/docs/beta/api-client/sdk/projects/platforms/get-whatsapp-signup-config)**

    ```rust Rust theme={null}
    client.get_whatsapp_signup_config(id: String).await -> Result<ResponseValue<types::GetWhatsappSignupConfigResponse>, Error<GetWhatsappSignupConfigError>>
    ```

    `GET /v1/projects/{id}/platforms/whatsapp-business/signup-config`

    **[Batch update Voice line assignments](/docs/beta/api-client/sdk/projects/platforms/batch-update-voice-line-profile-assignments)**

    ```rust Rust theme={null}
    client.batch_update_voice_line_profile_assignments(id: String, body: &types::BatchUpdateVoiceLineProfileAssignmentsRequest).await -> Result<ResponseValue<types::BatchUpdateVoiceLineProfileAssignmentsResponse>, Error<BatchUpdateVoiceLineProfileAssignmentsError>>
    ```

    `POST /v1/projects/{id}/platforms/voice/lines/profile-assignments/batch`

    **[Cancel operation](/docs/beta/api-client/sdk/projects/platforms/cancel-operation)**

    ```rust Rust theme={null}
    client.cancel_operation(id: String, operation_id: String).await -> Result<ResponseValue<types::Operation>, Error<CancelOperationError>>
    ```

    `POST /v1/projects/{id}/platforms/operations/{operationId}/cancel`

    **[Connect email domain](/docs/beta/api-client/sdk/projects/platforms/connect-email-domain)**

    ```rust Rust theme={null}
    client.connect_email_domain(idempotency_key: String, id: String, body: &types::ConnectEmailDomainRequest).await -> Result<ResponseValue<types::Operation>, Error<ConnectEmailDomainError>>
    ```

    `POST /v1/projects/{id}/platforms/email/domains`

    **[Connect Telegram bot](/docs/beta/api-client/sdk/projects/platforms/connect-telegram-bot)**

    ```rust Rust theme={null}
    client.connect_telegram_bot(idempotency_key: String, id: String, body: &types::ConnectTelegramBotRequest).await -> Result<ResponseValue<types::Operation>, Error<ConnectTelegramBotError>>
    ```

    `POST /v1/projects/{id}/platforms/telegram/bots`

    **[Connect WhatsApp Business](/docs/beta/api-client/sdk/projects/platforms/connect-whatsapp-business)**

    ```rust Rust theme={null}
    client.connect_whatsapp_business(idempotency_key: String, id: String, body: &types::ConnectWhatsappBusinessRequest).await -> Result<ResponseValue<types::Operation>, Error<ConnectWhatsappBusinessError>>
    ```

    `POST /v1/projects/{id}/platforms/whatsapp-business/numbers`

    **[Create Voice profile](/docs/beta/api-client/sdk/projects/platforms/create-voice-profile)**

    ```rust Rust theme={null}
    client.create_voice_profile(id: String, body: &types::CreateVoiceProfileRequest).await -> Result<ResponseValue<types::VoiceProfile>, Error<CreateVoiceProfileError>>
    ```

    `POST /v1/projects/{id}/platforms/voice/profiles`

    **[Create WhatsApp shared line assignment](/docs/beta/api-client/sdk/projects/platforms/create-whatsapp-shared-line-assignment)**

    ```rust Rust theme={null}
    client.create_whatsapp_shared_line_assignment(idempotency_key: String, id: String, body: &types::CreateWhatsappSharedLineAssignmentRequest).await -> Result<ResponseValue<types::SharedLineAssignment>, Error<CreateWhatsappSharedLineAssignmentError>>
    ```

    `POST /v1/projects/{id}/platforms/whatsapp/assignments`

    **[Create WhatsApp VoIP sender](/docs/beta/api-client/sdk/projects/platforms/create-whatsapp-voip-sender)**

    ```rust Rust theme={null}
    client.create_whatsapp_voip_sender(idempotency_key: String, id: String, body: &types::CreateWhatsappVoipSenderRequest).await -> Result<ResponseValue<types::Operation>, Error<CreateWhatsappVoipSenderError>>
    ```

    `POST /v1/projects/{id}/platforms/whatsapp-business/account/senders`

    **[Provision dedicated iMessage line](/docs/beta/api-client/sdk/projects/platforms/provision-imessage-dedicated-line)**

    ```rust Rust theme={null}
    client.provision_imessage_dedicated_line(idempotency_key: String, id: String).await -> Result<ResponseValue<types::Operation>, Error<ProvisionImessageDedicatedLineError>>
    ```

    `POST /v1/projects/{id}/platforms/imessage/dedicated`

    **[Provision dedicated WhatsApp line](/docs/beta/api-client/sdk/projects/platforms/provision-whatsapp-dedicated-line)**

    ```rust Rust theme={null}
    client.provision_whatsapp_dedicated_line(idempotency_key: String, id: String).await -> Result<ResponseValue<types::Operation>, Error<ProvisionWhatsappDedicatedLineError>>
    ```

    `POST /v1/projects/{id}/platforms/whatsapp/dedicated`

    **[Purchase SMS number](/docs/beta/api-client/sdk/projects/platforms/purchase-sms-number)**

    ```rust Rust theme={null}
    client.purchase_sms_number(idempotency_key: String, id: String, body: &types::PurchaseSmsNumberRequest).await -> Result<ResponseValue<types::Operation>, Error<PurchaseSmsNumberError>>
    ```

    `POST /v1/projects/{id}/platforms/sms/numbers`

    **[Rotate Voice outbound credential](/docs/beta/api-client/sdk/projects/platforms/rotate-voice-profile-outbound-credential)**

    ```rust Rust theme={null}
    client.rotate_voice_profile_outbound_credential(idempotency_key: String, id: String, profile_id: String, body: &types::RotateVoiceProfileOutboundCredentialRequest).await -> Result<ResponseValue<types::RotateVoiceProfileOutboundCredentialResponse>, Error<RotateVoiceProfileOutboundCredentialError>>
    ```

    `POST /v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound/rotate`

    **[Assign or replace SMS line campaign](/docs/beta/api-client/sdk/projects/platforms/assign-sms-line-campaign)**

    ```rust Rust theme={null}
    client.assign_sms_line_campaign(idempotency_key: String, id: String, resource_id: String, body: &types::AssignSmsLineCampaignRequest).await -> Result<ResponseValue<AssignSmsLineCampaignResponse>, Error<AssignSmsLineCampaignError>>
    ```

    `PUT /v1/projects/{id}/platforms/sms/lines/{resourceId}/campaign`

    **[Assign Voice line profile](/docs/beta/api-client/sdk/projects/platforms/assign-voice-line-profile)**

    ```rust Rust theme={null}
    client.assign_voice_line_profile(id: String, resource_id: String, body: &types::AssignVoiceLineProfileRequest).await -> Result<ResponseValue<types::VoiceLineProfileAssignment>, Error<AssignVoiceLineProfileError>>
    ```

    `PUT /v1/projects/{id}/platforms/voice/lines/{resourceId}/profile`

    **[Configure Voice outbound credential](/docs/beta/api-client/sdk/projects/platforms/configure-voice-profile-outbound)**

    ```rust Rust theme={null}
    client.configure_voice_profile_outbound(idempotency_key: String, id: String, profile_id: String, body: &types::ConfigureVoiceProfileOutboundRequest).await -> Result<ResponseValue<ConfigureVoiceProfileOutboundResponse>, Error<ConfigureVoiceProfileOutboundError>>
    ```

    `PUT /v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound`

    **[Create default Voice profile](/docs/beta/api-client/sdk/projects/platforms/create-default-voice-profile)**

    ```rust Rust theme={null}
    client.create_default_voice_profile(id: String, body: &types::CreateDefaultVoiceProfileRequest).await -> Result<ResponseValue<CreateDefaultVoiceProfileResponse>, Error<CreateDefaultVoiceProfileError>>
    ```

    `PUT /v1/projects/{id}/platforms/voice/profiles/default`

    **[Replace Voice inbound configuration](/docs/beta/api-client/sdk/projects/platforms/replace-voice-profile-inbound)**

    ```rust Rust theme={null}
    client.replace_voice_profile_inbound(id: String, profile_id: String, body: &types::ReplaceVoiceProfileInboundRequest).await -> Result<ResponseValue<ReplaceVoiceProfileInboundResponse>, Error<ReplaceVoiceProfileInboundError>>
    ```

    `PUT /v1/projects/{id}/platforms/voice/profiles/{profileId}/inbound`

    **[Update default Voice profile](/docs/beta/api-client/sdk/projects/platforms/update-default-voice-profile)**

    ```rust Rust theme={null}
    client.update_default_voice_profile(id: String, body: &types::UpdateDefaultVoiceProfileRequest).await -> Result<ResponseValue<types::VoiceProfile>, Error<UpdateDefaultVoiceProfileError>>
    ```

    `PATCH /v1/projects/{id}/platforms/voice/profiles/default`

    **[Update Voice profile](/docs/beta/api-client/sdk/projects/platforms/update-voice-profile)**

    ```rust Rust theme={null}
    client.update_voice_profile(id: String, profile_id: String, body: &types::UpdateVoiceProfileRequest).await -> Result<ResponseValue<types::VoiceProfile>, Error<UpdateVoiceProfileError>>
    ```

    `PATCH /v1/projects/{id}/platforms/voice/profiles/{profileId}`

    **[Update Voice inbound configuration](/docs/beta/api-client/sdk/projects/platforms/update-voice-profile-inbound)**

    ```rust Rust theme={null}
    client.update_voice_profile_inbound(id: String, profile_id: String, body: &types::UpdateVoiceProfileInboundRequest).await -> Result<ResponseValue<types::VoiceProfileInboundConfiguration>, Error<UpdateVoiceProfileInboundError>>
    ```

    `PATCH /v1/projects/{id}/platforms/voice/profiles/{profileId}/inbound`

    **[Update Voice outbound authentication](/docs/beta/api-client/sdk/projects/platforms/update-voice-profile-outbound-authentication)**

    ```rust Rust theme={null}
    client.update_voice_profile_outbound_authentication(id: String, profile_id: String, body: &types::UpdateVoiceProfileOutboundAuthenticationRequest).await -> Result<ResponseValue<types::UpdateVoiceProfileOutboundAuthenticationResponse>, Error<UpdateVoiceProfileOutboundAuthenticationError>>
    ```

    `PATCH /v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound`

    **[Delete Voice profile](/docs/beta/api-client/sdk/projects/platforms/delete-voice-profile)**

    ```rust Rust theme={null}
    client.delete_voice_profile(id: String, profile_id: String, expected_version: i64, params: Option<DeleteVoiceProfileParams>).await -> Result<ResponseValue<()>, Error<DeleteVoiceProfileError>>
    ```

    `DELETE /v1/projects/{id}/platforms/voice/profiles/{profileId}`

    **[Delete Voice inbound configuration](/docs/beta/api-client/sdk/projects/platforms/delete-voice-profile-inbound)**

    ```rust Rust theme={null}
    client.delete_voice_profile_inbound(id: String, profile_id: String, expected_version: i64).await -> Result<ResponseValue<types::VoiceProfileInboundConfiguration>, Error<DeleteVoiceProfileInboundError>>
    ```

    `DELETE /v1/projects/{id}/platforms/voice/profiles/{profileId}/inbound`

    **[Revoke Voice outbound credential](/docs/beta/api-client/sdk/projects/platforms/delete-voice-profile-outbound)**

    ```rust Rust theme={null}
    client.delete_voice_profile_outbound(id: String, profile_id: String, expected_version: i64).await -> Result<ResponseValue<types::DeleteVoiceProfileOutboundResponse>, Error<DeleteVoiceProfileOutboundError>>
    ```

    `DELETE /v1/projects/{id}/platforms/voice/profiles/{profileId}/outbound`

    **[Disconnect WhatsApp Business account](/docs/beta/api-client/sdk/projects/platforms/disconnect-whatsapp-business-account)**

    ```rust Rust theme={null}
    client.disconnect_whatsapp_business_account(idempotency_key: String, id: String).await -> Result<ResponseValue<DisconnectWhatsappBusinessAccountResponse>, Error<DisconnectWhatsappBusinessAccountError>>
    ```

    `DELETE /v1/projects/{id}/platforms/whatsapp-business/account`

    **[Release dedicated iMessage line](/docs/beta/api-client/sdk/projects/platforms/release-imessage-dedicated-line)**

    ```rust Rust theme={null}
    client.release_imessage_dedicated_line(id: String, resource_id: String).await -> Result<ResponseValue<ReleaseImessageDedicatedLineResponse>, Error<ReleaseImessageDedicatedLineError>>
    ```

    `DELETE /v1/projects/{id}/platforms/imessage/dedicated/{resourceId}`

    **[Release resource](/docs/beta/api-client/sdk/projects/platforms/release-resource)**

    ```rust Rust theme={null}
    client.release_resource(id: String, resource_id: String).await -> Result<ResponseValue<ReleaseResourceResponse>, Error<ReleaseResourceError>>
    ```

    `DELETE /v1/projects/{id}/platforms/resources/{resourceId}`

    **[Release dedicated WhatsApp line](/docs/beta/api-client/sdk/projects/platforms/release-whatsapp-dedicated-line)**

    ```rust Rust theme={null}
    client.release_whatsapp_dedicated_line(id: String, resource_id: String).await -> Result<ResponseValue<ReleaseWhatsappDedicatedLineResponse>, Error<ReleaseWhatsappDedicatedLineError>>
    ```

    `DELETE /v1/projects/{id}/platforms/whatsapp/dedicated/{resourceId}`

    **[Release WhatsApp shared line assignment](/docs/beta/api-client/sdk/projects/platforms/release-whatsapp-shared-line-assignment)**

    ```rust Rust theme={null}
    client.release_whatsapp_shared_line_assignment(assignment_id: String, id: String).await -> Result<ResponseValue<types::SharedLineAssignment>, Error<ReleaseWhatsappSharedLineAssignmentError>>
    ```

    `DELETE /v1/projects/{id}/platforms/whatsapp/assignments/{assignmentId}`

    **[Unassign SMS line campaign](/docs/beta/api-client/sdk/projects/platforms/unassign-sms-line-campaign)**

    ```rust Rust theme={null}
    client.unassign_sms_line_campaign(idempotency_key: String, id: String, resource_id: String, expected_version: f64).await -> Result<ResponseValue<UnassignSmsLineCampaignResponse>, Error<UnassignSmsLineCampaignError>>
    ```

    `DELETE /v1/projects/{id}/platforms/sms/lines/{resourceId}/campaign`

    **[Unassign Voice line profile](/docs/beta/api-client/sdk/projects/platforms/unassign-voice-line-profile)**

    ```rust Rust theme={null}
    client.unassign_voice_line_profile(id: String, resource_id: String, expected_version: i64).await -> Result<ResponseValue<()>, Error<UnassignVoiceLineProfileError>>
    ```

    `DELETE /v1/projects/{id}/platforms/voice/lines/{resourceId}/profile`
  </Tab>
</Tabs>

## Resources

* [iMessage](/docs/beta/api-client/sdk/projects/platforms/imessage)

## Models

### FilteredVerificationCodePage

<ResponseField name="filteredVerificationCodes" type={"array of FilteredVerificationCode"} required />

<ResponseField name="nextPageToken" type={"string"} />

### ListNumberAreaCodesResponse

<ResponseField name="areaCodes" type={"array of string"} required />

<ResponseField name="countryCode" type={"\"US\""} required />

### ListNumberCountriesResponse

<ResponseField name="countries" type={"array of NumberCountry"} required />

### OperationPage

<ResponseField name="nextPageToken" type={"string"} />

<ResponseField name="operations" type={"array of Operation"} required />

### ListProjectPlatformsResponse

<ResponseField name="platforms" type={"array of SupportedPlatform"} required />

### ResourcePage

<ResponseField name="nextPageToken" type={"string"} />

<ResponseField name="resources" type={"array of Resource"} required />

### VoiceProfilePage

<ResponseField name="nextPageToken" type={"string"} />

<ResponseField name="profiles" type={"array of VoiceProfile"} required />

### ListWhatsappAccountPhoneNumbersResponse

<ResponseField name="phoneNumbers" type={"array of WhatsappAccountPhoneNumber"} required />

<ResponseField name="wabaId" type={"string"} required />

### SharedLineAssignmentPage

<ResponseField name="assignments" type={"array of SharedLineAssignment"} required />

<ResponseField name="nextPageToken" type={"string"} />

### FilteredVerificationCodeCount

<ResponseField name="count" type={"integer"} required />

<ResponseField name="receivedAfter" type={"string (date-time)"} required />

<ResponseField name="receivedBefore" type={"string (date-time)"} required />

### VoiceProfile

<ResponseField name="configuration" type={"VoiceProfileConfiguration"} required />

<ResponseField name="createdAt" type={"string (date-time)"} required />

<ResponseField name="isDefault" type={"boolean"} required />

<ResponseField name="lineCount" type={"integer"} required />

<ResponseField name="mediaEncryption" type={"VoiceProfileMediaEncryption"} required />

<ResponseField name="name" type={"string"} required />

<ResponseField name="profileId" type={"string"} required />

<ResponseField name="projectId" type={"string"} required />

<ResponseField name="protocol" type={"\"sip\""} required />

<ResponseField name="updatedAt" type={"string (date-time)"} required />

<ResponseField name="version" type={"integer"} required />

### ProjectPlatformSettings

**One of: SharedProjectPlatformSettings**

<ResponseField name="dedicatedLineAvailableNow" type={"boolean"} required />

<ResponseField name="maxUserAssignments" type={"integer"} required />

<ResponseField name="mode" type={"\"shared\""} required />

**One of: DedicatedProjectPlatformSettings**

<ResponseField name="dedicatedLineAvailableNow" type={"boolean"} required />

<ResponseField name="mode" type={"\"dedicated\""} required />

### GetOperationResponse

<ResponseField name="operation" type={"Operation"} required />

<ResponseField name="resource" type={"Resource"} />

### Resource

<ResponseField name="abilities" type={"array of string"} required />

<ResponseField name="createdAt" type={"string (date-time)"} required />

<ResponseField name="detail" type={"object"} required />

<ResponseField name="projectId" type={"string"} required />

<ResponseField name="resourceId" type={"string"} required />

<ResponseField name="retiredAt" type={"string (date-time)"} />

<ResponseField name="state" type={"ResourceState"} required />

<ResponseField name="type" type={"string"} required />

<ResponseField name="updatedAt" type={"string (date-time)"} required />

### GetSmsLineCampaignAssignmentResponse

<ResponseField name="campaign" type={"SmsLineCampaign | null"} required />

<ResponseField name="eligibility" type={"SmsLineCampaignEligibility"} required />

<ResponseField name="reasonCode" type={"string | null"} required />

<ResponseField name="resourceId" type={"string"} required />

<ResponseField name="version" type={"integer"} required />

### VoiceLineProfileAssignment

<ResponseField name="profileId" type={"string"} />

<ResponseField name="profileVersion" type={"integer"} />

<ResponseField name="projectId" type={"string"} required />

<ResponseField name="resourceId" type={"string"} required />

<ResponseField name="resourceVersion" type={"integer"} required />

<ResponseField name="updatedAt" type={"string (date-time)"} required />

### WhatsappBusinessAccount

<ResponseField name="accountName" type={"string | null"} required />

<ResponseField name="alerts" type={"array of WhatsappBusinessAccountAlert"} required />

<ResponseField name="businessId" type={"string"} required />

<ResponseField name="businessName" type={"string | null"} required />

<ResponseField name="connectedAt" type={"string (date-time)"} required />

<ResponseField name="maxPhoneNumbersPerBusiness" type={"integer"} />

<ResponseField name="outboundCapacity" type={"WhatsappOutboundCapacity"} required />

<ResponseField name="restriction" type={"WhatsappBusinessAccountRestriction | null"} required />

<ResponseField name="reviewStatus" type={"WhatsappReviewStatus"} required />

<ResponseField name="senderCount" type={"integer"} required />

<ResponseField name="subscribedAt" type={"string (date-time)"} />

<ResponseField name="wabaId" type={"string"} required />

### GetWhatsappBusinessVerificationCodeResponse

<ResponseField name="code" type={"string"} required />

<ResponseField name="receivedAt" type={"string (date-time)"} required />

### SharedLineAssignment

<ResponseField name="assignedPhoneNumber" type={"string"} required />

<ResponseField name="assignmentId" type={"string"} required />

<ResponseField name="createdAt" type={"string (date-time)"} required />

<ResponseField name="email" type={"string"} />

<ResponseField name="firstName" type={"string"} />

<ResponseField name="handle" type={"string"} required />

<ResponseField name="lastName" type={"string"} />

<ResponseField name="platform" type={"SharedLineAssignmentPlatform"} required />

<ResponseField name="projectId" type={"string"} required />

<ResponseField name="releasedAt" type={"string (date-time)"} />

<ResponseField name="updatedAt" type={"string (date-time)"} required />

### GetWhatsappSignupConfigResponse

<ResponseField name="configId" type={"string"} required />

<ResponseField name="graphVersion" type={"string"} required />

<ResponseField name="scopes" type={"array of string"} required />

### BatchUpdateVoiceLineProfileAssignmentsResponse

<ResponseField name="assignments" type={"array of VoiceLineProfileAssignment"} required />

### Operation

<ResponseField name="cancellable" type={"boolean"} required />

<ResponseField name="createdAt" type={"string (date-time)"} required />

<ResponseField name="detail" type={"object"} />

<ResponseField name="endedAt" type={"string (date-time)"} />

<ResponseField name="error" type={"OperationError"} />

<ResponseField name="operationId" type={"string"} required />

<ResponseField name="projectId" type={"string"} required />

<ResponseField name="reason" type={"OperationReason"} />

<ResponseField name="resourceId" type={"string"} />

<ResponseField name="resourceType" type={"string"} required />

<ResponseField name="startedAt" type={"string (date-time)"} />

<ResponseField name="state" type={"OperationState"} required />

<ResponseField name="type" type={"OperationType"} required />

<ResponseField name="updatedAt" type={"string (date-time)"} required />

### RotateVoiceProfileOutboundCredentialResponse

<ResponseField name="password" type={"string | null"} required />

<ResponseField name="previousPasswordValidUntil" type={"string (date-time) | null"} required />

<ResponseField name="profileVersion" type={"integer"} required />

### ConfigureVoiceProfileOutboundResponse

<ResponseField name="outbound" type={"SipOutboundConfiguration"} required />

<ResponseField name="password" type={"string | null"} required />

<ResponseField name="profileVersion" type={"integer"} required />

### VoiceProfileInboundConfiguration

<ResponseField name="inbound" type={"SipInboundConfiguration | null"} required />

<ResponseField name="profileVersion" type={"integer"} required />

### UpdateVoiceProfileOutboundAuthenticationResponse

<ResponseField name="outbound" type={"SipOutboundConfiguration"} required />

<ResponseField name="profileVersion" type={"integer"} required />

### DeleteVoiceProfileOutboundResponse

<ResponseField name="outbound" type={"null"} required />

<ResponseField name="profileVersion" type={"integer"} required />


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.