import { OrganizationConnectionType } from "../admin-console/enums"; import { OrganizationSponsorshipCreateRequest } from "../admin-console/models/request/organization/organization-sponsorship-create.request"; import { OrganizationSponsorshipRedeemRequest } from "../admin-console/models/request/organization/organization-sponsorship-redeem.request"; import { OrganizationConnectionRequest } from "../admin-console/models/request/organization-connection.request"; import { ProviderAddOrganizationRequest } from "../admin-console/models/request/provider/provider-add-organization.request"; import { ProviderOrganizationCreateRequest } from "../admin-console/models/request/provider/provider-organization-create.request"; import { ProviderUserAcceptRequest } from "../admin-console/models/request/provider/provider-user-accept.request"; import { ProviderUserBulkConfirmRequest } from "../admin-console/models/request/provider/provider-user-bulk-confirm.request"; import { ProviderUserBulkRequest } from "../admin-console/models/request/provider/provider-user-bulk.request"; import { ProviderUserConfirmRequest } from "../admin-console/models/request/provider/provider-user-confirm.request"; import { ProviderUserInviteRequest } from "../admin-console/models/request/provider/provider-user-invite.request"; import { ProviderUserUpdateRequest } from "../admin-console/models/request/provider/provider-user-update.request"; import { SelectionReadOnlyRequest } from "../admin-console/models/request/selection-read-only.request"; import { OrganizationConnectionConfigApis, OrganizationConnectionResponse, } from "../admin-console/models/response/organization-connection.response"; import { OrganizationExportResponse } from "../admin-console/models/response/organization-export.response"; import { OrganizationSponsorshipSyncStatusResponse } from "../admin-console/models/response/organization-sponsorship-sync-status.response"; import { ProviderOrganizationOrganizationDetailsResponse, ProviderOrganizationResponse, } from "../admin-console/models/response/provider/provider-organization.response"; import { ProviderUserBulkPublicKeyResponse } from "../admin-console/models/response/provider/provider-user-bulk-public-key.response"; import { ProviderUserBulkResponse } from "../admin-console/models/response/provider/provider-user-bulk.response"; import { ProviderUserResponse, ProviderUserUserDetailsResponse, } from "../admin-console/models/response/provider/provider-user.response"; import { SelectionReadOnlyResponse } from "../admin-console/models/response/selection-read-only.response"; import { CreateAuthRequest } from "../auth/models/request/create-auth.request"; import { DeviceVerificationRequest } from "../auth/models/request/device-verification.request"; import { EmailTokenRequest } from "../auth/models/request/email-token.request"; import { EmailRequest } from "../auth/models/request/email.request"; import { PasswordTokenRequest } from "../auth/models/request/identity-token/password-token.request"; import { SsoTokenRequest } from "../auth/models/request/identity-token/sso-token.request"; import { UserApiTokenRequest } from "../auth/models/request/identity-token/user-api-token.request"; import { WebAuthnLoginTokenRequest } from "../auth/models/request/identity-token/webauthn-login-token.request"; import { KeyConnectorUserKeyRequest } from "../auth/models/request/key-connector-user-key.request"; import { PasswordHintRequest } from "../auth/models/request/password-hint.request"; import { PasswordRequest } from "../auth/models/request/password.request"; import { PasswordlessAuthRequest } from "../auth/models/request/passwordless-auth.request"; import { SecretVerificationRequest } from "../auth/models/request/secret-verification.request"; import { SetKeyConnectorKeyRequest } from "../auth/models/request/set-key-connector-key.request"; import { SetPasswordRequest } from "../auth/models/request/set-password.request"; import { TwoFactorEmailRequest } from "../auth/models/request/two-factor-email.request"; import { TwoFactorProviderRequest } from "../auth/models/request/two-factor-provider.request"; import { TwoFactorRecoveryRequest } from "../auth/models/request/two-factor-recovery.request"; import { UpdateProfileRequest } from "../auth/models/request/update-profile.request"; import { UpdateTempPasswordRequest } from "../auth/models/request/update-temp-password.request"; import { UpdateTwoFactorAuthenticatorRequest } from "../auth/models/request/update-two-factor-authenticator.request"; import { UpdateTwoFactorDuoRequest } from "../auth/models/request/update-two-factor-duo.request"; import { UpdateTwoFactorEmailRequest } from "../auth/models/request/update-two-factor-email.request"; import { UpdateTwoFactorWebAuthnDeleteRequest } from "../auth/models/request/update-two-factor-web-authn-delete.request"; import { UpdateTwoFactorWebAuthnRequest } from "../auth/models/request/update-two-factor-web-authn.request"; import { UpdateTwoFactorYubioOtpRequest } from "../auth/models/request/update-two-factor-yubio-otp.request"; import { ApiKeyResponse } from "../auth/models/response/api-key.response"; import { AuthRequestResponse } from "../auth/models/response/auth-request.response"; import { DeviceVerificationResponse } from "../auth/models/response/device-verification.response"; import { IdentityCaptchaResponse } from "../auth/models/response/identity-captcha.response"; import { IdentityTokenResponse } from "../auth/models/response/identity-token.response"; import { IdentityTwoFactorResponse } from "../auth/models/response/identity-two-factor.response"; import { KeyConnectorUserKeyResponse } from "../auth/models/response/key-connector-user-key.response"; import { MasterPasswordPolicyResponse } from "../auth/models/response/master-password-policy.response"; import { PreloginResponse } from "../auth/models/response/prelogin.response"; import { RegisterResponse } from "../auth/models/response/register.response"; import { SsoPreValidateResponse } from "../auth/models/response/sso-pre-validate.response"; import { TwoFactorAuthenticatorResponse } from "../auth/models/response/two-factor-authenticator.response"; import { TwoFactorDuoResponse } from "../auth/models/response/two-factor-duo.response"; import { TwoFactorEmailResponse } from "../auth/models/response/two-factor-email.response"; import { TwoFactorProviderResponse } from "../auth/models/response/two-factor-provider.response"; import { TwoFactorRecoverResponse } from "../auth/models/response/two-factor-recover.response"; import { ChallengeResponse, TwoFactorWebAuthnResponse, } from "../auth/models/response/two-factor-web-authn.response"; import { TwoFactorYubiKeyResponse } from "../auth/models/response/two-factor-yubi-key.response"; import { BitPayInvoiceRequest } from "../billing/models/request/bit-pay-invoice.request"; import { PaymentRequest } from "../billing/models/request/payment.request"; import { TaxInfoUpdateRequest } from "../billing/models/request/tax-info-update.request"; import { BillingHistoryResponse } from "../billing/models/response/billing-history.response"; import { BillingPaymentResponse } from "../billing/models/response/billing-payment.response"; import { PaymentResponse } from "../billing/models/response/payment.response"; import { PlanResponse } from "../billing/models/response/plan.response"; import { SubscriptionResponse } from "../billing/models/response/subscription.response"; import { TaxInfoResponse } from "../billing/models/response/tax-info.response"; import { TaxRateResponse } from "../billing/models/response/tax-rate.response"; import { DeleteRecoverRequest } from "../models/request/delete-recover.request"; import { EventRequest } from "../models/request/event.request"; import { KdfRequest } from "../models/request/kdf.request"; import { KeysRequest } from "../models/request/keys.request"; import { OrganizationImportRequest } from "../models/request/organization-import.request"; import { PreloginRequest } from "../models/request/prelogin.request"; import { RegisterRequest } from "../models/request/register.request"; import { StorageRequest } from "../models/request/storage.request"; import { UpdateAvatarRequest } from "../models/request/update-avatar.request"; import { UpdateDomainsRequest } from "../models/request/update-domains.request"; import { VerifyDeleteRecoverRequest } from "../models/request/verify-delete-recover.request"; import { VerifyEmailRequest } from "../models/request/verify-email.request"; import { BreachAccountResponse } from "../models/response/breach-account.response"; import { DomainsResponse } from "../models/response/domains.response"; import { EventResponse } from "../models/response/event.response"; import { ListResponse } from "../models/response/list.response"; import { ProfileResponse } from "../models/response/profile.response"; import { UserKeyResponse } from "../models/response/user-key.response"; import { AttachmentRequest } from "../vault/models/request/attachment.request"; import { CipherBulkDeleteRequest } from "../vault/models/request/cipher-bulk-delete.request"; import { CipherBulkMoveRequest } from "../vault/models/request/cipher-bulk-move.request"; import { CipherBulkRestoreRequest } from "../vault/models/request/cipher-bulk-restore.request"; import { CipherBulkShareRequest } from "../vault/models/request/cipher-bulk-share.request"; import { CipherCollectionsRequest } from "../vault/models/request/cipher-collections.request"; import { CipherCreateRequest } from "../vault/models/request/cipher-create.request"; import { CipherPartialRequest } from "../vault/models/request/cipher-partial.request"; import { CipherShareRequest } from "../vault/models/request/cipher-share.request"; import { CipherRequest } from "../vault/models/request/cipher.request"; import { CollectionRequest } from "../vault/models/request/collection.request"; import { AttachmentUploadDataResponse } from "../vault/models/response/attachment-upload-data.response"; import { AttachmentResponse } from "../vault/models/response/attachment.response"; import { CipherResponse } from "../vault/models/response/cipher.response"; import { CollectionAccessDetailsResponse, CollectionDetailsResponse, CollectionResponse, } from "../vault/models/response/collection.response"; import { SyncResponse } from "../vault/models/response/sync.response"; /** * @deprecated The `ApiService` class is deprecated and calls should be extracted into individual * api services. The `send` method is still allowed to be used within api services. For background * of this decision please read https://contributing.bitwarden.com/architecture/adr/refactor-api-service. */ export abstract class ApiService { send: ( method: "GET" | "POST" | "PUT" | "DELETE", path: string, body: any, authed: boolean, hasResponse: boolean, apiUrl?: string, alterHeaders?: (headers: Headers) => void, ) => Promise; postIdentityToken: ( request: | PasswordTokenRequest | SsoTokenRequest | UserApiTokenRequest | WebAuthnLoginTokenRequest, ) => Promise; refreshIdentityToken: () => Promise; getProfile: () => Promise; getUserSubscription: () => Promise; getTaxInfo: () => Promise; putProfile: (request: UpdateProfileRequest) => Promise; putAvatar: (request: UpdateAvatarRequest) => Promise; putTaxInfo: (request: TaxInfoUpdateRequest) => Promise; postPrelogin: (request: PreloginRequest) => Promise; postEmailToken: (request: EmailTokenRequest) => Promise; postEmail: (request: EmailRequest) => Promise; postPassword: (request: PasswordRequest) => Promise; setPassword: (request: SetPasswordRequest) => Promise; postSetKeyConnectorKey: (request: SetKeyConnectorKeyRequest) => Promise; postSecurityStamp: (request: SecretVerificationRequest) => Promise; getAccountRevisionDate: () => Promise; postPasswordHint: (request: PasswordHintRequest) => Promise; postRegister: (request: RegisterRequest) => Promise; postPremium: (data: FormData) => Promise; postReinstatePremium: () => Promise; postAccountStorage: (request: StorageRequest) => Promise; postAccountPayment: (request: PaymentRequest) => Promise; postAccountLicense: (data: FormData) => Promise; postAccountKeys: (request: KeysRequest) => Promise; postAccountVerifyEmail: () => Promise; postAccountVerifyEmailToken: (request: VerifyEmailRequest) => Promise; postAccountVerifyPassword: ( request: SecretVerificationRequest, ) => Promise; postAccountRecoverDelete: (request: DeleteRecoverRequest) => Promise; postAccountRecoverDeleteToken: (request: VerifyDeleteRecoverRequest) => Promise; postAccountKdf: (request: KdfRequest) => Promise; postUserApiKey: (id: string, request: SecretVerificationRequest) => Promise; postUserRotateApiKey: (id: string, request: SecretVerificationRequest) => Promise; putUpdateTempPassword: (request: UpdateTempPasswordRequest) => Promise; postConvertToKeyConnector: () => Promise; //passwordless postAuthRequest: (request: CreateAuthRequest) => Promise; postAdminAuthRequest: (request: CreateAuthRequest) => Promise; getAuthResponse: (id: string, accessCode: string) => Promise; getAuthRequest: (id: string) => Promise; putAuthRequest: (id: string, request: PasswordlessAuthRequest) => Promise; getAuthRequests: () => Promise>; getLastAuthRequest: () => Promise; getUserBillingHistory: () => Promise; getUserBillingPayment: () => Promise; getCipher: (id: string) => Promise; getFullCipherDetails: (id: string) => Promise; getCipherAdmin: (id: string) => Promise; getAttachmentData: ( cipherId: string, attachmentId: string, emergencyAccessId?: string, ) => Promise; getCiphersOrganization: (organizationId: string) => Promise>; postCipher: (request: CipherRequest) => Promise; postCipherCreate: (request: CipherCreateRequest) => Promise; postCipherAdmin: (request: CipherCreateRequest) => Promise; putCipher: (id: string, request: CipherRequest) => Promise; putPartialCipher: (id: string, request: CipherPartialRequest) => Promise; putCipherAdmin: (id: string, request: CipherRequest) => Promise; deleteCipher: (id: string) => Promise; deleteCipherAdmin: (id: string) => Promise; deleteManyCiphers: (request: CipherBulkDeleteRequest) => Promise; deleteManyCiphersAdmin: (request: CipherBulkDeleteRequest) => Promise; putMoveCiphers: (request: CipherBulkMoveRequest) => Promise; putShareCipher: (id: string, request: CipherShareRequest) => Promise; putShareCiphers: (request: CipherBulkShareRequest) => Promise; putCipherCollections: (id: string, request: CipherCollectionsRequest) => Promise; putCipherCollectionsAdmin: (id: string, request: CipherCollectionsRequest) => Promise; postPurgeCiphers: (request: SecretVerificationRequest, organizationId?: string) => Promise; putDeleteCipher: (id: string) => Promise; putDeleteCipherAdmin: (id: string) => Promise; putDeleteManyCiphers: (request: CipherBulkDeleteRequest) => Promise; putDeleteManyCiphersAdmin: (request: CipherBulkDeleteRequest) => Promise; putRestoreCipher: (id: string) => Promise; putRestoreCipherAdmin: (id: string) => Promise; putRestoreManyCiphers: ( request: CipherBulkRestoreRequest, ) => Promise>; putRestoreManyCiphersAdmin: ( request: CipherBulkRestoreRequest, ) => Promise>; /** * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads. * This method still exists for backward compatibility with old server versions. */ postCipherAttachmentLegacy: (id: string, data: FormData) => Promise; /** * @deprecated Mar 25 2021: This method has been deprecated in favor of direct uploads. * This method still exists for backward compatibility with old server versions. */ postCipherAttachmentAdminLegacy: (id: string, data: FormData) => Promise; postCipherAttachment: ( id: string, request: AttachmentRequest, ) => Promise; deleteCipherAttachment: (id: string, attachmentId: string) => Promise; deleteCipherAttachmentAdmin: (id: string, attachmentId: string) => Promise; postShareCipherAttachment: ( id: string, attachmentId: string, data: FormData, organizationId: string, ) => Promise; renewAttachmentUploadUrl: ( id: string, attachmentId: string, ) => Promise; postAttachmentFile: (id: string, attachmentId: string, data: FormData) => Promise; getUserCollections: () => Promise>; getCollections: (organizationId: string) => Promise>; getCollectionUsers: (organizationId: string, id: string) => Promise; getCollectionAccessDetails: ( organizationId: string, id: string, ) => Promise; getManyCollectionsWithAccessDetails: ( orgId: string, ) => Promise>; postCollection: ( organizationId: string, request: CollectionRequest, ) => Promise; putCollectionUsers: ( organizationId: string, id: string, request: SelectionReadOnlyRequest[], ) => Promise; putCollection: ( organizationId: string, id: string, request: CollectionRequest, ) => Promise; deleteCollection: (organizationId: string, id: string) => Promise; deleteManyCollections: (organizationId: string, collectionIds: string[]) => Promise; deleteCollectionUser: ( organizationId: string, id: string, organizationUserId: string, ) => Promise; getGroupUsers: (organizationId: string, id: string) => Promise; deleteGroupUser: (organizationId: string, id: string, organizationUserId: string) => Promise; getSync: () => Promise; postPublicImportDirectory: (request: OrganizationImportRequest) => Promise; getSettingsDomains: () => Promise; putSettingsDomains: (request: UpdateDomainsRequest) => Promise; getTwoFactorProviders: () => Promise>; getTwoFactorOrganizationProviders: ( organizationId: string, ) => Promise>; getTwoFactorAuthenticator: ( request: SecretVerificationRequest, ) => Promise; getTwoFactorEmail: (request: SecretVerificationRequest) => Promise; getTwoFactorDuo: (request: SecretVerificationRequest) => Promise; getTwoFactorOrganizationDuo: ( organizationId: string, request: SecretVerificationRequest, ) => Promise; getTwoFactorYubiKey: (request: SecretVerificationRequest) => Promise; getTwoFactorWebAuthn: (request: SecretVerificationRequest) => Promise; getTwoFactorWebAuthnChallenge: (request: SecretVerificationRequest) => Promise; getTwoFactorRecover: (request: SecretVerificationRequest) => Promise; putTwoFactorAuthenticator: ( request: UpdateTwoFactorAuthenticatorRequest, ) => Promise; putTwoFactorEmail: (request: UpdateTwoFactorEmailRequest) => Promise; putTwoFactorDuo: (request: UpdateTwoFactorDuoRequest) => Promise; putTwoFactorOrganizationDuo: ( organizationId: string, request: UpdateTwoFactorDuoRequest, ) => Promise; putTwoFactorYubiKey: ( request: UpdateTwoFactorYubioOtpRequest, ) => Promise; putTwoFactorWebAuthn: ( request: UpdateTwoFactorWebAuthnRequest, ) => Promise; deleteTwoFactorWebAuthn: ( request: UpdateTwoFactorWebAuthnDeleteRequest, ) => Promise; putTwoFactorDisable: (request: TwoFactorProviderRequest) => Promise; putTwoFactorOrganizationDisable: ( organizationId: string, request: TwoFactorProviderRequest, ) => Promise; postTwoFactorRecover: (request: TwoFactorRecoveryRequest) => Promise; postTwoFactorEmailSetup: (request: TwoFactorEmailRequest) => Promise; postTwoFactorEmail: (request: TwoFactorEmailRequest) => Promise; getDeviceVerificationSettings: () => Promise; putDeviceVerificationSettings: ( request: DeviceVerificationRequest, ) => Promise; getCloudCommunicationsEnabled: () => Promise; abstract getOrganizationConnection( id: string, type: OrganizationConnectionType, configType: { new (response: any): TConfig }, ): Promise>; abstract createOrganizationConnection( request: OrganizationConnectionRequest, configType: { new (response: any): TConfig }, ): Promise>; abstract updateOrganizationConnection( request: OrganizationConnectionRequest, configType: { new (response: any): TConfig }, organizationConnectionId: string, ): Promise>; deleteOrganizationConnection: (id: string) => Promise; getPlans: () => Promise>; getTaxRates: () => Promise>; getProviderUsers: (providerId: string) => Promise>; getProviderUser: (providerId: string, id: string) => Promise; postProviderUserInvite: (providerId: string, request: ProviderUserInviteRequest) => Promise; postProviderUserReinvite: (providerId: string, id: string) => Promise; postManyProviderUserReinvite: ( providerId: string, request: ProviderUserBulkRequest, ) => Promise>; postProviderUserAccept: ( providerId: string, id: string, request: ProviderUserAcceptRequest, ) => Promise; postProviderUserConfirm: ( providerId: string, id: string, request: ProviderUserConfirmRequest, ) => Promise; postProviderUsersPublicKey: ( providerId: string, request: ProviderUserBulkRequest, ) => Promise>; postProviderUserBulkConfirm: ( providerId: string, request: ProviderUserBulkConfirmRequest, ) => Promise>; putProviderUser: ( providerId: string, id: string, request: ProviderUserUpdateRequest, ) => Promise; deleteProviderUser: (organizationId: string, id: string) => Promise; deleteManyProviderUsers: ( providerId: string, request: ProviderUserBulkRequest, ) => Promise>; getProviderClients: ( providerId: string, ) => Promise>; postProviderAddOrganization: ( providerId: string, request: ProviderAddOrganizationRequest, ) => Promise; postProviderCreateOrganization: ( providerId: string, request: ProviderOrganizationCreateRequest, ) => Promise; deleteProviderOrganization: (providerId: string, organizationId: string) => Promise; getEvents: (start: string, end: string, token: string) => Promise>; getEventsCipher: ( id: string, start: string, end: string, token: string, ) => Promise>; getEventsOrganization: ( id: string, start: string, end: string, token: string, ) => Promise>; getEventsOrganizationUser: ( organizationId: string, id: string, start: string, end: string, token: string, ) => Promise>; getEventsProvider: ( id: string, start: string, end: string, token: string, ) => Promise>; getEventsProviderUser: ( providerId: string, id: string, start: string, end: string, token: string, ) => Promise>; postEventsCollect: (request: EventRequest[]) => Promise; deleteSsoUser: (organizationId: string) => Promise; getSsoUserIdentifier: () => Promise; getUserPublicKey: (id: string) => Promise; getHibpBreach: (username: string) => Promise; postBitPayInvoice: (request: BitPayInvoiceRequest) => Promise; postSetupPayment: () => Promise; getActiveBearerToken: () => Promise; fetch: (request: Request) => Promise; nativeFetch: (request: Request) => Promise; preValidateSso: (identifier: string) => Promise; postCreateSponsorship: ( sponsorshipOrgId: string, request: OrganizationSponsorshipCreateRequest, ) => Promise; getSponsorshipSyncStatus: ( sponsoredOrgId: string, ) => Promise; deleteRevokeSponsorship: (sponsoringOrganizationId: string) => Promise; deleteRemoveSponsorship: (sponsoringOrgId: string) => Promise; postPreValidateSponsorshipToken: (sponsorshipToken: string) => Promise; postRedeemSponsorship: ( sponsorshipToken: string, request: OrganizationSponsorshipRedeemRequest, ) => Promise; postResendSponsorshipOffer: (sponsoringOrgId: string) => Promise; getMasterKeyFromKeyConnector: (keyConnectorUrl: string) => Promise; postUserKeyToKeyConnector: ( keyConnectorUrl: string, request: KeyConnectorUserKeyRequest, ) => Promise; getKeyConnectorAlive: (keyConnectorUrl: string) => Promise; getOrganizationExport: (organizationId: string) => Promise; }