import type { components, operations, paths } from "./schema.ts"; import type { JsonMap, JsonValue } from "./util.ts"; import type { AuditLogEntry } from "./audit_log.ts"; export type schemas = components["schemas"]; export type UserInfo = schemas["UserInfo"]; export type UserInOrgMembership = schemas["UserInOrgMembership"]; export type ConfiguredMfa = schemas["ConfiguredMfa"]; export type RatchetConfig = schemas["RatchetConfig"]; export type IdentityProof = schemas["IdentityProof"]; export type AddIdentityRequest = schemas["AddIdentityRequest"]; export type ListIdentityResponse = schemas["ListIdentitiesResponse"]; export type TotpInfo = schemas["TotpInfo"]; export type OidcAuthResponse = schemas["NewSessionResponse"]; export type ApiAddFidoChallenge = schemas["FidoCreateChallengeResponse"]; export type ApiMfaFidoChallenge = schemas["FidoAssertChallenge"]; export type PublicKeyCredentialCreationOptions = schemas["PublicKeyCredentialCreationOptions"]; export type PublicKeyCredentialRequestOptions = schemas["PublicKeyCredentialRequestOptions"]; export type PublicKeyCredentialParameters = schemas["PublicKeyCredentialParameters"]; export type PublicKeyCredentialDescriptor = schemas["PublicKeyCredentialDescriptor"]; export type AuthenticatorSelectionCriteria = schemas["AuthenticatorSelectionCriteria"]; export type PublicKeyCredentialUserEntity = schemas["PublicKeyCredentialUserEntity"]; export type PublicKeyCredential = schemas["PublicKeyCredential"]; export type OrgInfo = schemas["OrgInfo"]; export type OrgExtData = NonNullable; export type PublicOrgInfo = schemas["PublicOrgInfo"]; export type UserInOrgInfo = schemas["UserInOrgInfo"]; export type UpdateOrgRequest = schemas["UpdateOrgRequest"]; export type OrgExtProps = NonNullable; export type UpdateOrgResponse = schemas["UpdateOrgResponse"]; export type UpdateUserMembershipRequest = schemas["UpdateUserMembershipRequest"]; export type MfaResetRequest = schemas["MfaResetRequest"]; export type CompleteMfaResetRequest = schemas["CompleteMfaResetRequest"]; export type NotificationEndpointConfiguration = schemas["NotificationEndpointConfiguration"]; export type OrgEvents = schemas["OrgEventDiscriminants"]; export type BillingEvent = schemas["BillingEvent"]; export type OperationKind = schemas["OperationKind"]; // NOTE: // we use `Record` (instead of `OperationKind[]`) to get // the type checker to complain unless this record includes every single operation const AllOperationKinds: Record = { AvaSign: true, AvaChainTxSign: true, BabylonCovSign: true, BabylonRegistration: true, BabylonStaking: true, BinanceSubAccountDepositHistory: true, BinanceSubToMaster: true, BinanceSubToSub: true, BinanceUniversalTransfer: true, BinanceSubAccountAssets: true, BinanceAccountInfo: true, BinanceSubAccountTransferHistory: true, BinanceUniversalTransferHistory: true, BinanceWithdraw: true, BinanceWithdrawHistory: true, BinanceDeposit: true, BinanceDepositHistory: true, BinanceListSubAccounts: true, BinanceCoinInfo: true, BinanceSubAccountDepositAddress: true, BlobSign: true, BtcMessageSign: true, BtcSign: true, BybitQueryUser: true, BybitQuerySubMembers: true, BybitQueryCoinInfo: true, BybitQueryCoinsBalance: true, BybitQueryDepositAddress: true, BybitDepositHistory: true, BybitSubDepositHistory: true, BybitUniversalTransfer: true, BybitUniversalTransferHistory: true, BybitWithdraw: true, BybitWithdrawals: true, BybitQueryWithdrawAddress: true, BybitQuerySubDepositAddress: true, CoinbaseListAccounts: true, CoinbaseListPortfolios: true, CoinbaseMoveFunds: true, DiffieHellman: true, PsbtSign: true, TaprootSign: true, Eip191Sign: true, Eip712Sign: true, Eip7702Sign: true, EotsNonces: true, EotsSign: true, Eth1Sign: true, Eth2Sign: true, Eth2Stake: true, Eth2Unstake: true, SolanaSign: true, SuiSign: true, TendermintSign: true, RoleUpdate: true, }; export const ALL_OPERATION_KINDS = Object.keys(AllOperationKinds) as readonly OperationKind[]; export type AcceptedValueCode = schemas["AcceptedValueCode"]; const AllAcceptedCodes: Record = { BinanceDryRun: true, BybitDryRun: true, CoinbaseDryRun: true, MfaRequired: true, SignDryRun: true, }; export const ALL_ACCEPTED_CODES = Object.keys(AllAcceptedCodes) as readonly AcceptedValueCode[]; export type OrgData = schemas["OrgData"]; export type UserOrgsResponse = schemas["UserOrgsResponse"]; export type OidcIdentity = schemas["OidcIdentity"]; export type MemberRole = schemas["MemberRole"]; export type SchemaKeyType = schemas["KeyType"]; export type ListKeysResponse = schemas["PaginatedListKeysResponse"]; export type UpdateKeyRequest = schemas["UpdateKeyRequest"]; export type KeyProperties = schemas["CreateAndUpdateKeyProperties"]; export type CreateKeyRequest = schemas["CreateKeyRequest"]; export type KeyInfo = schemas["KeyInfo"]; export type KeyInfoJwt = schemas["KeyInfoJwt"]; export type KeyAttestationClaims = schemas["KeyAttestationClaims"]; export type KeyAttestationQuery = paths["/v0/org/{org_id}/keys/{key_id}/attest"]["get"]["parameters"]["query"]; export type RoleInfoJwt = schemas["RoleInfoJwt"]; export type RoleAttestationClaims = schemas["RoleAttestationClaims"]; export type RoleAttestationQuery = paths["/v0/org/{org_id}/roles/{role_id}/attest"]["get"]["parameters"]["query"]; export type RoleAttestationVerbosity = schemas["RoleAttestationVerbosity"]; export type KeyInRoleInfo = schemas["KeyInRoleInfo"]; export type GetUsersInOrgResponse = schemas["PaginatedGetUsersInOrgResponse"]; export type GetUserByEmailResponse = schemas["GetUserByEmailResponse"]; export type GetUserByOidcResponse = schemas["GetUserByOidcResponse"]; export type UserInRoleInfo = schemas["UserInRoleInfo"]; export type KeyTypeApi = schemas["KeyType"]; export type ListKeyRolesResponse = schemas["PaginatedListKeyRolesResponse"]; export type ListRolesResponse = schemas["PaginatedListRolesResponse"]; export type ListRoleKeysResponse = schemas["PaginatedListRoleKeysResponse"]; export type ListRoleUsersResponse = schemas["PaginatedListRoleUsersResponse"]; export type UpdateRoleRequest = schemas["UpdateRoleRequest"]; export type KeyWithPoliciesInfo = schemas["KeyInRoleInfo"]; export type RoleInfo = schemas["RoleInfo"]; export type RoleAction = schemas["RoleAction"]; export type RestrictedActionsMap = Partial>; export type SessionInfo = schemas["SessionInfo"]; export type ClientSessionInfo = schemas["ClientSessionInfo"]; export type NewSessionResponse = schemas["NewSessionResponse"]; export type SessionsResponse = schemas["PaginatedSessionsResponse"]; export type EditPolicy = schemas["EditPolicy"]; export type ContactInfo = schemas["ContactInfoResponse"]; export type AddressMap = schemas["AddressMap"]; export type BtcChain = schemas["BtcChain"]; export type SuiChain = schemas["SuiChain"]; export type CreateContactRequest = schemas["CreateContactRequest"]; export type UpdateContactRequest = schemas["UpdateContactRequest"]; export type ListContactsResponse = schemas["PaginatedListContactsResponse"]; export type ContactLabel = schemas["ContactLabel"]; export type ContactAddressData = schemas["ContactAddressData"]; export type CreateSignerSessionRequest = schemas["CreateTokenRequest"]; export type RefreshSignerSessionRequest = schemas["AuthData"]; export type EvmSignRequest = schemas["Eth1SignRequest"]; export type EvmSignResponse = schemas["Eth1SignResponse"]; export type Eip191SignRequest = schemas["Eip191SignRequest"]; export type Eip712SignRequest = schemas["Eip712SignRequest"]; export type Eip7702SignRequest = schemas["Eip7702SignRequest"]; export type Eip191Or712SignResponse = schemas["SignResponse"]; export type SignResponse = schemas["SignResponse"]; export type Eth2SignRequest = schemas["Eth2SignRequest"]; export type Eth2SignResponse = schemas["SignResponse"]; export type Eth2StakeRequest = schemas["StakeRequest"]; export type Eth2StakeResponse = schemas["StakeResponse"]; export type Eth2UnstakeRequest = schemas["UnstakeRequest"]; export type Eth2UnstakeResponse = schemas["UnstakeResponse"]; export type BlobSignRequest = schemas["BlobSignRequest"]; export type BlobSignResponse = schemas["SignResponse"]; export type BtcSignRequest = schemas["BtcSignRequest"]; export type BtcSignResponse = schemas["SignResponse"]; export type BtcMessageSignRequest = schemas["BtcMessageSignRequest"]; export type BtcMessageSignResponse = schemas["BtcMessageSignResponse"]; export type PsbtSignRequest = schemas["PsbtSignRequest"]; export type PsbtSignResponse = schemas["PsbtSignResponse"]; export type TaprootSignRequest = schemas["TaprootSignRequest"]; export type TaprootSignResponse = schemas["SignResponse"]; export type EotsSignRequest = schemas["EotsSignRequest"]; export type EotsSignResponse = schemas["SignResponse"]; export type EotsCreateNonceRequest = schemas["EotsCreateNonceRequest"]; export type EotsCreateNonceResponse = schemas["EotsCreateNonceResponse"]; export type BabylonStakingRequest = schemas["BabylonStakingRequest"]; export type BabylonStakingResponse = schemas["BabylonStakingResponse"]; export type BabylonStakingEarlyUnbond = schemas["BabylonStakingEarlyUnbond"]; export type BabylonStakingWithdrawal = schemas["BabylonStakingWithdrawal"]; export type BabylonRegistrationRequest = schemas["BabylonRegistrationRequest"]; export type BabylonRegistrationResponse = schemas["BabylonRegistrationResponse"]; export type SolanaSignRequest = schemas["SolanaSignRequest"]; export type SolanaSignResponse = schemas["SignResponse"]; export type AvaSignRequest = schemas["AvaSignRequest"]; export type AvaSignResponse = schemas["SignResponse"]; export type AvaSerializedTxSignRequest = schemas["AvaSerializedTxSignRequest"]; export type SuiSignRequest = schemas["SuiSignRequest"]; export type SuiSignResponse = schemas["SignResponse"]; export type PendingMessageSignResponse = schemas["PendingMessageSignResponse"]; export type PendingMessageInfo = schemas["PendingMessageInfo"]; export type EvmTransaction = schemas["Transaction"]; export type TypedTransaction = schemas["TypedTransaction"]; export type TransactionAndStatus = schemas["TransactionAndStatus"]; export type SignedMessage = schemas["SignedMessage"]; export type MmiMetadata = schemas["MmiMetadata"]; export type MmiStatus = schemas["MmiStatus"]; export type Eip191Message = NonNullable; export type Eip712Message = NonNullable; export type JrpcResponse = schemas["JrpcResponse"]; export type MmiJrpcMethod = | "custodian_listAccounts" | "custodian_listAccountsSigned" | "custodian_listAccountChainIds" | "custodian_createTransaction" | "custodian_sign" | "custodian_signTypedData" | "custodian_getSignedMessageById" | "custodian_getTransactionById" | "custodian_getCustomerProof" | "custodian_replaceTransaction" | "custodian_getTransactionLink" | "custodian_getSignedMessageLink"; export type AcceptedResponse = schemas["AcceptedResponse"]; export type AcceptedValue = schemas["AcceptedValue"]; export type ErrorResponse = schemas["ErrorResponse"]; export type BtcSignatureKind = schemas["BtcSignatureKind"]; export type CsErrCode = schemas["SignerErrorCode"]; export type MfaType = | "CubeSigner" | "Fido" | `FidoKey#${string}` | "Totp" | "EmailOtp" | `EmailOtp#${number}`; export type MfaPolicy = Omit & { /** Allowed approval types. When omitted, defaults to any. */ allowed_mfa_types?: MfaType[] | null; // overriding to use a stronger `MfaType` type }; export type MfaVote = schemas["MfaVote"]; export type MfaRequestInfo = schemas["MfaRequestInfo"]; export type MfaProtectedAction = schemas["MfaProtectedAction"]; export type MfaRequired = schemas["MfaRequiredArgs"]; export type SignDryRun = schemas["SignDryRunArgs"]; export type BinanceDryRun = schemas["BinanceDryRunArgs"]; export type BybitDryRun = schemas["BybitDryRunArgs"]; export type CoinbaseDryRun = schemas["CoinbaseDryRunArgs"]; export type EvmTxCmp = schemas["EvmTxCmp"]; export type SolanaTxCmp = schemas["SolanaTxCmp"]; export type BinanceApiProperties = schemas["BinanceApiPropertiesPatch"]; export type CoinbaseApiProperties = schemas["CoinbaseApiPropertiesPatch"]; export type KeyPropertiesPatch = schemas["KeyPropertiesPatch"]; export type CreateOrgRequest = schemas["CreateOrgRequest"]; export type OrgMetricName = schemas["MetricName"]; export type QueryMetricsRequest = schemas["QueryMetricsRequest"]; export type QueryMetricsResponse = schemas["QueryMetricsResponse"]; export type AuditLogRequest = schemas["AuditLogRequest"]; export type AuditLogResponse = schemas["PaginatedAuditLogResponse"]; export type { AuditLogEntry }; /** * An {@link AuditLogResponse} whose `entries` have been validated against * `auditLogEntrySchema` (invalid rows dropped). This is what the audit-log * paginator yields from every fetch method. */ export type ValidatedAuditLogResponse = Omit & { entries: AuditLogEntry[]; }; export type DiffieHellmanRequest = schemas["DiffieHellmanRequest"]; export type DiffieHellmanResponse = schemas["DiffieHellmanResponse"]; export type UserExportInitRequest = schemas["UserExportInitRequest"]; export type UserExportInitResponse = schemas["UserExportInitResponse"]; export type UserExportCompleteRequest = schemas["UserExportCompleteRequest"]; export type UserExportCompleteResponse = schemas["UserExportCompleteResponse"]; export type UserExportListResponse = schemas["PaginatedUserExportListResponse"]; export type UserExportKeyMaterial = schemas["JsonKeyPackage"]; export type JsonRpcResponse = schemas["JsonRpcResponse"]; export type JsonRpcResult = NonNullable; export type JsonRpcRequest = schemas["RpcMethod"] & { /** @description Request ID */ id?: string; }; export type HistoricalTx = schemas["HistoricalTx"]; export type ListHistoricalTxResponse = schemas["PaginatedListHistoricalTxResponse"]; export type LoginRequest = schemas["LoginRequest"]; export type PasskeyAssertChallenge = schemas["PasskeyAssertChallenge"]; export type PasskeyAssertAnswer = schemas["PasskeyAssertAnswer"]; export type AuthenticationRequest = schemas["AuthenticationRequest"]; export type AuthenticationResponse = schemas["AuthenticationResponse"]; export type PasswordResetRequest = schemas["PasswordResetRequest"]; export type PasswordResetConfirmRequest = schemas["PasswordResetConfirmRequest"]; export type EmailOtpResponse = schemas["EmailOtpResponse"]; export type EmailTemplatePurpose = schemas["Purpose"]; export type GetEmailConfigResponse = schemas["GetEmailConfigResponse"]; export type Empty = schemas["EmptyImpl"]; export type ExplicitScope = schemas["ExplicitScope"]; export type Scope = schemas["Scope"]; /** Options for a new OIDC user */ export interface CreateOidcUserOptions { /** Optional name */ name?: string | null; /** The role of an OIDC user, default is "Alien" */ memberRole?: MemberRole; /** Optional MFA policy to associate with the user account */ mfaPolicy?: MfaPolicy; } export type GetRoleKeyOptions = operations["getRoleKey"]["parameters"]["query"]; /** Options for deleting a user */ export type DeleteUserOptions = operations["deleteUser"]["parameters"]["query"]; /** Ava P- or X-chain transaction */ export type AvaTx = { P: AvaPChainTx } | { X: AvaXChainTx }; /** Ava P-chain transaction */ export type AvaPChainTx = | { AddPermissionlessValidator: JsonMap } | { AddSubnetValidator: JsonMap } | { AddValidator: JsonMap } | { CreateChain: JsonMap } | { CreateSubnet: JsonMap } | { Export: JsonMap } | { Import: JsonMap }; /** Ava X-chain transaction */ export type AvaXChainTx = { Base: JsonMap } | { Export: JsonMap } | { Import: JsonMap }; /** Ava chains */ export type AvaChain = "C" | "X" | "P"; /** Key import */ export type CreateKeyImportKeyResponse = schemas["CreateKeyImportKeyResponse"]; export type ImportKeyRequest = schemas["ImportKeyRequest"]; /** Policy import key */ export type CreatePolicyImportKeyResponse = schemas["CreatePolicyImportKeyResponse"]; export type KeyImportKey = schemas["KeyImportKey"]; export type SecretValue = schemas["SecretValue"]; export type ImportKeyRequestMaterial = schemas["ImportKeyRequestMaterial"]; export type InvitationAcceptRequest = schemas["InvitationAcceptRequest"]; export type InvitationInfo = schemas["InvitationInfo"]; export type PaginatedListInvitationsResponse = schemas["PaginatedListInvitationsResponse"]; export type CancelInvitationRequest = schemas["CancelInvitationRequest"]; export type KeyTypeAndDerivationPath = schemas["KeyTypeAndDerivationPath"]; export type PolicyInfo = schemas["PolicyInfo"] & { acl?: JsonValue[]; }; /** * Coerce the less accurate `PolicyInfo` type from the OpenAPI schema to a more accurate {@link PolicyInfo}. * * @param p The policy info received on the wire * @returns The same value coerced to {@link PolicyInfo} */ export function coercePolicyInfo(p: schemas["PolicyInfo"]): PolicyInfo { return p as PolicyInfo; } export type UpdatePolicyRequest = schemas["UpdatePolicyRequest"] & { rules?: JsonValue[]; acl?: JsonValue[]; }; export type ListPoliciesResponse = schemas["PaginatedListPoliciesResponse"]; export type PolicyType = schemas["PolicyType"]; export type PolicyAttachedToId = schemas["PolicyAttachedToId"]; export type ListBucketsResponse = schemas["PaginatedListBucketsResponse"]; export type UpdateBucketRequest = schemas["UpdateBucketRequest"]; export type BucketAction = schemas["BucketAction"]; export type UploadWasmPolicyRequest = schemas["UploadWasmPolicyRequest"]; export type UploadWasmPolicyResponse = schemas["UploadWasmPolicyResponse"]; export type InvokePolicyRequest = schemas["InvokePolicyRequest"]; export type WasmRule = schemas["WasmRule"]; export type InvokeC2FResponse = InvokePolicyResponse; export type InvokePolicyResponse = schemas["InvokePolicyResponse"]; export type C2FResponse = WasmPolicyResponse; export type WasmPolicyResponse = schemas["WasmPolicyResponse"]; export type C2FConfiguration = PolicyEngineConfiguration; export type PolicyEngineConfiguration = schemas["PolicyEngineConfiguration"]; export type PolicyAction = schemas["PolicyAction"]; export type SecretAction = schemas["SecretAction"]; export type PolicySecretsInfo = schemas["PolicySecretsInfo"]; export type SetPolicySecretRequest = schemas["SetPolicySecretRequest"]; export type UpdatePolicySecretsRequest = schemas["UpdatePolicySecretsRequest"];