/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ /** WithRequired type helpers */ type WithRequired = T & { [P in K]-?: T[P]; }; import { CoverageEligibilityResponse, Encounter } from 'fhir/r4b'; export interface paths { '/application': { /** * Get applications * @description Get a list of Applications. [Applications](https://docs.oystehr.com/services/app/applications/) provide authentication in front of the web and mobile apps you build on Oystehr. * * Access Policy Action: `App:ListAllApplications` * Access Policy Resource: `App:Application` */ get: { responses: { /** @description List of applications in the project */ 200: { content: { readonly 'application/json': readonly components['schemas']['applicationListOutput'][]; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; /** * Create an application * @description Create a new Application. [Applications](https://docs.oystehr.com/services/app/applications/) provide authentication in front of the web and mobile apps you build on Oystehr. * * Access Policy Action: `App:CreateApplication` * Access Policy Resource: `App:Application` */ post: { readonly requestBody: { readonly content: { /** * @example { * "name": "Example", * "description": "Example", * "loginRedirectUri": "https://example.com", * "allowedCallbackUrls": [ * "https://example.com" * ], * "allowedLogoutUrls": [ * "https://example.com" * ], * "allowedWebOriginsUrls": [ * "https://example.com" * ], * "allowedCORSOriginsUrls": [ * "https://example.com" * ], * "passwordlessSMS": false, * "mfaEnabled": false, * "shouldSendInviteEmail": false, * "logoUri": "https://example.com", * "refreshTokenEnabled": false * } */ readonly 'application/json': components['schemas']['applicationCreateParams']; }; }; responses: { /** @description Application created */ 200: { content: { readonly 'application/json': components['schemas']['applicationFull']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/application/{id}': { /** * Get an application * @description Get the Application with the provided ID. [Applications](https://docs.oystehr.com/services/app/applications/) provide authentication in front of the web and mobile apps you build on Oystehr. * * Access Policy Action: `App:GetApplication` * Access Policy Resource: `App:Application` */ get: { parameters: { path: { /** @description ID of the application */ id: string; }; }; responses: { /** @description Get a project application details */ 200: { content: { readonly 'application/json': components['schemas']['applicationFull']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; /** * Delete an application * @description Delete the Application with the provided ID. [Applications](https://docs.oystehr.com/services/app/applications/) provide authentication in front of the web and mobile apps you build on Oystehr. * * Access Policy Action: `App:DeleteApplication` * Access Policy Resource: `App:Application` */ delete: { parameters: { path: { /** @description ID of the application */ id: string; }; }; responses: { /** @description Application deleted */ 204: { content: never; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; /** * Update an application * @description Update the Application with the provided ID. [Applications](https://docs.oystehr.com/services/app/applications/) provide authentication in front of the web and mobile apps you build on Oystehr. * * Access Policy Action: `App:UpdateApplication` * Access Policy Resource: `App:Application` */ patch: { parameters: { path: { /** @description ID of the application */ id: string; }; }; readonly requestBody: { readonly content: { readonly 'application/json': components['schemas']['applicationAllFields']; }; }; responses: { /** @description Application Updated */ 200: { content: { readonly 'application/json': components['schemas']['applicationFull']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/application/{id}/revoke-access-token': { /** * Revokes user's access token * @description Revokes user's access token issued for the application. * * Access Policy Action: `App:RevokeAccessToken` * Access Policy Resource: `App:Application` */ post: { parameters: { path: { /** @description ID of the application */ id: string; }; }; readonly requestBody: { readonly content: { /** * @example { * "token": "abcdefg" * } */ readonly 'application/json': { readonly token?: string; }; }; }; responses: { /** @description Token revoked */ 200: { content: { readonly 'application/json': { readonly message?: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/application/{id}/revoke-refresh-token': { /** * Revokes user's refresh token * @description Revokes user's refresh token issued for the application. * * Access Policy Action: `App:RevokeRefreshToken` * Access Policy Resource: `App:Application` */ post: { parameters: { path: { /** @description ID of the application */ id: string; }; }; readonly requestBody: { readonly content: { /** * @example { * "token": "abcdefg" * } */ readonly 'application/json': { readonly token?: string; }; }; }; responses: { /** @description Token revoked */ 200: { content: { readonly 'application/json': { readonly message?: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/application/{id}/rotate-secret': { /** * Rotate application's secret * @description Rotate client's secrete associated with an application. * * Access Policy Action: `App:RotateApplicationSecret` * Access Policy Resource: `App:Application` */ post: { parameters: { path: { /** @description ID of the application */ id: string; }; }; responses: { /** @description Application's secret rotated */ 200: { content: { readonly 'application/json': { readonly secret?: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/developer': { /** * Get all developers * @description DEPRECATED. Please use [v2/list](https://api-reference.oystehr.com/reference/get_developer-v2-list) instead. * * Get a list of all Developers who are part of the Project. Developer accounts are used to log into the [Developer Console](https://console.oystehr.com/) and administrate [Projects](https://docs.oystehr.com/services/project/). [Developers](https://docs.oystehr.com/services/iam/developers/) are the only people who can belong to and act across multiple Projects, because they exist above the Project level. * * Access Policy Action: `IAM:ListAllDevelopers` * Access Policy Resource: `IAM:Developer` */ get: { responses: { /** @description List of all developers in the project */ 200: { content: { readonly 'application/json': readonly WithRequired[]; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/developer/{id}': { /** * Get a developer by ID * @description Get the Developer with the provided ID. Developer accounts are used to log into the [Developer Console](https://console.oystehr.com/) and administrate [Projects](https://docs.oystehr.com/services/project/). [Developers](https://docs.oystehr.com/services/iam/developers/) are the only people who can belong to and act across multiple Projects, because they exist above the Project level. * * Access Policy Action: `IAM:GetDeveloper` * Access Policy Resource: `IAM:Developer` */ get: { parameters: { path: { /** @description ID of the developer */ id: string; }; }; responses: { /** @description Developer */ 200: { content: { readonly 'application/json': components['schemas']['developerResponse']; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; /** * Remove a developer * @description Remove the Developer with the provided ID from the project. Developer accounts are used to log into the [Developer Console](https://console.oystehr.com/) and administrate [Projects](https://docs.oystehr.com/services/project/). [Developers](https://docs.oystehr.com/services/iam/developers/) are the only people who can belong to and act across multiple Projects, because they exist above the Project level. * * Access Policy Action: `IAM:RemoveDeveloper` * Access Policy Resource: `IAM:Developer` */ delete: { parameters: { path: { /** @description ID of the developer */ id: string; }; }; responses: { /** @description Developer removed from the project */ 204: { content: never; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; /** * Update a developer * @description Update the Developer with the provided ID. Developer accounts are used to log into the [Developer Console](https://console.oystehr.com/) and administrate [Projects](https://docs.oystehr.com/services/project/). [Developers](https://docs.oystehr.com/services/iam/developers/) are the only people who can belong to and act across multiple Projects, because they exist above the Project level. * * Access Policy Action: `IAM:UpdateDeveloper` * Access Policy Resource: `IAM:Developer` */ patch: { parameters: { path: { /** @description ID of the developer */ id: string; }; }; readonly requestBody: { readonly content: { readonly 'application/json': components['schemas']['developerPutPost']; }; }; responses: { /** @description Developer Updated */ 200: { content: { readonly 'application/json': components['schemas']['developerResponse']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/developer/invite': { /** * Invite a developer * @description Invite a new Developer to the Project. Developer accounts are used to log into the [Developer Console](https://console.oystehr.com/) and administrate [Projects](https://docs.oystehr.com/services/project/). [Developers](https://docs.oystehr.com/services/iam/developers/) are the only people who can belong to and act across multiple Projects, because they exist above the Project level. * * Access Policy Action: `IAM:InviteDeveloper` * Access Policy Resource: `IAM:Developer` */ post: { readonly requestBody: { readonly content: { readonly 'application/json': WithRequired; } & components['schemas']['developerPutPost'], 'email' | 'practitioner'>; }; }; responses: { /** @description Successfully invited a developer */ 200: { content: { readonly 'application/json': WithRequired; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/developer/v2/list': { /** * Get developers with pagination * @description Get Developers in the Project with pagination, sort, sort Order and filtering. [Users](https://docs.oystehr.com/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/services/app/applications/) you configure for securing the apps you build on top of Oystehr. * * Access Policy Action: `Project:ListAllUsers` * Access Policy Resource: `Project:Settings` */ get: { parameters: { query?: { /** @description Filter developers by name. */ name?: string; /** @description Filter developer by id */ id?: string; /** @description Filter developers by email address. */ email?: string; /** @description Filter developers by profile. Expected format: 'FhirResource/UUID'. */ profile?: string; /** @description Filter developers by role UUID. */ roleId?: string; /** @description Cursor for pagination to fetch next set of developers. */ cursor?: string; /** @description Maximum number of developers to return per query. */ limit?: number; /** @description Field to sort the developers by. */ sort?: 'id' | 'name' | 'email' | 'phoneNumber' | 'createdAt'; /** @description Order of sorting (ASC or DESC). */ sortOrder?: 'asc' | 'desc'; }; }; responses: { /** @description List of all Developers with pagination details. */ 200: { content: { readonly 'application/json': { /** @description An array of developer objects. This array is empty if no developers match the query criteria. */ readonly data: readonly WithRequired[]; readonly metadata: { /** @description Cursor to fetch the next page of results. Null if there are no further pages. */ readonly nextCursor: string | null; }; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/erx/allergy/search': { /** * Search for allergies * @description Search for allergies */ get: { parameters: { query: { /** @description Name of the allergy to search for. */ name: string; }; }; responses: { /** @description Allergens */ 200: { content: { readonly 'application/json': { readonly allergens?: readonly { /** * @description The Photon identifier for the allergen. * @example alg_01GBAPSGCS3XB8NR9GXK1VJRJK */ readonly id?: string; /** * @description Human readible name of allergen. * @example lisinopril */ readonly name?: string; /** * @description RxNorm Concept Unique (RxCUI) identifier of allergen. * @example 29046 */ readonly rxcui?: string; }[]; }; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/erx/medication/search': { /** * Search for medications * @description Search for medications. Provide at least one of code or name filters */ get: { parameters: { query?: { /** * @description Name of the medication to search for. * @example lisinopril */ name?: string; /** * @description Code of the medication to search for * @example 29046 */ code?: string; /** * @description Return medications after this medication identifier. Used for cursor based pagination. * @example med_01HQY2N8PCWKQVZC7GQXEF0Z86 */ after?: string; /** * @description Return the first number of elements specified. * @example 10 */ first?: number; }; }; responses: { /** @description Medications */ 200: { content: { readonly 'application/json': { readonly medications?: readonly { /** @example Zestril */ readonly brandName?: string | null; readonly codes: { readonly HCPCS?: string | null; readonly packageNDC?: string | null; readonly productNDC?: string | null; /** * @description RxNorm Concept Unique (RxCUI) identifier of medication. * @example 29046 */ readonly rxcui?: string | null; readonly SKU?: string | null; }; /** * @example DRUG * @enum {string} */ readonly concept: 'DRUG' | 'PRODUCT' | 'PACKAGE'; /** @example false */ readonly controlled: boolean; readonly description?: string | null; /** @example tablet */ readonly form?: string | null; /** @example Lisinopril */ readonly genericName?: string | null; /** * @description The Photon identifier for the medication. * @example med_01HQY2N8PCWKQVZC7GQXEF0Z86 */ readonly id: string; readonly manufacturer?: string | null; /** * @description Human readible name of medication. * @example Zestril (Lisinopril 20 mg) Oral tablet */ readonly name: string; /** @enum {string|null} */ readonly schedule?: 'I' | 'II' | 'III' | 'IV' | 'V' | null; /** @example 20 mg */ readonly strength?: string | null; /** * @description Null implies a medication can not be prescribed * @example RX * @enum {string|null} */ readonly type?: 'RX' | 'OTC' | null; }[]; }; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/erx/sync-patient/{patientId}': { /** * Sync patient with eRx service * @description Retrieve patient properties from FHIR service and sync them with eRx service */ post: { parameters: { path: { /** @description ID of the patient to sync */ patientId: string; }; }; responses: { /** @description Photon sync response */ 200: { content: { readonly 'application/json': { /** * @description The Photon identifier for the patient. * @example pat_01HXEZSK72PEVMQ2S4SZY6TE8X */ readonly photonPatientId?: string; }; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/iam/role': { /** * Get all Roles * @description Get a list of all Roles. A [Role](https://docs.oystehr.com/services/iam/roles/) defines an access policy that can be assigned to any number of [Developers](https://docs.oystehr.com/services/iam/developers/), [Users](https://docs.oystehr.com/services/app/users/), and [M2M Clients](https://docs.oystehr.com/services/iam/m2m-clients/). * * Access Policy Action: `IAM:ListAllRoles` * Access Policy Resource: `IAM:Role` */ get: { responses: { /** @description List of all Roles in the project. */ 200: { content: { readonly 'application/json': readonly components['schemas']['RoleSummary'][]; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; /** * Create a new Role * @description Create a new Role. A [Role](https://docs.oystehr.com/services/iam/roles/) defines an access policy that can be assigned to any number of [Developers](https://docs.oystehr.com/services/iam/developers/), [Users](https://docs.oystehr.com/services/app/users/), and [M2M Clients](https://docs.oystehr.com/services/iam/m2m-clients/). * * Access Policy Action: `IAM:CreateRole` * Access Policy Resource: `IAM:Role` */ post: { readonly requestBody: { readonly content: { readonly 'application/json': components['schemas']['RolePost']; }; }; responses: { /** @description Successfully created a new role. */ 200: { content: { readonly 'application/json': components['schemas']['RoleFullAllRequired']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/iam/role/{roleId}': { /** * Get a Role by ID * @description Get the Role with the provided ID. A [Role](https://docs.oystehr.com/services/iam/roles/) defines an access policy that can be assigned to any number of [Developers](https://docs.oystehr.com/services/iam/developers/), [Users](https://docs.oystehr.com/services/app/users/), and [M2M Clients](https://docs.oystehr.com/services/iam/m2m-clients/). * * Access Policy Action: `IAM:GetRole` * Access Policy Resource: `IAM:Role` */ get: { parameters: { path: { /** @description ID of the role */ roleId: string; }; }; responses: { /** @description Role with a map of Users, Developers, and M2M Clients assigned the Role. */ 200: { content: { readonly 'application/json': components['schemas']['RoleFullAllRequired']; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; /** * Delete a role * @description Delete the Role with the provided ID. A [Role](https://docs.oystehr.com/services/iam/roles/) defines an access policy that can be assigned to any number of [Developers](https://docs.oystehr.com/services/iam/developers/), [Users](https://docs.oystehr.com/services/app/users/), and [M2M Clients](https://docs.oystehr.com/services/iam/m2m-clients/). * * Access Policy Action: `IAM:DeleteRole` * Access Policy Resource: `IAM:Role` * Will fail if any entities hold the Role or if Role is assigned as the default patient role for the project */ delete: { parameters: { path: { /** @description ID of the Role */ roleId: string; }; }; responses: { /** @description Role deleted from the project */ 204: { content: never; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; /** * Update a Role * @description Update the Role with the provided ID. A [Role](https://docs.oystehr.com/services/iam/roles/) defines an access policy that can be assigned to any number of [Developers](https://docs.oystehr.com/services/iam/developers/), [Users](https://docs.oystehr.com/services/app/users/), and [M2M Clients](https://docs.oystehr.com/services/iam/m2m-clients/). * * Access Policy Action: `IAM:UpdateRole` * Access Policy Resource: `IAM:Role` */ patch: { parameters: { path: { /** @description ID of the Role */ roleId: string; }; }; readonly requestBody: { readonly content: { readonly 'application/json': components['schemas']['RoleFull']; }; }; responses: { /** @description Role Updated */ 200: { content: { readonly 'application/json': components['schemas']['RoleFullAllRequired']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/m2m': { /** * Get all M2M clients * @description DEPRECATED. Please use [v2/list](https://api-reference.oystehr.com/reference/get_m2m-v2-list) instead. * * Get a list of all M2M Clients. [M2M Clients](https://docs.oystehr.com/services/iam/m2m-clients) are used to access Oystehr APIs from scripts and server-side code like [Zambda Functions](https://docs.oystehr.com/services/zambda). * * Access Policy Action: `App:ListAllM2MClients` * Access Policy Resource: `IAM:M2MClient` */ get: { responses: { /** @description List of M2M clients */ 200: { content: { readonly 'application/json': readonly components['schemas']['m2m'][]; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; /** * Create an M2M client * @description Create a new M2M Client. [M2M Clients](https://docs.oystehr.com/services/iam/m2m-clients) are used to access Oystehr APIs from scripts and server-side code like [Zambda Functions](https://docs.oystehr.com/services/zambda). * * Access Policy Action: `App:CreateM2MClient` * Access Policy Resource: `IAM:M2MClient` */ post: { readonly requestBody: { readonly content: { readonly 'application/json': WithRequired; }; }; responses: { /** @description M2M created */ 200: { content: { readonly 'application/json': components['schemas']['m2m']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/m2m/{id}': { /** * Get an M2M client * @description Get the M2M Client with the provided ID. [M2M Clients](https://docs.oystehr.com/services/iam/m2m-clients) are used to access Oystehr APIs from scripts and server-side code like [Zambda Functions](https://docs.oystehr.com/services/zambda). * * Access Policy Action: `App:GetM2MClient` * Access Policy Resource: `IAM:M2MClient` */ get: { parameters: { path: { /** @description ID of the M2M Client to retrieve */ id: string; }; }; responses: { /** @description M2M Client */ 200: { content: { readonly 'application/json': components['schemas']['m2m']; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; /** * Delete an M2M client * @description Delete the M2M Client with the provided ID. [M2M Clients](https://docs.oystehr.com/services/iam/m2m-clients) are used to access Oystehr APIs from scripts and server-side code like [Zambda Functions](https://docs.oystehr.com/services/zambda). * * Access Policy Action: `App:DeleteM2MClient` * Access Policy Resource: `IAM:M2MClient` */ delete: { parameters: { path: { /** @description ID of the M2M Client to delete */ id: string; }; }; responses: { /** @description M2M Client deleted */ 204: { content: never; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; /** * Update an M2M client * @description Update the M2M Client with the provided ID. [M2M Clients](https://docs.oystehr.com/services/iam/m2m-clients) are used to access Oystehr APIs from scripts and server-side code like [Zambda Functions](https://docs.oystehr.com/services/zambda). * * Access Policy Action: `App:UpdateM2MClient` * Access Policy Resource: `IAM:M2MClient` */ patch: { parameters: { path: { /** @description ID of the M2M Client to update */ id: string; }; }; readonly requestBody: { readonly content: { readonly 'application/json': components['schemas']['m2mPutPost']; }; }; responses: { /** @description M2M Updated */ 200: { content: { readonly 'application/json': components['schemas']['m2m']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/m2m/{id}/rotate-secret': { /** * Rotate an M2M client secret * @description Rotate the client secret for the M2M Client with the provided ID. [M2M Clients](https://docs.oystehr.com/services/iam/m2m-clients) are used to access Oystehr APIs from scripts and server-side code like [Zambda Functions](https://docs.oystehr.com/services/zambda). * * Access Policy Action: `App:RotateM2MClientSecret` * Access Policy Resource: `IAM:M2MClient` */ post: { parameters: { path: { /** @description ID of the M2M Client */ id: string; }; }; responses: { /** @description M2M Client secret rotated */ 200: { content: { readonly 'application/json': { /** Format: uuid */ readonly secret?: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/m2m/v2/list': { /** * Get M2M clients with pagination * @description Get M2M clients in the Project with pagination, sort, sort Order and filtering. [M2M Clients](https://docs.oystehr.com/services/iam/m2m-clients) are used to access Oystehr APIs from scripts and server-side code like [Zambda Functions](https://docs.oystehr.com/services/zambda). * * Access Policy Action: `App:ListAllM2MClients` * Access Policy Resource: `IAM:M2MClient` */ get: { parameters: { query?: { /** @description Filter M2M clients by name. */ name?: string; /** @description Filter M2M clients by id */ id?: string; /** @description Filter M2M clients by profile. Expected format: 'FhirResource/UUID'. */ profile?: string; /** @description Filter M2M clients by role UUID. */ roleId?: string; /** @description Cursor for pagination to fetch next set of M2M clients. */ cursor?: string; /** @description Maximum number of M2M clients to return per query. */ limit?: number; /** @description Field to sort the M2M clients by. */ sort?: 'id' | 'name' | 'email' | 'phoneNumber' | 'createdAt'; /** @description Order of sorting (ASC or DESC). */ sortOrder?: 'asc' | 'desc'; }; }; responses: { /** @description List of all M2M clients with pagination details. */ 200: { content: { readonly 'application/json': { /** @description An array of M2M Client objects. This array is empty if no M2M Clients match the query criteria. */ readonly data: readonly components['schemas']['m2m'][]; readonly metadata: { /** @description Cursor to fetch the next page of results. Null if there are no further pages. */ readonly nextCursor: string | null; }; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/messaging/config': { /** * Get a Messaging Services configuration * @description Get an information about the Messaging services configuration. This information includes phone number, phone number type and also rate limits of each service. */ get: { responses: { /** @description Successfully returned a Messaging Services configuration. */ 200: { content: { readonly 'application/json': { readonly conversationConfig?: components['schemas']['MessagingServiceInfo']; readonly transactionalSMSConfig?: components['schemas']['MessagingServiceInfo']; }; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/messaging/conversation': { /** * Create a Conversation * @description Create a new Conversation. [Conversations](https://docs.oystehr.com/services/messaging/conversations/) allow you to build multi-channel bi-directional messaging workflows. For example, you might create a Conversation where a provider messages with a patient through a web app, and the patient receives and responds to messages via SMS on their phone. * * Access Policy Requirements: * Action: `Messaging:CreateConversation` * Access Policy Resource: `Messaging:Conversation` * Action: `FHIR:Create` * Access Policy Resource: `FHIR:Encounter` * Action: `FHIR:Update` * Access Policy Resource: `FHIR:Encounter` */ post: { readonly requestBody: { readonly content: { readonly 'application/json': { /** * Format: Encounter * @description A valid FHIR Encounter resource JSON object. This resource will be created to represent the Conversation in the FHIR Store. */ readonly encounter: Encounter; }; }; }; responses: { /** @description Successfully created a Conversation. */ 200: { content: { readonly 'application/json': { /** * Format: Encounter * @description The FHIR Encounter resource that represents the Conversation in the FHIR Store modified to include the https://extensions.fhir.zapehr.com/encounter-virtual-service-pre-release extension which holds the Twilio Conversation SID. */ readonly encounter: Encounter; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/messaging/conversation/{conversationId}/message': { /** * Send a message to a Conversation * @description Send a message to a Conversation. [Conversations](https://docs.oystehr.com/services/messaging/conversations/) allow you to build multi-channel bi-directional messaging workflows. For example, you might create a Conversation where a provider messages with a patient through a web app, and the patient receives and responds to messages via SMS on their phone. * * Access Policy Requirements: * Action: `Messaging:ConversationSendMessage` * Access Policy Resource: `Messaging:Conversation` */ post: { parameters: { path: { /** @description ID of the Conversation from the https://extensions.fhir.zapehr.com/encounter-virtual-service-pre-release extension if on FHIR R4B, or from Encounter.virtual-service if on FHIR R5. */ conversationId: string; }; }; readonly requestBody: { readonly content: { readonly 'application/json': { /** @description A string metadata field you can use to store any data you wish. This data can be retrieved by all Conversation participants. The string value must contain structurally valid JSON if specified. */ readonly attributes?: Record; /** @description The message to send to the Conversation. Must be no more than 1600 characters. */ readonly message: string; }; }; }; responses: { /** @description Message was sent to the Conversation successfully. */ 204: { content: never; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/messaging/conversation/{conversationId}/participant': { /** * Add a participant to a Conversation * @description Add a participant to a Conversation. [Conversations](https://docs.oystehr.com/services/messaging/conversations/) allow you to build multi-channel bi-directional messaging workflows. For example, you might create a Conversation where a provider messages with a patient through a web app, and the patient receives and responds to messages via SMS on their phone. * * Access Policy Requirements: * Action: `Messaging:ConversationAddParticipant` * Access Policy Resource: `Messaging:Conversation` * Action: `FHIR:Read` * Access Policy Resource: `FHIR:Encounter` * Action: `FHIR:Update` * Access Policy Resource: `FHIR:Encounter` */ post: { parameters: { path: { /** @description ID of the Conversation from the https://extensions.fhir.zapehr.com/encounter-virtual-service-pre-release extension if on FHIR R4B, or from Encounter.virtual-service if on FHIR R5. */ conversationId: string; }; }; readonly requestBody: { readonly content: { readonly 'application/json': { /** @description A valid FHIR Encounter relative reference in the format: `Encounter/some-uuid`. This reference must be a valid Encounter in the FHIR store which has the https://extensions.fhir.zapehr.com/encounter-virtual-service-pre-release extension from being created by `POST /message/conversation`. */ readonly encounterReference: string; readonly participants: readonly { /** * @description The channel to use to communicate with the participant. The `chat` channel allows the Developer or User whose `profile` resource is in `participantReference` to join the Conversation via the Twilio Conversations SDK which enables web and native mobile chat. If channel is `sms` then `phoneNumber` must be supplied. The participant's phone number, specified in the `phoneNumber`, is added to the Conversation. They will receive SMS messages from the Conversation, and replies to the phone number from which they receive the messages will be sent to the Conversation. * @enum {string} */ readonly channel: 'sms' | 'chat'; /** @description A valid FHIR Patient, RelatedPerson, or Practitioner relative reference in the format: `Patient/some-uuid`, `RelatedPerson/some-uuid`, or `Practitioner/some-uuid`. Each participantReference must be present in `Encounter.participant` for the Encounter specified in `encounterReference`. */ readonly participantReference: string; /** @description The phone number of the participant. Required if `channel` is `sms`. */ readonly phoneNumber?: string; }[]; }; }; }; responses: { /** @description Participants were added to the Conversation successfully. */ 204: { content: never; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; /** * Remove a participant from a Conversation * @description Remove a participant from a Conversation. [Conversations](https://docs.oystehr.com/services/messaging/conversations/) allow you to build multi-channel bi-directional messaging workflows. For example, you might create a Conversation where a provider messages with a patient through a web app, and the patient receives and responds to messages via SMS on their phone. * * Access Policy Requirements: * Action: `Messaging:ConversationRemoveParticipant` * Access Policy Resource: `Messaging:Conversation` * Action: `FHIR:Read` * Access Policy Resource: `FHIR:Patient`, `FHIR:Practitioner`, or `FHIR:RelatedPerson` */ delete: { parameters: { path: { /** @description ID of the Conversation from the https://extensions.fhir.zapehr.com/encounter-virtual-service-pre-release extension if on FHIR R4B, or from Encounter.virtual-service if on FHIR R5. */ conversationId: string; }; }; readonly requestBody: { readonly content: { readonly 'application/json': { /** @description A valid FHIR Encounter relative reference in the format: `Encounter/some-uuid`. This reference must be a valid Encounter in the FHIR store which has the https://extensions.fhir.zapehr.com/encounter-virtual-service-pre-release extension from being created by `POST /message/conversation`. */ readonly encounterReference: string; /** @description A valid FHIR profile reference in the format: for example, `Patient/some-uuid`. This reference must be a valid Patient, Practitioner, or RelatedPerson present in the FHIR store and which has been previously added to the Conversation. */ readonly participantReference: string; }; }; }; responses: { /** @description Participants were removed from the Conversation successfully. */ 204: { content: never; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/messaging/conversation/token': { /** * Get a Conversation Token * @description Get a Conversation Token. Conversation Tokens are used to join the Conversation with the Twilio Conversations SDKs. [Conversations](https://docs.oystehr.com/services/messaging/conversations/) allow you to build multi-channel bi-directional messaging workflows. For example, you might create a Conversation where a provider messages with a patient through a web app, and the patient receives and responds to messages via SMS on their phone. * * Access Policy Action: `Messaging:GetConversationToken` * Access Policy Resource: `Messaging:Conversation`. */ get: { responses: { /** @description Successfully returned a Conversation Token for the caller. */ 200: { content: { readonly 'application/json': { /** @description A Twilio Conversations access token scoped to the identity of the caller. This token can be used to join the Conversation via the Twilio Conversations SDK. */ readonly token: string; }; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/messaging/transactional-sms/send': { /** * Send a user an SMS * @description Send an SMS to any phone number. Oystehr's [Transactional SMS](https://docs.oystehr.com/services/messaging/transactional-sms/) feature makes it easy to send a text message to your [Users](https://docs.oystehr.com/services/app/users/) with a single API call. You can use this feature to send appointment reminders, prescription refill reminders, discharge information, and more. * * Access Policy Requirements: * Action: `Messaging:SendTransactionalSMS` * Access Policy Resource: `Messaging:TransactionalSMS` * Action: `FHIR:Create` * Access Policy Resource: `FHIR:Communication` * Action: `FHIR:Update` * Access Policy Resource: `FHIR:Communication` * * You also need Read access for the resource to which you are sending a message. For example: * Action: `FHIR:Read` * Access Policy Resource: `FHIR:Patient` */ post: { readonly requestBody: { readonly content: { readonly 'application/json': { /** @description The message to send. Messages over 160 characters will be split into multiple SMS messages. */ readonly message: string; /** @description A reference to a FHIR Patient, RelatedPerson, or Practitioner resource in the format: `Patient/some-uuid`, `RelatedPerson/some-uuid`, or `Practitioner/some-uuid`. */ readonly resource: string; }; }; }; responses: { /** @description Successfully created a send message request. Note that this does not mean the message was sent successfully; there may be a reason the message is not sent. */ 200: { content: { readonly 'application/json': { /** * Format: uuid * @description The UUID of the FHIR Communication resource that represents the message */ readonly resourceId?: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/payment/charge/issue': { /** * Issue a charge for a paricutlar encounter. * @description Charge patient's default payment method for a specified encounter or charge item. * * Access Policy Requirements: * Action: `Payment:Issue` * Access Policy Resource: `Payment:Charge` * Actions: `FHIR:Read,FHIR:Create,FHIR:Update` * Access Policy Resource: `FHIR:ChargeItem:*,`FHIR:PaymentReconciliation:*` * Action: `FHIR:Read` * Access Policy Resources: `FHIR:Patient:*,FHIR:Encounter:*,FHIR:Coverage:*` */ post: { readonly requestBody: { readonly content: { readonly 'application/json': { /** * Format: uuid * @description An ID reference to a FHIR Encounter resource in the format: `some-uuid`. */ readonly encounterId?: string; }; }; }; responses: { /** @description Create a charge for the specified encounter based on FHIR Encounter ID and an associated Charge Item. */ 204: { content: never; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/payment/charge/status': { /** * Retrieve charge status for a paricutlar encounter. * @description Retrieve charge status for a specified encounter or charge item. * * Access Policy Requirements: * Action: `Payment:Status` * Access Policy Resource: `Payment:Charge` * Actions: `FHIR:Read,FHIR:Create,FHIR:Update` * Access Policy Resource: `FHIR:ChargeItem:*,`FHIR:PaymentReconciliation:*` * Action: `FHIR:Read` * Access Policy Resources: `FHIR:Patient:*,FHIR:Encounter:*,FHIR:Coverage:*` */ post: { readonly requestBody: { readonly content: { readonly 'application/json': { /** * Format: uuid * @description An ID reference to a FHIR Encounter resource in the format: `some-uuid`. */ readonly encounterId?: string; }; }; }; responses: { /** @description Retrieve charge status for the specified encounter based on FHIR Encounter ID and an associated Charte Item. */ 200: { content: { readonly 'application/json': components['schemas']['chargeDetails']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/payment/payment-method': { /** * Delete payment method as a default for the beneficiary * @description Delete a specified payment method for the beneficiary. * * Access Policy Requirements: * Action: `Payment:Delete` * Access Policy Resource: `Payment:PaymentMethod` * Actions: `FHIR:Read,FHIR:Create,FHIR:Update` * Access Policy Resource: `FHIR:Coverage:*` * Action: `FHIR:Read,FHIR:Create,FHIR:Update` * Access Policy Resource: `FHIR:Account:*` * * Also need to be able to read the patients' details. For example: * Action: `FHIR:Read` * Access Policy Resource: `FHIR:Patient` */ delete: { readonly requestBody: { readonly content: { readonly 'application/json': { /** * Format: uuid * @description An ID reference to a FHIR Patient resource who is the beneficiary, in the format: `some-uuid`. */ readonly beneficiaryPatientId: string; /** @description An ID reference to a payment method: `pm_someAlphaNumbericId`. */ readonly paymentMethodId: string; /** * Format: uuid * @description An ID reference to a FHIR Patient resource who is the payor, in the format: `some-uuid`. * * If not specified, beneficiary is also assumed to be the payor. */ readonly payorPatientId?: string; }; }; }; responses: { /** @description Successfully deleted a payment method for the user. */ 204: { content: never; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/payment/payment-method/list': { /** * List all payment methods for the patient * @description List all payment methods for the patient. * * Access Policy Requirements: * Action: `Payment:Setup` * Access Policy Resource: `Payment:PaymentMethod` * Actions: `FHIR:Read,FHIR:Create,FHIR:Update` * Access Policy Resource: `FHIR:Coverage:*` * Action: `FHIR:Read,FHIR:Create,FHIR:Update` * Access Policy Resource: `FHIR:Account:*` * * Also need to be able to read the patients' details. For example: * Action: `FHIR:Read` * Access Policy Resource: `FHIR:Patient` */ post: { readonly requestBody: { readonly content: { readonly 'application/json': { /** * Format: uuid * @description An ID reference to a FHIR Patient resource who is the beneficiary, in the format: `some-uuid`. */ readonly beneficiaryPatientId: string; /** * Format: uuid * @description An ID reference to a FHIR Patient resource who is the payor, in the format: `some-uuid`. * * If not specified, beneficiary is also assumed to be the payor. */ readonly payorPatientId?: string; }; }; }; responses: { /** @description List of payment methods for the user, including the default. */ 200: { content: { readonly 'application/json': { readonly cards?: readonly components['schemas']['chargeCard'][]; readonly default?: components['schemas']['chargeCard']; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/payment/payment-method/set-default': { /** * Set a specified method as a default for the user * @description Set a specified payment method for the user as default. * * Access Policy Requirements: * Action: `Payment:SetDefault` * Access Policy Resource: `Payment:PaymentMethod` * Actions: `FHIR:Read,FHIR:Create,FHIR:Update` * Access Policy Resource: `FHIR:Coverage:*` * Action: `FHIR:Read,FHIR:Create,FHIR:Update` * Access Policy Resource: `FHIR:Account:*` * * Also need to be able to read the patients' details. For example: * Action: `FHIR:Read` * Access Policy Resource: `FHIR:Patient` */ post: { readonly requestBody: { readonly content: { readonly 'application/json': { /** * Format: uuid * @description An ID reference to a FHIR Patient resource who is the beneficiary, in the format: `some-uuid`. */ readonly beneficiaryPatientId: string; /** @description An ID reference to a payment method: `pm_someAlphaNumbericId`. */ readonly paymentMethodId: string; /** * Format: uuid * @description An ID reference to a FHIR Patient resource who is the payor, in the format: `some-uuid`. * * If not specified, beneficiary is also assumed to be the payor. */ readonly payorPatientId?: string; }; }; }; responses: { /** @description Successfully set a payment method as a default for the user. */ 204: { content: never; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/payment/payment-method/setup': { /** * Set up a new payment method for user * @description Enter a new credit card or other payment method for the user. * * Access Policy Requirements: * Action: `Payment:Setup` * Access Policy Resource: `Payment:PaymentMethod` * Actions: `FHIR:Read,FHIR:Create,FHIR:Update` * Access Policy Resource: `FHIR:Coverage:*` * Action: `FHIR:Read,FHIR:Create,FHIR:Update` * Access Policy Resource: `FHIR:Account:*` * * Also need to be able to read the patients' details. For example: * Action: `FHIR:Read` * Access Policy Resource: `FHIR:Patient` */ post: { readonly requestBody?: { readonly content: { readonly 'application/json': { /** * Format: uuid * @description An ID reference to a FHIR Patient resource who is the beneficiary, in the format: `some-uuid`. */ readonly beneficiaryPatientId: string; /** * Format: uuid * @description An ID reference to a FHIR Patient resource who is the payor, in the format: `some-uuid`. * * If not specified, beneficiary is also assumed to be the payor. */ readonly payorPatientId?: string; }; }; }; responses: { /** @description Successfully requested a payment method setup. */ 200: { content: { readonly 'application/json': { /** * @description Client secret for registering a payment method for the payor. * @example seti_2P7IXQEDUw09rSJNzGhLtmqr_secret_PxCxVt5cMv5XdKvSBkUDvwKc0yXMu2A */ readonly clientSecret?: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/project': { /** * Get project settings * @description Get the Project settings for a Project. Developers must specify a [project ID](https://docs.oystehr.com/core-documentation/authenticating-api-requests/#x-zapehr-project-id-header) in the header. A Project is the logically-isolated instance of Oystehr that segments your data from other Projects. [Projects](https://docs.oystehr.com/services/project/) are completely independent from each other, having their own separate [FHIR store](https://docs.oystehr.com/services/fhir/basics/), [Applications](https://docs.oystehr.com/services/app/applications/), [Users](https://docs.oystehr.com/services/app/users/), etc . * * Access Policy Action: `Project:GetProjectInfo` * Access Policy Resource: `Project:Settings` */ get: { responses: { /** @description Project settings */ 200: { content: { readonly 'application/json': components['schemas']['projectResponse']; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; /** * Update project settings * @description Update the Project settings for the Project that corresponds to the project-id in the request header. A [Project](https://docs.oystehr.com/services/project/) is the logically-isolated instance of Oystehr that segments your data from other Projects. Projects are completely independent from each other, having their own separate [FHIR store](https://docs.oystehr.com/services/fhir/basics/), [Applications](https://docs.oystehr.com/services/app/applications/), [Users](https://docs.oystehr.com/services/app/users/), etc . * * Access Policy Action: `Project:UpdateProjectInfo` * Access Policy Resource: `Project:Settings` */ patch: { readonly requestBody: { readonly content: { readonly 'application/json': { /** @description The id of a role that will be assigned to self-registering users of the project's applications. */ readonly defaultPatientRoleId?: string | null; /** @description The id of a role that will be assigned to users who authenticate using your SSO identity provider. */ readonly defaultSSOUserRoleId?: string | null; readonly description?: string; readonly name?: string; /** @description Allows users to self-register to applications in this project. */ readonly signupEnabled?: boolean; }; }; }; responses: { /** @description Project information updated */ 200: { content: { readonly 'application/json': components['schemas']['projectResponse']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/rcm/eligibility-check': { /** * Checks insurance eligibility. * @description Check [Insurance Eligibility](https://docs.oystehr.com/services/rcm/eligibility/). * * Access Policy Action: `RCM:CheckInsuranceEligibility` * Access Policy Resource: `RCM:InsuranceEligibility` * * Access Policy Action: `FHIR:Create` * Access Policy Resource: `FHIR:CoverageEligibilityResponse` */ post: { readonly requestBody?: { readonly content: { readonly 'application/json': { /** @description Identifier of the CoverageEligibilityRequest that the eligibility check will reference. */ readonly eligibilityRequestId?: string; }; }; }; responses: { /** @description CoverageEligibilityResponse which describes result of an eligibility check. */ 200: { content: { readonly 'application/json': CoverageEligibilityResponse; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/rcm/professional-claim/submit': { /** * Submits professional claim to payer. * @description Check [Submit Professional Claim](https://docs.oystehr.com/services/rcm/professional-claim-submission/). * * Access Policy Action: `RCM:SubmitProfessionalClaim` * Access Policy Resource: `RCM:Claim` * * Access Policy Action: `FHIR:Create` * Access Policy Resource: `FHIR:AuditEvent` * * Access Policy Actions: `FHIR:Create, FHIR:Update` * Access Policy Resource: `FHIR:Claim` */ post: { readonly requestBody?: { readonly content: { readonly 'application/json': { readonly cms1500: components['schemas']['claimPost']; readonly payerId: string; readonly submitterOrganizationName: string; /** @description Enabling testMode will perform a dry run of claim submission. The claim will not be sent to payers, but the request processing and response will remain the same. */ readonly testMode?: boolean; }; }; }; responses: { /** @description Claim response. */ 200: { content: { readonly 'application/json': Record; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/rcm/professional-claim/validate': { /** * Validates professional claim. * @description Check [Validate Professional Claim](https://docs.oystehr.com/services/rcm/professional-claim-submission/). * * Access Policy Action: `RCM:ValidateProfessionalClaim` * Access Policy Resource: `RCM:Claim` * * Access Policy Action: `FHIR:Create` * Access Policy Resource: `FHIR:AuditEvent` */ post: { readonly requestBody?: { readonly content: { readonly 'application/json': { readonly cms1500: components['schemas']['claimPost']; readonly payerId: string; readonly submitterOrganizationName: string; }; }; }; responses: { /** @description Claim validation result. */ 200: { content: { readonly 'application/json': { readonly editStatus?: string; readonly errors?: readonly { readonly code?: string; readonly description?: string; readonly field?: string; readonly followupAction?: string; readonly location?: string; readonly value?: string; }[]; readonly meta?: { readonly applicationMode?: string; readonly billerId?: string; readonly senderId?: string; readonly submitterId?: string; readonly traceId?: string; }; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/secret': { /** * Get all Secrets * @description Get a list of all secrets in the Project. * * Access Policy Action: `Zambda:ListAllSecrets` * Access Policy Resource: `Zambda:Secret` */ get: { responses: { /** @description List of all Secrets in the project. */ 200: { content: { readonly 'application/json': readonly components['schemas']['allSecrets'][]; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; /** * Create secret * @description Create a secret for a project. If the secret is already defined, update it. * * Access Policy Action: `Zambda:CreateSecret` * Access Policy Resource: `Zambda:Secret` */ post: { readonly requestBody: { readonly content: { /** * @example { * "name": "m2m_client_secret", * "value": "SUPERSECRETVALUE42" * } */ readonly 'application/json': components['schemas']['secretCreateParams']; }; }; responses: { /** @description Secret created, or if secret is already defined, secret is updated. */ 200: { content: { readonly 'application/json': components['schemas']['secret']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/secret/{name}': { /** * Get a Secret * @description Get the secret with the provided name. * * Access Policy Action: `Zambda:GetSecret` * Access Policy Resource: `Zambda:Secret` */ get: { parameters: { path: { /** @description Name of the Secret. */ name: string; }; }; responses: { /** @description The secret was fetched successfully. */ 200: { content: { readonly 'application/json': components['schemas']['secret']; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; /** * Delete a Secret * @description Delete the secret with the provided name. * * Access Policy Action: `Zambda:DeleteSecret` * Access Policy Resource: `Zambda:Secret` */ delete: { parameters: { path: { /** @description Name of the Secret. */ name: string; }; }; responses: { /** @description The Secret was deleted successfully. */ 204: { content: never; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/telemed/v2/meeting': { /** * Create a telemedicine video meeting * @description Create a [telemedicine video meeting](https://docs.oystehr.com/services/telemed/). * * Access Policy Requirements: * Action: `Telemed:CreateMeeting` * Access Policy Resource: `Telemed:Meeting` * Action: `FHIR:Create` * Access Policy Resource: `FHIR:Encounter` * Action: `FHIR:Update` * Access Policy Resource: `FHIR:Encounter` */ post: { readonly requestBody: { readonly content: { readonly 'application/json': { /** @description Well formed encounter with the https://extensions.fhir.zapehr.com/encounter-other-participants extension specified optionally. */ readonly encounter?: Record; }; }; }; responses: { /** @description Successfully created a telemed meeting. */ 200: { content: { readonly 'application/json': { /** @description Returns well formed encounter with video meeting information in the https://extensions.fhir.zapehr.com/encounter-virtual-service-pre-release extension. */ readonly encounter?: Record; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/telemed/v2/meeting/{encounterId}/join': { /** * Join a video meeting * @description Get Meeting and Attendee objects necessary to join a telemedicine video meeting. * * Access Policy Requirements: * Action: `Telemed:JoinMeeting` * Access Policy Resource: `Telemed:Meeting` * Action: `FHIR:Read` * Access Policy Resource: `FHIR:Encounter` */ get: { parameters: { path: { /** @description ID of the Encounter used to set up the telemedicine video meeting. */ encounterId: string; }; }; responses: { /** @description Meeting and Attendee objects for joining a video meeting returned successfully. */ 200: { content: { readonly 'application/json': { /** @description The attendee object including details like AttendeeId and ExternalUserId. */ readonly Attendee?: { /** @description Unique identifier for the attendee. */ readonly AttendeeId?: string; /** @description External user identifier used to map to the attendee. */ readonly ExternalUserId?: string; }; /** @description The meeting object including details necessary for joining the meeting. */ readonly Meeting?: { /** @description Unique identifier for the meeting. */ readonly MeetingId?: string; }; }; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/user': { /** * Get all users * @description DEPRECATED. Please use [v2/list](https://api-reference.oystehr.com/reference/get_user-v2-list) instead. * * Get all Users in the Project. [Users](https://docs.oystehr.com/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/services/app/applications/) you configure for securing the apps you build on top of Oystehr. * * Access Policy Action: `App:ListAllUsers` * Access Policy Resource: `App:User` */ get: { responses: { /** @description List of all Users. */ 200: { content: { readonly 'application/json': readonly WithRequired[]; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/user/{id}': { /** * Get a User by ID * @description Get the User with the provided ID. [Users](https://docs.oystehr.com/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/services/app/applications/) you configure for securing the apps you build on top of Oystehr. * * Access Policy Action: `App:GetUser` * Access Policy Resource: `App:User` */ get: { parameters: { path: { /** @description ID of the User */ id: string; }; }; responses: { /** @description Information about a specific user */ 200: { content: { readonly 'application/json': components['schemas']['userAllRequired']; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; /** * Delete a specific user * @description Delete the User with the provided ID. [Users](https://docs.oystehr.com/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/services/app/applications/) you configure for securing the apps you build on top of Oystehr. * * Access Policy Action: `App:DeleteUser` * Access Policy Resource: `App:User` */ delete: { parameters: { path: { /** @description ID of the user to delete */ id: string; }; }; responses: { /** @description User deleted */ 204: { content: never; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; /** * Update a specific user * @description Update the User with the provided ID. [Users](https://docs.oystehr.com/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/services/app/applications/) you configure for securing the apps you build on top of Oystehr. * * Access Policy Action: `App:UpdateUser` * Access Policy Resource: `App:User` */ patch: { parameters: { path: { /** @description ID of the user to update */ id: string; }; }; readonly requestBody?: { readonly content: { readonly 'application/json': { /** @description The inline access policy to assign to the user. If the roles property is not provided this property is required. If both are provided, the inline access policy is merged with the access policies defined by "roles". */ readonly accessPolicy?: components['schemas']['AccessPolicy']; /** @description A list of Role IDs to assign to the user. If the accessPolicy property is not provided this property is required and may not be empty. */ readonly roles?: readonly string[]; }; }; }; responses: { /** @description Updated information response body about a specific user */ 200: { content: { readonly 'application/json': components['schemas']['userAllRequired']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/user/invite': { /** * Invite a User * @description Invite a User to the Project. [Users](https://docs.oystehr.com/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/services/app/applications/) you configure for securing the apps you build on top of Oystehr. * * Access Policy Action: `App:CreateUser` * Access Policy Resource: `App:User` */ post: { readonly requestBody: { readonly content: { readonly 'application/json': WithRequired; /** @description A list of Role IDs to assign to the invited user. If the accessPolicy property is not provided this property is required and may not be empty. */ readonly roles?: readonly string[]; }, 'applicationId' | 'resource' | 'email'>; }; }; responses: { /** @description Successfully invited a user */ 200: { content: { readonly 'application/json': components['schemas']['userAllRequired'] & { /** * Format: url * @description The invitation url to the project */ readonly invitationUrl: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/user/me': { /** * Get yourself * @description Get your own User details. [Users](https://docs.oystehr.com/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/services/app/applications/) you configure for securing the apps you build on top of Oystehr. * * Fetch details about the calling User. This endpoint has no access policy requirements, it is available to all authenticated Users. */ get: { responses: { /** @description Details about the current User. */ 200: { content: { readonly 'application/json': components['schemas']['userAllRequired']; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/user/v2/list': { /** * Get users with pagination * @description Get Users in the Project with pagination, sort, sort Order and filtering. [Users](https://docs.oystehr.com/services/app/users/) are the people who log into the [Applications](https://docs.oystehr.com/services/app/applications/) you configure for securing the apps you build on top of Oystehr. * * Access Policy Action: `Project:ListAllUsers` * Access Policy Resource: `Project:Settings` */ get: { parameters: { query?: { /** @description Filter users by name. */ name?: string; /** @description Filter user by id */ id?: string; /** @description Filter users by email address. */ email?: string; /** @description Filter users by profile. Expected format: 'FhirResource/UUID'. */ profile?: string; /** @description Filter users by role UUID. */ roleId?: string; /** @description Cursor for pagination to fetch next set of users. */ cursor?: string; /** @description Maximum number of users to return per query. */ limit?: number; /** @description Field to sort the users by. */ sort?: 'id' | 'name' | 'email' | 'phoneNumber' | 'createdAt'; /** @description Order of sorting (ASC or DESC). */ sortOrder?: 'asc' | 'desc'; }; }; responses: { /** @description List of all Users with pagination details. */ 200: { content: { readonly 'application/json': { /** @description An array of user objects. This array is empty if no users match the query criteria. */ readonly data: readonly WithRequired[]; readonly metadata: { /** @description Cursor to fetch the next page of results. Null if there are no further pages. */ readonly nextCursor: string | null; }; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/version': { /** * Get project API version * @description Get project API version. This endpoint is public so there are no access policy requirements. */ get: { responses: { /** @description The project API version */ 200: { content: { readonly 'application/json': { /** * @description Always "project" * @enum {string} */ readonly api: 'project'; /** * @description Always "production" * @enum {string} */ readonly environment: 'production'; /** @description The project API version */ readonly version: string; }; }; }; }; }; }; '/z3': { /** * List all Z3 Buckets * @description List all Z3 Buckets. [Z3](https://docs.oystehr.com/services/z3/) is Oystehr's built-in and fully integrated solution for file storage. * * Access Policy Action: `Z3:ListBuckets` * Access Policy Resource: `Z3:BucketName` */ get: { responses: { /** @description List of all Z3 Buckets in the project. */ 200: { content: { readonly 'application/json': readonly { /** @description The date and time when the Z3 Bucket was created in ISO 8601 format. */ readonly creationDate: string; /** Format: uuid */ readonly id: string; /** @description The name of the Z3 Bucket. */ readonly name: string; }[]; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/z3/{bucketName}': { /** * Create a Z3 Bucket * @description Create a Z3 Bucket with the provided name. [Z3](https://docs.oystehr.com/services/z3/) is Oystehr's built-in and fully integrated solution for file storage. * * Access Policy Action: `Z3:CreateBucket` * Access Policy Resource: `Z3:BucketName` */ put: { parameters: { path: { /** @description Name of the Z3 Bucket. */ bucketName: string; }; }; responses: { /** @description Z3 Bucket was created successfully. */ 200: { content: { readonly 'application/json': { /** Format: uuid */ readonly id: string; /** @description The bucket name as specified in the bucketName path parameter. */ readonly name: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; /** * Delete a Z3 Bucket * @description Delete the Z3 Bucket with the provided name. [Z3](https://docs.oystehr.com/services/z3/) is Oystehr's built-in and fully integrated solution for file storage. * * Access Policy Action: `Z3:DeleteBucket` * Access Policy Resource: `Z3:BucketName` */ delete: { parameters: { path: { /** @description Name of the Z3 Bucket. */ bucketName: string; }; }; responses: { /** @description Z3 Bucket was deleted successfully. */ 204: { content: never; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/z3/{bucketName}/{objectPath+}': { /** * List Z3 Objects in a Bucket * @description List all Z3 Objects at the provided path in the Bucket with the provided name [Z3](https://docs.oystehr.com/services/z3/) is Oystehr's built-in and fully integrated solution for file storage. * * Access Policy Action: `Z3:ListObjects` * Access Policy Resource: `Z3:BucketName:ObjectPath` */ get: { parameters: { path: { /** @description Name of the Z3 Bucket. */ bucketName: string; /** @description Path to the location in the bucket to list objects from. This may be nested to any depth e.g. `path/to/my/object`. You may also omit this path to list all objects in the Z3 Bucket. */ 'objectPath+': string; }; }; responses: { /** @description List of all objects in the Z3 Bucket. */ 200: { content: { readonly 'application/json': readonly { /** @description The key (path) of the Z3 Object which may be used to GET the Z3 Object. */ readonly key: string; /** @description The date and time when the Z3 Object was last modified in ISO 8601 format. */ readonly lastModified: string; }[]; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; /** * Get a link for uploading or downloading a Z3 Object * @description Get a link for downloading or uploading a Z3 Object to the provided path in the Bucket with the provided name. [Z3](https://docs.oystehr.com/services/z3/) is Oystehr's built-in and fully integrated solution for file storage. * * Access Policy Action: `Z3:PutObject` or `Z3:GetObject` * Access Policy Resource: `Z3:BucketName:ObjectPath` */ post: { parameters: { path: { /** @description Name of the Z3 Bucket. */ bucketName: string; /** @description Path to the location in the bucket where the Object will be created. This may be nested to any depth e.g. `path/to/my/object`. */ 'objectPath+': string; }; }; readonly requestBody: { readonly content: { readonly 'application/json': { /** @enum {string} */ readonly action: 'upload' | 'download'; /** @description An optional parameter that determines which type of S3 object should be created. */ readonly isFolder?: boolean; }; }; }; responses: { /** @description A URL was successfully prepared for the client to upload/download the object. */ 200: { content: { readonly 'application/json': { /** * Format: url * @description The URL that the client should use for uploading/downloading the object. */ readonly signedUrl: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; /** * Delete a Z3 Object * @description Delete the Z3 Object at the provided path in the Bucket with the provided name. [Z3](https://docs.oystehr.com/services/z3/) is Oystehr's built-in and fully integrated solution for file storage. * * Access Policy Action: `Z3:DeleteObject` * Access Policy Resource: `Z3:BucketName:ObjectPath` */ delete: { parameters: { path: { /** @description Name of the Z3 Bucket. */ bucketName: string; /** @description Path to the location in the bucket the Object will be deleted from. This may be nested to any depth e.g. `path/to/my/object`. */ 'objectPath+': string; }; }; readonly requestBody: { readonly content: { readonly 'application/json': { /** @description An optional parameter that serves two goals: 1 - differentiate files and folders (undefined for files and empty/non-empty array for folders), 2 - allow deletion of folder content to avoid cases when folder is still visible after deletion because it's part of its children's path. */ readonly children?: readonly string[]; }; }; }; responses: { /** @description Z3 Object was deleted successfully. */ 204: { content: never; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; 404: components['responses']['404NotFound']; }; }; }; '/zambda': { /** * Get all Zambda Functions * @description Get a list of all Zambda Functions in the Project. [Zambdas](https://docs.oystehr.com/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services. * * Access Policy Action: `Zambda:ListAllFunctions` * Access Policy Resource: `Zambda:Function` */ get: { responses: { /** @description List of all Zambda Functions in the Project */ 200: { content: { readonly 'application/json': readonly components['schemas']['zambdaFunctionWithRequired'][]; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; /** * Create a Zambda Function * @description Create a new Zambda Function. [Zambdas](https://docs.oystehr.com/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services. * * Access Policy Action: `Zambda:CreateFunction` * Access Policy Resource: `Zambda:Function` */ post: { readonly requestBody: { readonly content: { readonly 'application/json': WithRequired; }; }; responses: { /** @description Successfully created a zambda */ 200: { content: { readonly 'application/json': components['schemas']['zambdaFunctionWithRequired']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/zambda/{id}': { /** * Get a Zambda Function * @description Get the Zambda Function with the provided ID or name. [Zambdas](https://docs.oystehr.com/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services. * * Access Policy Action: `Zambda:GetFunction` * Access Policy Resource: `Zambda:Function` */ get: { parameters: { path: { /** @description ID or name of the Zambda Function */ id: string; }; }; responses: { /** @description The requested Zambda Function */ 200: { content: { readonly 'application/json': components['schemas']['zambdaFunctionWithRequired'] & { /** @description The runtime of the Zambda Function. */ readonly runtime?: string; }; }; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; /** @description Zambda Function not found */ 404: { content: never; }; }; }; /** * Delete a Zambda Function * @description Delete the Zambda Function with the provided ID or name. [Zambdas](https://docs.oystehr.com/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services. * * Access Policy Action: `Zambda:DeleteFunction` * Access Policy Resource: `Zambda:Function` */ delete: { parameters: { path: { /** @description ID or name of the Zambda Function to delete */ id: string; }; }; responses: { /** @description The Zambda Function was deleted successfully. */ 204: { content: never; }; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; /** @description Zambda Function not found */ 404: { content: never; }; }; }; /** * Update a Zambda Function * @description Update the Zambda Function with the provided ID or name. [Zambdas](https://docs.oystehr.com/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services. * * Access Policy Action: `Zambda:UpdateFunction` * Access Policy Resource: `Zambda:Function` */ patch: { parameters: { path: { /** @description ID or name of the Zambda Function to update. */ id: string; }; }; readonly requestBody: { readonly content: { readonly 'application/json': components['schemas']['zambdaFunction'] & { /** * @description The runtime to use for the Zambda Function. This property is optional and defaults to "nodejs20.x". * @enum {string} */ readonly runtime?: 'nodejs18.x' | 'nodejs20.x'; }; }; }; responses: { /** @description Zambda Function updated successfully */ 200: { content: { readonly 'application/json': components['schemas']['zambdaFunctionWithRequired'] & { /** @description The runtime of the Zambda Function. */ readonly runtime?: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; /** @description Zambda Function not found */ 404: { content: never; }; }; }; }; '/zambda/{id}/execute': { /** * Execute an authenticated Zambda Function * @description Execute the [Authenticated Zambda Function](https://docs.oystehr.com/services/zambda/types/authenticated/) with the provided ID. [Zambdas](https://docs.oystehr.com/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services. * * Access Policy Action: `Zambda:InvokeFunction` * Access Policy Resource: `Zambda:Function` */ post: { parameters: { path: { /** @description ID or name of the Zambda Function to execute */ id: string; }; }; readonly requestBody?: { readonly content: { readonly 'application/json': Record; }; }; responses: { /** @description Zambda Function was executed successfully. The response body contains the output from the Zambda Function. */ 200: { content: { readonly 'application/json': components['schemas']['zambdaExecuteResponse']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/zambda/{id}/execute-public': { /** * Execute a public Zambda Function * @description Execute the [Public Zambda Function](https://docs.oystehr.com/services/zambda/types/public/) with the provided ID. [Zambdas](https://docs.oystehr.com/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services. * * Execute a zambda that has method http_open. This endpoint is public so there are no access policy requirements. */ post: { parameters: { header: { /** @description ID of the Project the Zambda Function is in. */ 'x-zapehr-project-id': string; }; path: { /** @description ID or name of the Zambda Function to execute. */ id: string; }; }; readonly requestBody?: { readonly content: { readonly 'application/json': Record; }; }; responses: { /** @description Zambda Function was executed successfully. The response body contains the output from the Zambda Function. */ 200: { content: { readonly 'application/json': components['schemas']['zambdaExecuteResponse']; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; }; }; }; '/zambda/{id}/logStream': { /** * Get a Zambda Function's log streams * @description Get the log streams for the Zambda Function with the provided ID. [Zambdas](https://docs.oystehr.com/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services. * * Access Policy Action: `Zambda:ReadLogs` * Access Policy Resource: `Zambda:Function` */ post: { parameters: { query?: { /** @description The token for the next set of items to return. */ token?: string; }; path: { /** @description ID or name of the Zambda Function log stream. */ id: string; }; }; responses: { /** @description Zambda Function log streams response. */ 200: { content: { readonly 'application/json': { /** @description The log streams for the Zambda Function. */ readonly logStreams: readonly { /** @description The ID of the log stream. */ readonly arn?: string; /** @description The creation time of the log stream. Formatted as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. */ readonly creationTime?: number; /** @description The time of the first event. Formatted as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. */ readonly firstEventTimestamp: number; /** @description The time of the most recent log event in the Zambda Function log stream. Formatted as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. */ readonly lastEventTimestamp: number; /** @description The ingestion time of the log stream. Formatted as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. */ readonly lastIngestionTime?: number; /** @description The name of the Zambda Function log stream. */ readonly logStreamName: string; /** @description Deprecated and not usable. Always returns zero. */ readonly storedBytes?: number; /** @description The sequence token. */ readonly uploadSequenceToken?: string; }[]; /** @description The token that indexes the next group of logStreams. This value is returned in the "nextToken" field of the response from the previous call. */ readonly nextToken?: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/zambda/{id}/logStream/{logStreamName}': { /** * Get logs from a Zambda Function log stream * @description Get the logs from the specified log stream for the Zambda Function with the provided ID. [Zambdas](https://docs.oystehr.com/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services. * * Access Policy Action: `Zambda:ReadLogs` * Access Policy Resource: `Zambda:Function` */ post: { parameters: { path: { /** @description ID or name of the Zambda Function */ id: string; /** @description name of the log stream */ logStreamName: string; }; }; readonly requestBody?: { readonly content: { readonly 'application/json': { /** @description The token to get the next set of items. This value is returned in the "nextForwardToken" field of the response from the previous call. */ readonly nextToken?: string; }; }; }; responses: { /** @description Zambda Function log stream logs response */ 200: { content: { readonly 'application/json': { readonly logEvents: readonly { /** @description The time the event was ingested. Formatted as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. */ readonly ingestionTime: number; /** @description The content of the log event. */ readonly message: string; /** @description The time the event occurred. Formatted as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. */ readonly timestamp: number; }[]; /** @description The token for the next set of items in the backward direction. */ readonly nextBackwardToken?: string; /** @description The token for the next set of items in the forward direction. */ readonly nextForwardToken?: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/zambda/{id}/logStream/search': { /** * Search all of a Zambda Function's logs * @description Get all logs for the Zambda Function with the provided ID, filtered by any of: text in messages, minimum start date, and/or maximum end date. [Zambdas](https://docs.oystehr.com/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services. * * Access Policy Action: `Zambda:ReadLogs` * Access Policy Resource: `Zambda:Function` */ post: { parameters: { path: { /** @description ID or name of the Zambda Function */ id: string; }; }; readonly requestBody: { readonly content: { readonly 'application/json': { /** @description The maximum date and time of the log's timestamp. Formatted as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. */ readonly end?: number; /** @description The filter to use for log messages. Supports the full scope of Cloudwatch's search behavior https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html. */ readonly filter?: string; /** @description The token to get the next set of items. This value is returned in the "nextToken" field of the response from the previous call. */ readonly nextToken?: string; /** @description The minimum date and time of the log's timestamp. Formatted as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. */ readonly start?: number; }; }; }; responses: { /** @description Zambda Function log stream logs response */ 200: { content: { readonly 'application/json': { readonly logEvents: readonly { /** @description The time the event was ingested. Formatted as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. */ readonly ingestionTime: number; /** @description The content of the log event. */ readonly message: string; /** @description The time the event occurred. Formatted as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. */ readonly timestamp: number; }[]; /** @description The token to get the next set of items. This value is returned in the "nextToken" field of the response from the previous call. */ readonly nextToken?: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; '/zambda/{id}/s3-upload': { /** * Deploy code to a Zambda Function * @description Returns a URL that is used to deploy code to the Zambda Function with the provided ID. [Zambdas](https://docs.oystehr.com/services/zambda/) are functions that can be used to execute your code. They can be used to process data received from Oystehr's APIs or to perform operations on third-party services. * * Access Policy Action: `Zambda:UpdateFunction` * Access Policy Resource: `Zambda:Function` */ post: { parameters: { path: { /** @description ID or name of the Zambda Function. */ id: string; }; }; readonly requestBody?: { readonly content: { readonly 'application/json': { /** @description Optional filename for the Zambda Function code zip. If not provided, the filename will be randomized. */ readonly filename?: string; }; }; }; responses: { /** @description The URL to upload your Zambda Function code zip to. */ 200: { content: { readonly 'application/json': { /** * Format: url * @description The URL to upload your Zambda Function code zip to. */ readonly signedUrl: string; }; }; }; 400: components['responses']['400BadRequest']; 401: components['responses']['401Unauthorized']; 403: components['responses']['403Forbidden']; }; }; }; } export type webhooks = Record; export interface components { schemas: { /** @description The developer's inline access policy. */ readonly accessPolicy: components['schemas']['AccessPolicy']; readonly AccessPolicy: { readonly rule?: readonly { /** * @example [ * "FHIR:Read", * "FHIR:Search" * ] */ readonly action?: readonly string[]; /** @enum {string} */ readonly effect?: 'Allow' | 'Deny'; /** * @example [ * "FHIR:Patient:*" * ] */ readonly resource?: readonly string[]; }[]; }; /** * @example { * "name": "m2m_client_secret" * } */ readonly allSecrets: { /** @description A name for the secret used to identify it for use in Zambda Functions. May contain letters, numbers, dashes, and underscores. */ readonly name: string; }; /** * @example { * "id": "d9cf2259-6e6c-4a30-9458-dd66a58955ac", * "clientId": "mCOOD2JstuSIiGu66bH3A9AONAfi2xw4", * "name": "Example", * "description": "Example", * "loginRedirectUri": "https://example.com", * "allowedCallbackUrls": [ * "https://example.com" * ], * "allowedLogoutUrls": [ * "https://example.com" * ], * "allowedWebOriginsUrls": [ * "https://example.com" * ], * "allowedCORSOriginsUrls": [ * "https://example.com" * ], * "passwordlessSMS": false, * "mfaEnabled": false, * "shouldSendInviteEmail": false, * "logoUri": "https://example.com" * } */ readonly applicationAllFields: components['schemas']['applicationBase'] & { /** @description The list of allowed callback URLs for the Application. When a user completes authentication on the hosted login screen, they are redirected back to the app that prompted the authentication. Because the callback URL can be tampered with, as a security measure, Oystehr only redirects to callback URLs which are listed here. allowedCallbackUrls may be an empty array. */ readonly allowedCallbackUrls?: readonly string[]; /** @description The allowed CORS origins urls for the Application. Any domain that needs to be able to make requests from browser JavaScript to our identity provider APIs must be listed here. These URLs must not include any path or query strings (e.g. 'https://docs.oystehr.com'). By default, all domains from `allowedCallbackUrls` are allowed. allowedCORSOriginsUrls may be an empty array. */ readonly allowedCORSOriginsUrls?: readonly string[]; /** @description The list of allowed logout URLs for the Application. After a logout is completed, a user will be redirected to a URL specified with the logout request. Because the logout redirect URL can be tampered with, as a security measure, Oystehr only redirects to logout redirect URLs which are listed here. allowedLogoutUrls may be an empty array. */ readonly allowedLogoutUrls?: readonly string[]; /** @description The list of allowed web origins URLs for the Application. Any domain that needs to be able to initiate a login must be listed here. These URLs must not include any path or query strings (e.g. 'https://docs.oystehr.com'). An asterisk may be used as a wildcard placeholder for subdomains (e.g. https://*.oystehr.com). allowedWebOriginsUrls may be an empty array. */ readonly allowedWebOriginsUrls?: readonly string[]; /** * Format: url * @description When a user accesses the hosted login screen directly instead of being redirected to it from your application, Oystehr detects this condition and redirects the user to the loginRedirectUri to get them back on track. The loginRedirectUri must be a route in your application that redirects to the 'https://auth.zapehr.com/authorize' endpoint. This typically looks like, 'https://example.com/login'. */ readonly loginRedirectUri?: string; /** @description When true, users can authenticate to the Application with their email address. */ readonly loginWithEmailEnabled?: boolean; /** * Format: url * @description The URL of your application's logo. This logo is displayed on the hosted login screen. The recommended size for this asset is 150px x 150px. */ readonly logoUri?: string; /** @description When true, users will be prompted to enter a code from A TOTP-MFA application after they authenticate with their first form of authentication. */ readonly mfaEnabled?: boolean; /** @description When true, users can authenticate to the Application with 'passwordless SMS'. With passwordless SMS, users enter their phone number and receive a one-time code via SMS to authenticate. Users enter the code on the login screen to complete authentication. */ readonly passwordlessSMS?: boolean; /** @description When true, a refresh token will be provided to a user during authorization. */ readonly refreshTokenEnabled?: boolean; /** @description When true, an invitation email is automatically sent to users who are invited to the Application. This email contains Oystehr branding, so it is recommended to set this to 'false' and send your own invitation email for production use. */ readonly shouldSendInviteEmail?: boolean; }; /** * @example { * "id": "d9cf2259-6e6c-4a30-9458-dd66a58955ac", * "clientId": "mCOOD2JstuSIiGu66bH3A9AONAfi2xw4", * "name": "Example", * "description": "Example" * } */ readonly applicationBase: { /** * Format: uuid * @description The Application's OAuth 2.0 client identifier. */ readonly clientId?: string; /** @description A description of the application to help you differentiate it from other applications in the project. This value is not displayed to end users. */ readonly description?: string; /** Format: uuid */ readonly id: string; /** @description The name of the Application. This value is displayed to end users on the hosted login screen. */ readonly name?: string; }; /** * @example { * "id": "d9cf2259-6e6c-4a30-9458-dd66a58955ac", * "clientId": "mCOOD2JstuSIiGu66bH3A9AONAfi2xw4", * "name": "Example", * "description": "Example" * } */ readonly applicationCreateParams: { /** @description The list of allowed callback URLs for the Application. When a user completes authentication on the hosted login screen, they are redirected back to the app that prompted the authentication. Because the callback URL can be tampered with, as a security measure, Oystehr only redirects to callback URLs which are listed here. allowedCallbackUrls may be an empty array. */ readonly allowedCallbackUrls: readonly string[]; /** @description The allowed CORS origins urls for the Application. Any domain that needs to be able to make requests from browser JavaScript to our identity provider APIs must be listed here. These URLs must not include any path or query strings (e.g. 'https://docs.oystehr.com'). By default, all domains from `allowedCallbackUrls` are allowed. allowedCORSOriginsUrls may be an empty array. */ readonly allowedCORSOriginsUrls?: readonly string[]; /** @description The list of allowed logout URLs for the Application. After a logout is completed, a user will be redirected to a URL specified with the logout request. Because the logout redirect URL can be tampered with, as a security measure, Oystehr only redirects to logout redirect URLs which are listed here. allowedLogoutUrls may be an empty array. */ readonly allowedLogoutUrls?: readonly string[]; /** @description The list of allowed web origins URLs for the Application. Any domain that needs to be able to initiate a login must be listed here. These URLs must not include any path or query strings (e.g. 'https://docs.oystehr.com'). An asterisk may be used as a wildcard placeholder for subdomains (e.g. https://*.oystehr.com). allowedWebOriginsUrls may be an empty array. */ readonly allowedWebOriginsUrls?: readonly string[]; /** * Format: uuid * @description The Application's OAuth 2.0 client identifier. */ readonly clientId?: string; /** @description A description of the application to help you differentiate it from other applications in the project. This value is not displayed to end users. */ readonly description?: string; /** Format: uuid */ readonly id?: string; /** * Format: url * @description When a user accesses the hosted login screen directly instead of being redirected to it from your application, Oystehr detects this condition and redirects the user to the loginRedirectUri to get them back on track. The loginRedirectUri must be a route in your application that redirects to the 'https://auth.zapehr.com/authorize' endpoint. This typically looks like, 'https://example.com/login'. */ readonly loginRedirectUri?: string; /** @description When true, users can authenticate to the Application with their email address. */ readonly loginWithEmailEnabled?: boolean; /** * Format: url * @description The URL of your application's logo. This logo is displayed on the hosted login screen. The recommended size for this asset is 150px x 150px. */ readonly logoUri?: string; /** @description When true, users will be prompted to enter a code from A TOTP-MFA application after they authenticate with their first form of authentication. */ readonly mfaEnabled?: boolean; /** @description The name of the Application. This value is displayed to end users on the hosted login screen. */ readonly name: string; /** @description When true, users can authenticate to the Application with 'passwordless SMS'. With passwordless SMS, users enter their phone number and receive a one-time code via SMS to authenticate. Users enter the code on the login screen to complete authentication. */ readonly passwordlessSMS?: boolean; /** @description When true, a created Application supports requests for a new access token using a 'Refresh Token'. */ readonly refreshTokenEnabled?: boolean; /** @description When true, an invitation email is automatically sent to users who are invited to the Application. This email contains Oystehr branding, so it is recommended to set this to 'false' and send your own invitation email for production use. */ readonly shouldSendInviteEmail?: boolean; }; /** * @example { * "id": "d9cf2259-6e6c-4a30-9458-dd66a58955ac", * "clientId": "mCOOD2JstuSIiGu66bH3A9AONAfi2xw4", * "name": "Example", * "description": "Example", * "loginRedirectUri": "https://example.com", * "allowedCallbackUrls": [ * "https://example.com" * ], * "allowedLogoutUrls": [ * "https://example.com" * ], * "allowedWebOriginsUrls": [ * "https://example.com" * ], * "allowedCORSOriginsUrls": [ * "https://example.com" * ], * "passwordlessSMS": false, * "mfaEnabled": false, * "shouldSendInviteEmail": false, * "logoUri": "https://example.com" * } */ readonly applicationFull: WithRequired; readonly applicationListOutput: WithRequired; readonly chargeCard: { /** @example mastercard */ readonly brand: string; /** @example John Smith */ readonly cardHolder?: string; readonly expirationMonth: number; readonly expirationYear: number; /** @example pm_1P43upEDUw09rSJNKbKYfxdA */ readonly id: string; /** @example 4444 */ readonly lastFour: string; }; readonly chargeDetails: { readonly amount: number; readonly card: components['schemas']['chargeCard']; /** @example txn_3PaSy9EDUw09rSJN1jHaDplE */ readonly chargeUuid: string; /** @example usd */ readonly currency: string; /** * Format: date * @example 2024-05-27 */ readonly date: string; }; readonly claimAddress: { readonly city: string; readonly line: string; readonly state: string; readonly telephone?: string | null; readonly zipCode: string; }; readonly claimDate: { readonly day: string; readonly month: string; readonly year: string; }; readonly claimDatePeriod: { readonly from: components['schemas']['claimDate']; readonly to?: components['schemas']['claimDate']; }; readonly claimDateWithQualifier: { readonly date: components['schemas']['claimDate']; readonly qualifier: string; }; readonly claimId: { readonly qualifier: string; readonly value: string; }; readonly claimName: { readonly firstName: string; readonly lastName: string; readonly middleName?: string | null; readonly suffix?: string | null; }; readonly claimPost: { /** @enum {string} */ readonly _1_insuranceProgram: 'MEDICARE' | 'MEDICAID' | 'TRICARE' | 'CHAMPVA' | 'GROUP_HEALTH_PLAN' | 'FECA_BLK_LUNG' | 'OTHER'; readonly _1a_insuredIdNumber: string; readonly _2_patientName: components['schemas']['claimName']; readonly _3_patientBirthDate: components['schemas']['claimDate']; /** @enum {string} */ readonly _3_patientSex: 'M' | 'F'; readonly _4_insuredName?: components['schemas']['claimName']; readonly _5_patientAddress: components['schemas']['claimAddress']; /** @enum {string} */ readonly _6_patientRelationshipToInsured?: 'Self' | 'Spouse' | 'Child' | 'Other'; readonly _7_insuredAddress?: components['schemas']['claimAddress']; readonly _9_otherInsuredName?: components['schemas']['claimName']; readonly _9a_otherInsuredPolicyOrGroupNumber?: string; readonly _9d_otherInsuredInsurancePlanNameOrProgramName?: string; readonly _10_patientConditionRelations?: { readonly _a_employment?: boolean; readonly _b_autoAccident?: boolean; readonly _b_autoAccidentState?: string; readonly _c_otherAccident?: boolean; }; readonly _10d_claimCodes?: readonly string[]; readonly _11_insuredPolicyGroupOrFecaNumber?: string; readonly _11a_insuredDateOfBirth?: components['schemas']['claimDate']; /** @enum {string} */ readonly _11a_insuredSex?: 'M' | 'F'; readonly _11b_otherClaimId?: string; readonly _11c_insurancePlanNameOrProgramName?: string; readonly _11d_anotherHealthBenefitPlan: boolean; readonly _12_patientSignedDate?: components['schemas']['claimDate']; readonly _14_dateOfCurrentIllness?: components['schemas']['claimDateWithQualifier']; readonly _15_otherDate?: components['schemas']['claimDateWithQualifier']; readonly _16_patientUnableToWorkPeriod?: components['schemas']['claimDatePeriod']; readonly _17_referringProvider: { readonly _a_otherId?: components['schemas']['claimId']; readonly _b_npiId: string; readonly name: components['schemas']['claimName']; readonly qualifier: string; }; readonly _18_hospitalizationDates?: components['schemas']['claimDatePeriod']; readonly _19_additionalClaimInformation?: string; readonly _20_outsideLab?: { readonly charges?: number; readonly purchased?: boolean; }; readonly _21_diagnosis: { readonly codes: readonly string[]; readonly icdIndicator: string; }; readonly _22_resubmission?: { readonly code: string; readonly originalReferenceNumber: string; }; readonly _23_priorAuthorizationNumber?: string; readonly _24_services: readonly { readonly _a_datesOfService: components['schemas']['claimDatePeriod']; readonly _b_placeOfService: string; readonly _c_emergency?: boolean; readonly _d_procedures: { readonly cptOrHcpcs: string; readonly modifiers?: readonly string[]; }; readonly _e_diagnosisPointer: string; readonly _f_charges: number; readonly _g_daysOrUnits: number; readonly _h_epsdtAndFamilyPlan?: { readonly epsdt?: string; readonly familyPlan?: boolean; }; readonly _j_renderingProviderId: { readonly npiId: string; readonly otherId?: components['schemas']['claimId']; }; readonly supplementalInformation?: string; }[]; readonly _25_federalTaxIdNumber: { /** @enum {string} */ readonly type: 'SSN' | 'EIN'; readonly value: string; }; readonly _26_patientAccountNumber?: string; readonly _27_acceptAssignment?: boolean; readonly _28_totalCharge: number; readonly _29_amountPaid?: number; readonly _31_physicianSignedDate: components['schemas']['claimDate']; readonly _32_serviceFacilityLocationInfo: { readonly _a_npiId?: string; readonly _b_otherId?: components['schemas']['claimId']; readonly address: components['schemas']['claimAddress']; readonly name: string; }; readonly _33_billingProviderInfoAndPhone: { readonly _a_npiId: string; readonly _b_otherId?: components['schemas']['claimId']; readonly address: components['schemas']['claimAddress']; readonly name: string; }; }; readonly developerEmail: { /** @description The email with which the developer was invited. */ readonly email?: string; }; readonly developerId: { /** Format: uuid */ readonly id?: string; }; readonly developerName: { /** @description The developer's name. This defaults to the email with which the developer was invited. */ readonly name?: string; }; readonly developerProfile: { /** @description Reference to the FHIR Practitioner resource that represents the developer in the FHIR store. */ readonly profile?: string; }; readonly developerPutPost: { /** @description The developer's inline access policy. */ readonly accessPolicy?: components['schemas']['AccessPolicy']; /** @description A list of ids of roles to be assigned to the developer. */ readonly roles?: readonly string[]; }; /** * @example { * "id": "3946f417-b496-44b1-92a3-8d20744b7010", * "name": "John Doe", * "email": "johndoe@email.com", * "profile": { * "resourceType": "Practitioner" * }, * "accessPolicy": { * "rule": { * "resource": "*", * "action": "*", * "effect": "Allow" * } * }, * "roles": [ * { * "name": "MyAdminRole", * "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6" * } * ] * } */ readonly developerResponse: WithRequired; readonly m2m: WithRequired<{ /** * @description The OAuth 2.0 client identifier for the M2M Client. Use this, combined with the client secret (from the `rotate-secret` endpoint), to authenticate with the OAuth 2.0 client credentials flow and receive an access token. * @example HbWEgS0PId83dxbk2acMdsUeHbQ2Mlx */ readonly clientId?: string; /** Format: uuid */ readonly id?: string; /** @description An URL of JWK set used for getting an access token by signed authentication JWT */ readonly jwksUrl?: string; /** * @description Reference to the FHIR Device resource that represents the M2M Client in the FHIR store. * @example Device/3fa85f64-5717-4562-b3fc-2c963f66afa6 */ readonly profile?: string; } & components['schemas']['m2mBase'], 'id' | 'name' | 'clientId' | 'profile' | 'roles'>; readonly m2mBase: { readonly accessPolicy?: components['schemas']['AccessPolicy']; /** * @description A description of the M2M Client to help you differentiate it from other M2M Clients in the project. * @example This M2M Client is used to sync data from the legacy EHR system. */ readonly description?: string; /** * @description A name for the M2M Client to help you differentiate it from other M2M Clients in the project. * @example Legacy EHR Sync */ readonly name?: string; /** @description A list of roles assigned to this M2M Client */ readonly roles?: readonly components['schemas']['RoleStub'][]; }; readonly m2mPutPost: { /** @description An access policy to assign to this M2M Client */ readonly accessPolicy?: components['schemas']['AccessPolicy']; /** * @description A description of the M2M Client to help you differentiate it from other M2M Clients in the project. * @example This M2M Client is used to sync data from the legacy EHR system. */ readonly description?: string; /** @description An URL of JWK set used for getting an access token by signed authentication JWT */ readonly jwksUrl?: string; /** * @description A name for the M2M Client to help you differentiate it from other M2M Clients in the project. * @example Legacy EHR Sync */ readonly name?: string; /** @description A list of Role IDs to assign to the M2M client. If the accessPolicy property is not provided this property is required and may not be empty. */ readonly roles?: readonly string[]; }; readonly MessagingServiceInfo: { /** * @description A phone number that is used by service. * @example +18755692671 */ readonly phoneNumber?: string; /** * @description A type of the used phone number. Can be Toll-Free or 10DLC. * @example 10DLC */ readonly phoneNumberType?: string; /** * @description Represents an information about limits of sending messages per certain amount of time. * @example MPS: 3; Maximum Queue Length: 43,200 */ readonly rateLimits?: string; }; readonly projectResponse: { readonly defaultPatientRole?: components['schemas']['RoleStub']; readonly defaultSSOUserRole?: components['schemas']['RoleStub']; readonly description: string; /** * @default r4 * @enum {string} */ readonly fhirVersion: 'r4' | 'r5'; /** Format: uuid */ readonly id: string; readonly name: string; /** @description Indicates whether the project is in sandbox mode - currently for testing eRx features without affecting real medical services. */ readonly sandbox: boolean; /** @description Allows users to self-register to applications in this project. */ readonly signupEnabled: boolean; }; readonly RoleFull: components['schemas']['RoleStub'] & { /** @description The access policy associated with this Role. */ readonly accessPolicy?: components['schemas']['AccessPolicy']; /** @description A description of the Role to help you differentiate it from other Roles in the project. */ readonly description?: string; }; readonly RoleFullAllRequired: WithRequired; readonly RolePost: { /** @description The access policy associated with this Role. */ readonly accessPolicy?: components['schemas']['AccessPolicy']; /** @description A description of the Role to help you differentiate it from other Roles in the project. */ readonly description?: string; /** @description The name of the role. */ readonly name: string; }; readonly RoleStub: { /** * Format: uuid * @description The unique id of the role */ readonly id: string; /** @description The name of the role. */ readonly name: string; }; readonly RoleSummary: WithRequired; /** * @example { * "name": "m2m_client_secret", * "value": "SUPERSECRETVALUE42" * } */ readonly secret: { /** @description A name for the secret used to identify it for use in Zambda Functions. May contain letters, numbers, dashes, and underscores. */ readonly name: string; /** @description The secret value. Common examples include M2M Client credentials used to call Oystehr APIs, and third-party API keys used to integrate with external systems. */ readonly value: string; }; /** * @example { * "name": "m2m_client_secret", * "value": "SUPERSECRETVALUE42" * } */ readonly secretCreateParams: { /** @description A name for the secret used to identify it for use in Zambda Functions. May contain letters, numbers, dashes, and underscores. */ readonly name: string; /** @description The secret value. Common examples include M2M Client credentials used to call Oystehr APIs, and third-party API keys used to integrate with external systems. */ readonly value: string; }; readonly user: components['schemas']['userNoProfileOrRoles'] & { /** @description Reference to the FHIR resource that represents the User in the FHIR store. May be any of the following resource types: Practitioner, Patient, RelatedPerson. */ readonly profile?: string; /** @description The roles assigned to the User. */ readonly roles?: readonly components['schemas']['RoleStub'][]; }; readonly userAllRequired: WithRequired; readonly userNoProfileOrRoles: { /** @description The User's inline access policy. Either this or the `roles` property must be set. If both are set, the inline access policy is merged with the access policies defined by "roles" */ readonly accessPolicy?: components['schemas']['AccessPolicy']; /** * Format: email * @description The User's email address. */ readonly email?: string | null; /** Format: uuid */ readonly id?: string; /** @description The name of the connection used to authenticate the User. One of: email, sms, or the name of a custom SSO connection. */ readonly authenticationMethod?: string; /** @description A name for the User to help you differentiate them from other Users in the project. Defaults to the User's email or phone number if not provided. */ readonly name?: string; /** @description The User's phone number. */ readonly phoneNumber?: string | null; /** @description ssoData contains information about the user from a third-party SSO identity provider. For example, if you send a `upn` or other information in a SAML payload, it is stored here. It is only populated if the User authenticated via SSO with a third-party identity provider. */ readonly ssoData?: Record; }; readonly UserStub: { /** * Format: email * @description The User's email address. */ readonly email?: string; /** Format: uuid */ readonly id?: string; /** @description The name of the connection used to authenticate the User. One of: email, sms, or the name of a custom SSO connection. */ readonly authenticationMethod?: string; /** @description A name for the User to help you differentiate them from other Users in the project. Defaults to the User's email or phone number if not provided. */ readonly name?: string; /** @description Reference to the FHIR resource that represents the User in the FHIR store. May be any of the following resource types: Practitioner, Patient, RelatedPerson. */ readonly profile?: string; }; /** * @example { * "status": 200, * "output": "{\"message\": \"Patient checked in!\"}" * } */ readonly zambdaExecuteResponse: { /** * Format: json * @description JSON response payload from the Zambda Function */ readonly output: string; /** @description HTTP status code from the Zambda Function */ readonly status: number; }; /** * @example { * "id": "22f2f7ca-1b3c-4d4e-b168-5499c72004b7", * "name": "ExampleZambda", * "status": "Draft", * "triggerMethod": "http_auth" * } */ readonly zambdaFunction: { /** @description Info about the zip file that was uploaded for the Zambda Function. */ readonly fileInfo?: { /** @description The date and time when the Z3 Object was last modified in ISO 8601 format. */ readonly lastModified?: string; /** @description The name of the zip file that was uploaded for the Zambda Function. */ readonly name?: string; /** @description The size of the zip file that was uploaded for the Zambda Function. */ readonly size?: number; }; /** Format: uuid */ readonly id?: string; /** @description A name for the Zambda Function. May contain letters, numbers, dashes, and underscores. Must be unique within the project. */ readonly name?: string; /** @description Required when triggerMethod is 'cron', the schedule object defines when the Zambda Function is invoked. */ readonly schedule?: { /** * Format: yyyy-mm-ddThh:mm:ss * @description An optional end date and time when the cron expression will no longer be in effect. */ readonly end?: string; /** @description A cron expression that determines when the Zambda Function is invoked. The expression must conform to the format here, https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-cron-expressions.html. */ readonly expression: string; /** @description Optional retry policy that defines the behavior of retry attempts and event age. */ readonly retryPolicy?: { /** * @description The maximum age of a request that Zambda sends to a function for processing, in seconds. * @default 90 */ readonly maximumEventAge?: number; /** * @description The maximum number of times to retry when the function returns an error. * @default 0 */ readonly maximumRetry?: number; }; /** * Format: yyyy-mm-ddThh:mm:ss * @description An optional start date and time when the cron expression will go into effect. */ readonly start?: string; }; /** * @description The Zambda Function status provides information about the Functions state including whether it is ready to be invoked. * @enum {string} */ readonly status?: 'Draft' | 'Pending' | 'Active' | 'Failed' | 'Inactive' | 'Validating'; /** * @description Status of the latest deployment of a zambda function. */ readonly deploymentStatus?: string; /** * @description The trigger method for the Zambda Function determines how the Function is invoked. Learn more about the different types here, https://docs.oystehr.com/services/zambda/#types-of-zambdas. * @enum {string} */ readonly triggerMethod?: 'http_auth' | 'http_open' | 'subscription' | 'cron'; }; readonly zambdaFunctionWithRequired: WithRequired; }; responses: { /** @description Bad Request */ readonly '400BadRequest': { content: { readonly 'application/json': { readonly code: string; readonly message: string; }; }; }; /** @description Unauthorized */ readonly '401Unauthorized': { content: { readonly 'application/json': { readonly code: string; readonly message: string; }; }; }; /** @description Forbidden */ readonly '403Forbidden': { content: { readonly 'application/json': { readonly code: string; readonly message: string; }; }; }; /** @description Not Found */ readonly '404NotFound': { content: { readonly 'application/json': { readonly code: string; readonly message: string; }; }; }; }; parameters: never; requestBodies: never; headers: never; pathItems: never; } export type $defs = Record; export type external = Record; export type operations = Record; export declare const servers: string[]; export {};