export type PersonNotification = {channels?: (Array<'EMAIL' | 'PUSH_NOTIFICATION' | 'SMS'>) | undefined, emailFooter?: string | undefined, emailSubject?: string | undefined, note?: string | undefined, params?: {[key: string]: string} | undefined, secureContent?: string | undefined, sourceId?: string | undefined, sourceName?: string | undefined, type?: string | undefined}; export type CancelOperation = {credentialExtId?: string | undefined, notification?: PersonNotification | undefined}; export type Timestamp = {date?: number | undefined, day?: number | undefined, hours?: number | undefined, minutes?: number | undefined, month?: number | undefined, nanos?: number | undefined, seconds?: number | undefined, time?: number | undefined, timezoneOffset?: number | undefined, year?: number | undefined}; export type ServiceCredential = {acts?: string | undefined, additionalPresentations?: number | undefined, claims?: Record | undefined, correlationId?: string | undefined, credentialTypeHref?: string | undefined, detUTCOffsetMinutes?: number | undefined, displayEndTime?: Timestamp | undefined, displayStartTime?: Timestamp | undefined, dstUTCOffsetMinutes?: number | undefined, expiringDtm?: Timestamp | undefined, extId?: string | undefined, notBeforeDtm?: Timestamp | undefined, note?: string | undefined, notifyOfExpiryDtm?: Timestamp | undefined, optionalInfo?: {[key: string]: string} | undefined, personInfo?: Record | undefined, sensitiveInfo?: {[key: string]: string} | undefined, status?: string | undefined, subject?: string | undefined, types?: Array | undefined}; export type IssueOperation = {credential?: ServiceCredential | undefined, notification?: PersonNotification | undefined}; export type ModifyOperation = {credential?: ServiceCredential | undefined, credentialExtId?: string | undefined, notification?: PersonNotification | undefined}; export type PushCredentialOperation = {cancelOperation?: CancelOperation | undefined, issueOperation?: IssueOperation | undefined, modifyOperation?: ModifyOperation | undefined}; export type PushCredentialOperations = {correlationId?: string | undefined, operations?: Array | undefined}; export type CreateApiApiCredentialProvidersCredentialProviderIdPersonsPersonIdPushOperationsArgs = {Authorization: string, credentialProviderId: string, personId: string, body: PushCredentialOperations}; export type CreateApiApiCredentialProvidersCredentialProviderIdPersonsPersonIdPushOperationsOptions = {baseUrl: string, fetch?: typeof fetch | undefined}; /** * Push credential changes * * POST /api/credentialProviders/{credentialProviderId}/persons/{personId}/pushOperations */ export const createApiApiCredentialProvidersCredentialProviderIdPersonsPersonIdPushOperations = async (args: CreateApiApiCredentialProvidersCredentialProviderIdPersonsPersonIdPushOperationsArgs, options: CreateApiApiCredentialProvidersCredentialProviderIdPersonsPersonIdPushOperationsOptions) => { const {baseUrl, fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") if (args.Authorization != null) headers.set("Authorization", String(args.Authorization)) const url = `${baseUrl.replace(/\/+$/, '')}/api/credentialProviders/${encodeURIComponent(String(args.credentialProviderId))}/persons/${encodeURIComponent(String(args.personId))}/pushOperations${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return undefined };