swagger: "2.0" info: version: 0.3.0 title: "members" description: "Membership Microservice" termsOfService: "https://salesforcedevops.net/terms/" contact: email: "vern@vernonkeenan.com" license: name: "Proprietary - Copyright (c) 2018-2023 by Vernon Keenan" securityDefinitions: ApiKeyAuth: type: "apiKey" in: "header" name: "X-API-Key" schemes: - "http" basePath: "/v1" host: "members.vernonkeenan.com:8080" consumes: - "application/json" produces: - "application/json" parameters: AttendeeRequest: description: An array of new Attendee records in: body name: attendeeRequest required: true schema: $ref: "#/definitions/AttendeeRequest" CertificateRequest: description: An array of new Certificate records in: body name: certificateRequest required: true schema: $ref: "#/definitions/CertificateRequest" CourseLessonRequest: description: An array of new CourseLesson records in: body name: courselessonRequest required: true schema: $ref: "#/definitions/CourseLessonRequest" clusterIdQuery: description: Record Id of a Cluster in: query name: clusterId required: false type: string ClusterRequest: description: An array of Cluster records in: body name: ClusterRequest required: true schema: $ref: "#/definitions/ClusterRequest" CourseRequest: description: An array of new Course records in: body name: courseRequest required: true schema: $ref: "#/definitions/CourseRequest" CourseSectionRequest: description: An array of new CourseSection records in: body name: coursesectionRequest required: true schema: $ref: "#/definitions/CourseSectionRequest" OutgoingEmailMessageRequest: description: An array of new Outgoing Email Message records in: body name: OutgoingEmailMessageRequest required: true schema: $ref: "#/definitions/OutgoingEmailMessageRequest" EnrollmentRequest: description: An array of new Enrollment records in: body name: enrollmentRequest required: true schema: $ref: "#/definitions/EnrollmentRequest" EventCategoryAssignmentRequest: description: An array of new EventCategoryAssignment records in: body name: eventcategoryassignmentRequest required: true schema: $ref: "#/definitions/EventCategoryAssignmentRequest" EventCategoryRequest: description: An array of new EventCategory records in: body name: eventcategoryRequest required: true schema: $ref: "#/definitions/EventCategoryRequest" EventRequest: description: An array of new Event records in: body name: eventRequest required: true schema: $ref: "#/definitions/EventRequest" FavoriteRequest: description: An array of new Favorite records in: body name: favoriteRequest required: true schema: $ref: "#/definitions/FavoriteRequest" InvoiceRequest: description: An array of new Invoice records in: body name: invoiceRequest required: true schema: $ref: "#/definitions/InvoiceRequest" IssuedCertificateRequest: description: An array of new IssuedCertificate records in: body name: issuedcertificateRequest required: true schema: $ref: "#/definitions/IssuedCertificateRequest" LessonProgressRequest: description: An array of new LessonProgress records in: body name: lessonprogressRequest required: true schema: $ref: "#/definitions/LessonProgressRequest" OrderRequest: description: An array of new Order records in: body name: orderRequest required: true schema: $ref: "#/definitions/OrderRequest" PaymentMethodRequest: description: An array of new PaymentMethod records in: body name: paymentmethodRequest required: true schema: $ref: "#/definitions/PaymentMethodRequest" ResearchProjectCompanyRequest: description: An array of new ResearchProjectCompany records in: body name: researchprojectcompanyRequest required: true schema: $ref: "#/definitions/ResearchProjectCompanyRequest" ResearchProjectRequest: description: An array of new ResearchProject records in: body name: researchprojectRequest required: true schema: $ref: "#/definitions/ResearchProjectRequest" ResearchProjectTopicRequest: description: An array of new ResearchProjectTopic records in: body name: researchprojecttopicRequest required: true schema: $ref: "#/definitions/ResearchProjectTopicRequest" templateIdQuery: description: Template ID in: query name: templateId type: string TemplateRequest: description: An array of Template records in: body name: TemplateRequest required: true schema: $ref: "#/definitions/TemplateRequest" tenantIdQuery: description: Record Id of a Tenant in: query name: tenantId required: false type: string tenantRequest: description: An array of Tenant records in: body name: TenantRequest required: true schema: $ref: "#/definitions/TenantRequest" TicketRequest: description: An array of new Ticket records in: body name: ticketRequest required: true schema: $ref: "#/definitions/TicketRequest" TransactionRequest: description: An array of new Transaction records in: body name: transactionRequest required: true schema: $ref: "#/definitions/TransactionRequest" UserRequest: description: An array of User records in: body name: UserRequest required: true schema: $ref: "#/definitions/UserRequest" WebhookClerkRequest: description: An array of new WebhookClerk records in: body name: webhookclerkRequest required: true schema: $ref: "#/definitions/WebhookClerkRequest" activeQuery: description: Retrieve active records only? in: query name: active required: false type: boolean auth0UserIdQuery: description: External Auth0 User ID in: query name: auth0UserId required: false type: string userIdQuery: description: Internal User ID in: query name: userId required: false type: string contactIdQuery: description: Internal Contact ID (links to Account) in: query name: contactId required: false type: string databaseIdQuery: description: Record Id of a Database in: query name: databaseId type: string required: true databaseRequest: description: An array of Database records in: body name: DatabaseRequest required: true schema: $ref: "#/definitions/DatabaseRequest" emailMessageIdQuery: description: Email Message ID in: query name: emailMessageId type: string emailQuery: description: Email address in: query name: email required: false type: string idQuery: description: Unique Record ID in: query name: id required: false type: string objectTypeQuery: description: Object Type Name in: query name: objectType type: string isMasterQuery: description: Is Master Template? in: query name: isMaster type: boolean limitQuery: description: How many objects to return at one time format: int64 in: query name: limit required: false type: integer offsetQuery: description: How many objects to skip? format: int64 in: query name: offset required: false type: integer responses: AccessForbidden: description: Access forbidden, account lacks access headers: Access-Control-Allow-Origin: type: string x-nullable: true schema: $ref: "#/definitions/Error" AttendeeResponse: description: Attendee Response Object schema: $ref: "#/definitions/AttendeeResponse" CertificateResponse: description: Certificate Response Object schema: $ref: "#/definitions/CertificateResponse" ClusterResponse: description: Response with Cluster objects schema: $ref: "#/definitions/ClusterResponse" CourseLessonResponse: description: CourseLesson Response Object schema: $ref: "#/definitions/CourseLessonResponse" CourseResponse: description: Course Response Object schema: $ref: "#/definitions/CourseResponse" CourseSectionResponse: description: CourseSection Response Object schema: $ref: "#/definitions/CourseSectionResponse" DatabaseResponse: headers: Access-Control-Allow-Origin: type: string x-nullable: true description: Response with Database objects schema: $ref: "#/definitions/DatabaseResponse" EmailMessagesResponse: description: "Array of Email Messages" headers: Access-Control-Allow-Origin: type: string schema: $ref: "#/definitions/EmailMessagesResponse" EnrollmentResponse: description: Enrollment Response Object schema: $ref: "#/definitions/EnrollmentResponse" EventCategoryAssignmentResponse: description: EventCategoryAssignment Response Object schema: $ref: "#/definitions/EventCategoryAssignmentResponse" EventCategoryResponse: description: EventCategory Response Object schema: $ref: "#/definitions/EventCategoryResponse" EventResponse: description: Event Response Object schema: $ref: "#/definitions/EventResponse" FavoriteResponse: description: Favorite Response Object schema: $ref: "#/definitions/FavoriteResponse" InvoiceResponse: description: Invoice Response Object schema: $ref: "#/definitions/InvoiceResponse" IssuedCertificateResponse: description: IssuedCertificate Response Object schema: $ref: "#/definitions/IssuedCertificateResponse" LessonProgressResponse: description: LessonProgress Response Object schema: $ref: "#/definitions/LessonProgressResponse" NotFound: description: Resource was not found headers: Access-Control-Allow-Origin: type: string x-nullable: true schema: $ref: "#/definitions/Error" OrderResponse: description: Order Response Object schema: $ref: "#/definitions/OrderResponse" PaymentMethodResponse: description: PaymentMethod Response Object schema: $ref: "#/definitions/PaymentMethodResponse" ResearchProjectCompanyResponse: description: ResearchProjectCompany Response Object schema: $ref: "#/definitions/ResearchProjectCompanyResponse" ResearchProjectResponse: description: ResearchProject Response Object schema: $ref: "#/definitions/ResearchProjectResponse" ResearchProjectTopicResponse: description: ResearchProjectTopic Response Object schema: $ref: "#/definitions/ResearchProjectTopicResponse" ServerError: description: Server Internal Error headers: Access-Control-Allow-Origin: type: string x-nullable: true schema: $ref: "#/definitions/Error" TenantResponse: headers: Access-Control-Allow-Origin: type: string x-nullable: true description: Response with Tenant objects schema: $ref: "#/definitions/TenantResponse" TemplateResponse: description: Response with Template objects schema: $ref: "#/definitions/TemplateResponse" TicketResponse: description: Ticket Response Object schema: $ref: "#/definitions/TicketResponse" TransactionResponse: description: Transaction Response Object schema: $ref: "#/definitions/TransactionResponse" Unauthorized: description: Access Unauthorized, invalid API-KEY was used schema: $ref: "#/definitions/Error" UnprocessableEntity: description: Unprocessable Entity, likely a bad parameter schema: $ref: "#/definitions/Error" UserResponse: description: Response with User objects schema: $ref: "#/definitions/UserResponse" WebhookClerkResponse: description: WebhookClerk Response Object schema: $ref: "#/definitions/WebhookClerkResponse" paths: /attendees: delete: operationId: deleteAttendee parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a Attendee tags: - Attendees get: operationId: getAttendees parameters: - $ref: "#/parameters/idQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" responses: "200": description: OK summary: Get a list of Attendees tags: - Attendees post: operationId: createAttendee parameters: - $ref: "#/parameters/AttendeeRequest" responses: "201": description: Created summary: Create a new Attendee tags: - Attendees put: operationId: updateAttendee parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing Attendee tags: - Attendees /certificates: delete: operationId: deleteCertificate parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a Certificate tags: - Certificates get: operationId: getCertificates parameters: - $ref: "#/parameters/idQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" responses: "200": description: OK summary: Get a list of Certificates tags: - Certificates post: operationId: createCertificate parameters: - $ref: "#/parameters/CertificateRequest" responses: "201": description: Created summary: Create a new Certificate tags: - Certificates put: operationId: updateCertificate parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing Certificate tags: - Certificates /clusters: get: description: Return a list of Cluster records from the datastore operationId: getClusters parameters: - $ref: "#/parameters/clusterIdQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" responses: "200": $ref: "#/responses/ClusterResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Get a list Clusters tags: - Clusters post: description: Create Clusters in Taxnexus operationId: postClusters parameters: - $ref: "#/parameters/ClusterRequest" responses: "200": $ref: "#/responses/ClusterResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Create new Clusters tags: - Clusters put: description: Update Cluster in Taxnexus operationId: putClusters parameters: - $ref: "#/parameters/ClusterRequest" responses: "200": $ref: "#/responses/ClusterResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Update Clustera tags: - Clusters /courselessons: delete: operationId: deleteCourseLesson parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a CourseLesson tags: - CourseLessons get: operationId: getCourseLessons parameters: - $ref: "#/parameters/idQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" responses: "200": description: OK summary: Get a list of CourseLessons tags: - CourseLessons post: operationId: createCourseLesson parameters: - $ref: "#/parameters/CourseLessonRequest" responses: "201": description: Created summary: Create a new CourseLesson tags: - CourseLessons put: operationId: updateCourseLesson parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing CourseLesson tags: - CourseLessons /courses: delete: operationId: deleteCourse parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a Course tags: - Courses get: operationId: getCourses parameters: - $ref: "#/parameters/idQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" responses: "200": description: OK summary: Get a list of Courses tags: - Courses post: operationId: createCourse parameters: - $ref: "#/parameters/CourseRequest" responses: "201": description: Created summary: Create a new Course tags: - Courses put: operationId: updateCourse parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing Course tags: - Courses /coursesections: delete: operationId: deleteCourseSection parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a CourseSection tags: - CourseSections get: operationId: getCourseSections parameters: - $ref: "#/parameters/idQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" responses: "200": description: OK summary: Get a list of CourseSections tags: - CourseSections post: operationId: createCourseSection parameters: - $ref: "#/parameters/CourseSectionRequest" responses: "201": description: Created summary: Create a new CourseSection tags: - CourseSections put: operationId: updateCourseSection parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing CourseSection tags: - CourseSections /databases: get: description: Return a list of Database records from the datastore operationId: getDatabases parameters: - $ref: "#/parameters/databaseIdQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" responses: "200": $ref: "#/responses/DatabaseResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Get a list Databases tags: - Databases post: description: Create Databases in Taxnexus operationId: postDatabases parameters: - $ref: "#/parameters/databaseRequest" responses: "200": $ref: "#/responses/DatabaseResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Create new Databases tags: - Databases put: description: Update Database in Taxnexus operationId: putDatabases parameters: - $ref: "#/parameters/databaseRequest" responses: "200": $ref: "#/responses/DatabaseResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Update Databases tags: - Databases /emails: get: security: - ApiKeyAuth: [] summary: "Get email messages from data store" operationId: getEmailMessages description: "Retrieves email messages from workflow storage" parameters: - $ref: "#/parameters/emailMessageIdQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" tags: - Emails responses: "200": $ref: "#/responses/EmailMessagesResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" post: security: - ApiKeyAuth: [] summary: Add new email messages to the outgoing queue operationId: postOutgoingEmailMessages description: Insert new email messages into workflow storage parameters: - $ref: "#/parameters/OutgoingEmailMessageRequest" responses: "200": $ref: "#/responses/EmailMessagesResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" tags: - Emails /enrollments: delete: operationId: deleteEnrollment parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a Enrollment tags: - Enrollments get: operationId: getEnrollments parameters: - $ref: "#/parameters/idQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" responses: "200": description: OK summary: Get a list of Enrollments tags: - Enrollments post: operationId: createEnrollment parameters: - $ref: "#/parameters/EnrollmentRequest" responses: "201": description: Created summary: Create a new Enrollment tags: - Enrollments put: operationId: updateEnrollment parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing Enrollment tags: - Enrollments /eventcategories: delete: operationId: deleteEventCategory parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a EventCategory tags: - EventCategories get: operationId: getEventCategorys parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Get a list of EventCategories tags: - EventCategories post: operationId: createEventCategory parameters: - $ref: "#/parameters/EventCategoryRequest" responses: "201": description: Created summary: Create a new EventCategory tags: - EventCategories put: operationId: updateEventCategory parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing EventCategory tags: - EventCategories /eventcategoryassignments: delete: operationId: deleteEventCategoryAssignment parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a EventCategoryAssignment tags: - EventCategoryAssignments get: operationId: getEventCategoryAssignments parameters: - $ref: "#/parameters/idQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" responses: "200": description: OK summary: Get a list of EventCategoryassignments tags: - EventCategoryAssignments post: operationId: createEventCategoryAssignment parameters: - $ref: "#/parameters/EventCategoryAssignmentRequest" responses: "201": description: Created summary: Create a new EventCategoryAssignment tags: - EventCategoryAssignments put: operationId: updateEventCategoryAssignment parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing EventCategoryAssignment tags: - EventCategoryAssignments /events: delete: operationId: deleteEvent parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a Event tags: - Events get: operationId: getEvents parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Get a list of Events tags: - Events post: operationId: createEvent parameters: - $ref: "#/parameters/EventRequest" responses: "201": description: Created summary: Create a new Event tags: - Events put: operationId: updateEvent parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing Event tags: - Events /favorites: delete: operationId: deleteFavorite parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a Favorite tags: - Favorites get: operationId: getFavorites parameters: - $ref: "#/parameters/idQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" responses: "200": description: OK summary: Get a list of Favorites tags: - Favorites post: operationId: createFavorite parameters: - $ref: "#/parameters/FavoriteRequest" responses: "201": description: Created summary: Create a new Favorite tags: - Favorites put: operationId: updateFavorite parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing Favorite tags: - Favorites /invoices: delete: operationId: deleteInvoice parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a Invoice tags: - Invoices get: operationId: getInvoices parameters: - $ref: "#/parameters/idQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" responses: "200": description: OK summary: Get a list of Invoices tags: - Invoices post: operationId: createInvoice parameters: - $ref: "#/parameters/InvoiceRequest" responses: "201": description: Created summary: Create a new Invoice tags: - Invoices put: operationId: updateInvoice parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing Invoice tags: - Invoices /issuedcertificates: delete: operationId: deleteIssuedCertificate parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a IssuedCertificate tags: - IssuedCertificates get: operationId: getIssuedCertificates parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Get a list of IssuedCertificates tags: - IssuedCertificates post: operationId: createIssuedCertificate parameters: - $ref: "#/parameters/IssuedCertificateRequest" responses: "201": description: Created summary: Create a new IssuedCertificate tags: - IssuedCertificates put: operationId: updateIssuedCertificate parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing IssuedCertificate tags: - IssuedCertificates /lessonprogress: delete: operationId: deleteLessonProgress parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a LessonProgress tags: - LessonProgress get: operationId: getLessonProgress parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Get a list of LessonProgress tags: - LessonProgress post: operationId: createLessonProgress parameters: - $ref: "#/parameters/LessonProgressRequest" responses: "201": description: Created summary: Create a new LessonProgress tags: - LessonProgress put: operationId: updateLessonProgress parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing LessonProgress tags: - LessonProgress /orders: delete: operationId: deleteOrder parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a Order tags: - Orders get: operationId: getOrders parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Get a list of Orders tags: - Orders post: operationId: createOrder parameters: - $ref: "#/parameters/OrderRequest" responses: "201": description: Created summary: Create a new Order tags: - Orders put: operationId: updateOrder parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing Order tags: - Orders /paymentmethods: delete: operationId: deletePaymentMethod parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a PaymentMethod tags: - PaymentMethods get: operationId: getPaymentMethods parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Get a list of PaymentMethods tags: - PaymentMethods post: operationId: createPaymentMethod parameters: - $ref: "#/parameters/PaymentMethodRequest" responses: "201": description: Created summary: Create a new PaymentMethod tags: - PaymentMethods put: operationId: updatePaymentMethod parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing PaymentMethod tags: - PaymentMethods /researchprojectcompanys: delete: operationId: deleteResearchProjectCompany parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a ResearchProjectCompany tags: - ResearchProjectCompanies get: operationId: getResearchProjectCompanies parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Get a list of ResearchProjectCompanies tags: - ResearchProjectCompanies post: operationId: createResearchProjectCompany parameters: - $ref: "#/parameters/ResearchProjectCompanyRequest" responses: "201": description: Created summary: Create a new ResearchProjectCompany tags: - ResearchProjectCompanies put: operationId: updateResearchProjectCompany parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing ResearchProjectCompany tags: - ResearchProjectCompanies /researchprojects: delete: operationId: deleteResearchProject parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a ResearchProject tags: - ResearchProjects get: operationId: getResearchProjects parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Get a list of ResearchProjects tags: - ResearchProjects post: operationId: createResearchProject parameters: - $ref: "#/parameters/ResearchProjectRequest" responses: "201": description: Created summary: Create a new ResearchProject tags: - ResearchProjects put: operationId: updateResearchProject parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing ResearchProject tags: - ResearchProjects /researchprojecttopics: delete: operationId: deleteResearchProjectTopic parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a ResearchProjectTopic tags: - ResearchProjectTopics get: operationId: getResearchProjectTopics parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Get a list of ResearchProjectTopics tags: - ResearchProjectTopics post: operationId: createResearchProjectTopic parameters: - $ref: "#/parameters/ResearchProjectTopicRequest" responses: "201": description: Created summary: Create a new ResearchProjectTopic tags: - ResearchProjectTopics put: operationId: updateResearchProjectTopic parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing ResearchProjectTopic tags: - ResearchProjectTopics /tenants: get: description: Return a list of Tenant records from the datastore operationId: getTenants parameters: - $ref: "#/parameters/tenantIdQuery" - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" responses: "200": $ref: "#/responses/TenantResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Get a list Tenants tags: - Tenants post: description: Create Tenants in Taxnexus operationId: postTenants parameters: - $ref: "#/parameters/tenantRequest" responses: "200": $ref: "#/responses/TenantResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Create new Tenants tags: - Tenants put: description: Update Tenant in Taxnexus operationId: putTenants parameters: - $ref: "#/parameters/tenantRequest" responses: "200": $ref: "#/responses/TenantResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Update Tenants tags: - Tenants /templates: get: description: Return a list of Templates from the datastore operationId: getTemplates parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/activeQuery" - $ref: "#/parameters/templateIdQuery" - $ref: "#/parameters/isMasterQuery" - $ref: "#/parameters/objectTypeQuery" responses: "200": $ref: "#/responses/TemplateResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Get a list Templates tags: - Templates post: description: Create new Templates operationId: postTemplates parameters: - $ref: "#/parameters/TemplateRequest" responses: "200": $ref: "#/responses/TemplateResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Create new Templates tags: - Templates /tickets: delete: operationId: deleteTicket parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a Ticket tags: - Tickets get: operationId: getTickets parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Get a list of Tickets tags: - Tickets post: operationId: createTicket parameters: - $ref: "#/parameters/TicketRequest" responses: "201": description: Created summary: Create a new Ticket tags: - Tickets put: operationId: updateTicket parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing Ticket tags: - Tickets /transactions: delete: operationId: deleteTransaction parameters: - $ref: "#/parameters/idQuery" responses: "204": description: No Content summary: Delete a Transaction tags: - Transactions get: operationId: getTransactions parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Get a list of Transactions tags: - Transactions post: operationId: createTransaction parameters: - $ref: "#/parameters/TransactionRequest" responses: "201": description: Created summary: Create a new Transaction tags: - Transactions put: operationId: updateTransaction parameters: - $ref: "#/parameters/idQuery" responses: "200": description: OK summary: Update an existing Transaction tags: - Transactions /users/onboard: post: description: Async onboard new users operationId: postUsersOnboard parameters: - $ref: "#/parameters/UserRequest" responses: "200": $ref: "#/responses/UserResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Async onboard new users tags: - Users /webhooks/clerk: post: description: Clerk webhook operationId: postWebhooksClerk parameters: - $ref: "#/parameters/WebhookClerkRequest" responses: "201": $ref: "#/responses/WebhookClerkResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" summary: Clerk webhook tags: - Webhooks /users: get: description: Return a list of User records from the datastore operationId: getUsers parameters: - $ref: "#/parameters/limitQuery" - $ref: "#/parameters/offsetQuery" - $ref: "#/parameters/emailQuery" - $ref: "#/parameters/auth0UserIdQuery" - $ref: "#/parameters/userIdQuery" - $ref: "#/parameters/contactIdQuery" responses: "200": $ref: "#/responses/UserResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Get a list Users tags: - Users post: description: Create new Users operationId: postUsers parameters: - $ref: "#/parameters/UserRequest" responses: "200": $ref: "#/responses/UserResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Create new Users tags: - Users put: description: Update existing users operationId: putUsers parameters: - $ref: "#/parameters/UserRequest" responses: "200": $ref: "#/responses/UserResponse" "401": $ref: "#/responses/Unauthorized" "403": $ref: "#/responses/AccessForbidden" "404": $ref: "#/responses/NotFound" "422": $ref: "#/responses/UnprocessableEntity" "500": $ref: "#/responses/ServerError" security: - ApiKeyAuth: [] summary: Update existing users tags: - Users definitions: Address: properties: City: description: City type: string x-nullable: true Country: description: Country full name type: string x-nullable: true CountryCode: description: Country Code type: string x-nullable: true PostalCode: description: Postal Code type: string x-nullable: true State: description: State full name type: string x-nullable: true StateCode: description: State Code type: string x-nullable: true Street: description: Street number and name type: string x-nullable: true type: object Attendee: properties: CheckinStatus: type: integer CreatedDate: type: string x-nullable: true EventID: type: string x-nullable: true ID: type: string LastModifiedDate: type: string x-nullable: true TicketID: type: string x-nullable: true UserID: type: string x-nullable: true type: object AttendeeRequest: description: An array of Attendee objects properties: Data: items: $ref: "#/definitions/Attendee" type: array type: object AttendeeResponse: description: An array of Attendee objects properties: Data: items: $ref: "#/definitions/Attendee" type: array type: object Certificate: properties: CertificateTemplate: type: string x-nullable: true CourseID: type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true Description: type: string x-nullable: true ID: type: string LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true Title: type: string x-nullable: true type: object CertificateRequest: description: An array of Certificate objects properties: Data: items: $ref: "#/definitions/Certificate" type: array type: object CertificateResponse: description: An array of Certificate objects properties: Data: items: $ref: "#/definitions/Certificate" type: array type: object Cluster: properties: CreatedByID: description: Created By type: string x-nullable: true CreatedDate: description: Created Date type: string x-nullable: true Description: description: Description type: string x-nullable: true Environment: description: Environment type: string x-nullable: true Gateway: description: Gateway type: string x-nullable: true ID: description: Record Id type: string IPAddress: description: IP Address type: string x-nullable: true LastModifiedByID: description: Last Modified By type: string x-nullable: true LastModifiedDate: description: Last Modified Date type: string x-nullable: true Name: description: Cluster Name type: string x-nullable: true OwnerID: description: Owner type: string x-nullable: true Ref: description: External Reference type: string x-nullable: true Status: description: Status type: string x-nullable: true Subnet: description: Subnet type: string x-nullable: true TenantID: description: The ID of the tenant who owns this Database type: string x-nullable: true Type: description: Type type: string x-nullable: true Zone: description: Zone type: string x-nullable: true type: object ClusterRequest: properties: Data: items: $ref: "#/definitions/Cluster" type: array type: object ClusterResponse: description: An array of cluster objects properties: Data: items: $ref: "#/definitions/Cluster" type: array Meta: $ref: "#/definitions/ResponseMeta" type: object Course: properties: CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true Description: type: string x-nullable: true Fulldescription: type: string x-nullable: true ID: type: string InstructorID: type: string x-nullable: true LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true Price: type: number Title: type: string x-nullable: true type: object CourseLesson: properties: Content: type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true ID: type: string LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true Order: type: integer SectionID: type: string x-nullable: true Title: type: string x-nullable: true VideoURL: type: string x-nullable: true type: object CourseLessonRequest: description: An array of CourseLesson objects properties: Data: items: $ref: "#/definitions/CourseLesson" type: array type: object CourseLessonResponse: description: An array of CourseLesson objects properties: Data: items: $ref: "#/definitions/CourseLesson" type: array type: object CourseRequest: description: An array of Course objects properties: Data: items: $ref: "#/definitions/Course" type: array type: object CourseResponse: description: An array of Course objects properties: Data: items: $ref: "#/definitions/Course" type: array type: object CourseSection: properties: CourseID: type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true Description: type: string x-nullable: true ID: type: string LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true Order: type: integer Title: type: string x-nullable: true type: object CourseSectionRequest: description: An array of CourseSection objects properties: Data: items: $ref: "#/definitions/CourseSection" type: array type: object CourseSectionResponse: description: An array of CourseSection objects properties: Data: items: $ref: "#/definitions/CourseSection" type: array type: object Database: description: A Database provisioned and owned by a Tenant properties: Active: description: Is this database active? type: boolean x-nullable: true ClusterID: description: The ID of the Cluster in which this database is deployed type: string x-nullable: true CreatedByID: description: Created By type: string x-nullable: true CreatedDate: description: Created Date type: string x-nullable: true DSN: description: Database connection string type: string x-nullable: true DatabaseName: description: The name of the physical database in the cluster type: string x-nullable: true ID: description: Record Id type: string LastModifiedByID: description: Last Modified By type: string x-nullable: true LastModifiedDate: description: Last Modifed Date type: string x-nullable: true Status: description: The current status of this Tenant type: string x-nullable: true TenantID: description: The ID of the tenant who owns this Database type: string x-nullable: true Type: description: The type of Database (mysql, etc) type: string x-nullable: true type: object DatabaseRequest: description: An array of Database objects properties: Data: items: $ref: "#/definitions/Database" type: array type: object DatabaseResponse: description: An array of Database objects properties: Data: items: $ref: "#/definitions/Database" type: array Meta: $ref: "#/definitions/ResponseMeta" type: object EmailMessage: properties: ActivityID: type: string x-nullable: true BCCAddress: type: string x-nullable: true CCAddress: type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true EmailMessageID: type: string x-nullable: true FromAddress: type: string x-nullable: true FromName: type: string x-nullable: true HTML: format: byte type: string x-nullable: true HasAttachment: type: boolean x-nullable: true Headers: $ref: "#/definitions/Headers" x-nullable: true ID: type: string Incoming: type: boolean x-nullable: true IsClientManaged: type: boolean x-nullable: true IsExternallyManaged: type: boolean x-nullable: true LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true MessageDate: type: string x-nullable: true MessageIdentifier: type: string x-nullable: true ParentID: type: string x-nullable: true RelatedToID: type: string x-nullable: true RelationAddress: type: string x-nullable: true RelationID: type: string x-nullable: true RelationObjectType: type: string x-nullable: true RelationType: type: string x-nullable: true ReplyToEmailMessageID: type: string x-nullable: true Status: type: string x-nullable: true Subject: type: string x-nullable: true Text: format: byte x-nullable: true type: string ThreadIdentifier: type: string x-nullable: true ToAddress: type: string x-nullable: true ValidatedFromAddress: type: string x-nullable: true type: object EmailMessageRequest: description: An array Taxnexus Send Email Message objects properties: data: items: $ref: "#/definitions/EmailMessage" type: array meta: $ref: "#/definitions/RequestMeta" type: object EmailMessagesResponse: description: An array Taxnexus user objects properties: data: items: $ref: "#/definitions/EmailMessage" type: array meta: $ref: "#/definitions/ResponseMeta" type: object Enrollment: properties: Completed: type: integer x-nullable: true CourseID: type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true EnrollmentDate: type: string x-nullable: true ID: type: string LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true UserID: type: string x-nullable: true type: object EnrollmentRequest: description: An array of Enrollment objects properties: Data: items: $ref: "#/definitions/Enrollment" type: array type: object EnrollmentResponse: description: An array of Enrollment objects properties: Data: items: $ref: "#/definitions/Enrollment" type: array type: object Error: properties: code: format: int64 type: integer fields: type: string message: type: string type: object Event: properties: Capacity: type: integer x-nullable: true Createdat: type: string x-nullable: true Description: type: string x-nullable: true EndDate: type: string x-nullable: true ID: type: string Location: type: string x-nullable: true OrganizeruserID: type: string x-nullable: true StartDate: type: string x-nullable: true Title: type: string x-nullable: true UpDatedat: type: string x-nullable: true type: object EventCategory: properties: CreatedDate: type: string x-nullable: true ID: type: string LastModifiedDate: type: string x-nullable: true Name: type: string x-nullable: true type: object EventCategoryAssignment: properties: Createdat: type: string x-nullable: true EventCategoryID: type: string x-nullable: true EventID: type: string x-nullable: true ID: type: string UpDatedat: type: string x-nullable: true type: object EventCategoryAssignmentRequest: description: An array of EventCategoryAssignment objects properties: Data: items: $ref: "#/definitions/EventCategoryAssignment" type: array type: object EventCategoryAssignmentResponse: description: An array of EventCategoryAssignment objects properties: Data: items: $ref: "#/definitions/EventCategoryAssignment" type: array type: object EventCategoryRequest: description: An array of EventCategory objects properties: Data: items: $ref: "#/definitions/EventCategory" type: array type: object EventCategoryResponse: description: An array of EventCategory objects properties: Data: items: $ref: "#/definitions/EventCategory" type: array type: object EventRequest: description: An array of Event objects properties: Data: items: $ref: "#/definitions/Event" type: array type: object EventResponse: description: An array of Event objects properties: Data: items: $ref: "#/definitions/Event" type: array type: object Favorite: properties: CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true Description: type: string x-nullable: true FavoriteID: type: string x-nullable: true Favoritetype: type: string x-nullable: true ID: type: string LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true Name: type: string x-nullable: true Path: type: string x-nullable: true TenantID: type: string x-nullable: true UserID: type: string x-nullable: true type: object FavoriteRequest: description: An array of Favorite objects properties: Data: items: $ref: "#/definitions/Favorite" type: array type: object FavoriteResponse: description: An array of Favorite objects properties: Data: items: $ref: "#/definitions/Favorite" type: array type: object Invoice: properties: Amount: type: number CourseID: type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true Currency: type: string x-nullable: true DueDate: type: string x-nullable: true ID: type: string Invoicenumber: type: string x-nullable: true LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true Status: type: string x-nullable: true TransactionID: type: string x-nullable: true UserID: type: string x-nullable: true type: object InvoiceRequest: description: An array of Invoice objects properties: Data: items: $ref: "#/definitions/Invoice" type: array type: object InvoiceResponse: description: An array of Invoice objects properties: Data: items: $ref: "#/definitions/Invoice" type: array type: object IssuedCertificate: properties: CertificateID: type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true EnrollmentID: type: string x-nullable: true ExpirationDate: type: string x-nullable: true ID: type: string IssueDate: type: string x-nullable: true LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true UserID: type: string x-nullable: true VerificationCode: type: string x-nullable: true type: object IssuedCertificateRequest: description: An array of IssuedCertificate objects properties: Data: items: $ref: "#/definitions/IssuedCertificate" type: array type: object IssuedCertificateResponse: description: An array of IssuedCertificate objects properties: Data: items: $ref: "#/definitions/IssuedCertificate" type: array type: object LessonProgress: properties: Completed: type: integer Completedat: type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true EnrollmentID: type: string x-nullable: true ID: type: string LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true LessonID: type: string x-nullable: true UserID: type: string x-nullable: true type: object LessonProgressRequest: description: An array of LessonProgress objects properties: Data: items: $ref: "#/definitions/LessonProgress" type: array type: object LessonProgressResponse: description: An array of LessonProgress objects properties: Data: items: $ref: "#/definitions/LessonProgress" type: array type: object Message: properties: Message: type: string x-nullable: true Ref: type: string x-nullable: true Status: type: integer type: object Headers: type: object properties: Key: type: string Values: items: items: type: string type: array type: array OutgoingEmailMessage: description: A new email message to be sent properties: BCCAddress: type: string x-nullable: true CCAddress: type: string x-nullable: true EmailMessageID: type: string x-nullable: true EmailTemplateID: type: string x-nullable: true ExternalID: type: string x-nullable: true FromContactID: type: string x-nullable: true FromName: type: string x-nullable: true Headers: $ref: "#/definitions/Headers" x-nullable: true HTML: type: string x-nullable: true ID: type: string Subject: type: string x-nullable: true Text: type: string x-nullable: true ToAddress: type: string x-nullable: true ToName: type: string x-nullable: true ValidatedFromAddress: type: string x-nullable: true WhoID: type: string x-nullable: true type: object OutgoingEmailMessageRequest: description: An array Taxnexus New Email Message objects properties: data: items: $ref: "#/definitions/OutgoingEmailMessage" type: array meta: $ref: "#/definitions/RequestMeta" type: object Order: properties: AmountpaID: type: number x-nullable: true Createdat: type: string x-nullable: true EventID: type: string x-nullable: true ID: type: string OrderStatus: type: string x-nullable: true PaymentMethod: type: string x-nullable: true TicketID: type: string x-nullable: true UpDatedat: type: string x-nullable: true UserID: type: string x-nullable: true type: object OrderRequest: description: An array of Order objects properties: Data: items: $ref: "#/definitions/Order" type: array type: object OrderResponse: description: An array of Order objects properties: Data: items: $ref: "#/definitions/Order" type: array type: object Pagination: properties: Limit: format: int64 type: integer POffset: format: int64 type: integer PageSize: format: int64 type: integer SetSize: format: int64 type: integer type: object PaymentMethod: properties: CardHolderName: type: string x-nullable: true CardNumber: type: string x-nullable: true CardType: type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true ExpirationMonth: type: integer ExpirationYear: type: integer ID: type: string Isdefault: type: integer LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true UserID: type: string x-nullable: true type: object PaymentMethodRequest: description: An array of PaymentMethod objects properties: Data: items: $ref: "#/definitions/PaymentMethod" type: array type: object PaymentMethodResponse: description: An array of PaymentMethod objects properties: Data: items: $ref: "#/definitions/PaymentMethod" type: array type: object RequestMeta: properties: TaxnexusAccount: description: Account Number of the Reseller or OEM type: string x-nullable: true required: - TaxnexusAccount type: object ResearchProject: properties: AccountID: type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true Description: type: string x-nullable: true ID: type: string LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true Name: type: string x-nullable: true TenantID: type: string x-nullable: true UserID: type: string x-nullable: true type: object ResearchProjectCompany: properties: AccountID: type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true ID: type: string LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true ResearchProjectID: type: string x-nullable: true TenantID: type: string x-nullable: true type: object ResearchProjectCompanyRequest: description: An array of ResearchProjectCompany objects properties: Data: items: $ref: "#/definitions/ResearchProjectCompany" type: array type: object ResearchProjectCompanyResponse: description: An array of ResearchProjectCompany objects properties: Data: items: $ref: "#/definitions/ResearchProjectCompany" type: array type: object ResearchProjectRequest: description: An array of ResearchProject objects properties: Data: items: $ref: "#/definitions/ResearchProject" type: array type: object ResearchProjectResponse: description: An array of ResearchProject objects properties: Data: items: $ref: "#/definitions/ResearchProject" type: array type: object ResearchProjectTopic: properties: CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true ID: type: string LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true ResearchProjectID: type: string x-nullable: true TenantID: type: string x-nullable: true TopicID: type: string x-nullable: true type: object ResearchProjectTopicRequest: description: An array of ResearchProjectTopic objects properties: Data: items: $ref: "#/definitions/ResearchProjectTopic" type: array type: object ResearchProjectTopicResponse: description: An array of ResearchProjectTopic objects properties: Data: items: $ref: "#/definitions/ResearchProjectTopic" type: array type: object ResponseMeta: properties: Contact: description: Microservice Contact Info type: string Copyright: description: Copyright Info type: string License: description: License Information and Restrictions type: string OperationID: description: Operation ID type: string Pagination: $ref: "#/definitions/Pagination" RequestIP: description: Request IP Address type: string RequestType: description: Request Type type: string RequestURL: description: Request URL type: string ServerInfo: description: Data Server Info type: string ServerResponseTime: description: Data Server Response Time (ms) type: string ServerTimestamp: description: Backend Server Timestamp type: string TaxnexusAccount: description: Account Number used for recording transactions type: string type: object TenantUser: description: Relationship object that connects users to a tenant properties: AccessLevel: description: The makeTenantUser access level for this User type: string x-nullable: true AccountID: description: Account ID type: string x-nullable: true Auth0UserID: description: Auth0 User ID type: string x-nullable: true CompanyName: description: Account Name type: string x-nullable: true ContactID: description: Contact ID type: string x-nullable: true TaxnexusAccount: description: Account type: string x-nullable: true TenantActive: description: Tenant active? type: boolean x-nullable: true TenantID: description: The Tenant ID type: string x-nullable: true TenantName: description: Tenant Name type: string x-nullable: true TenantStatus: description: Tenant Status type: string x-nullable: true TenantType: description: Tenant type type: string x-nullable: true TenantVersion: description: Tenant Version type: string x-nullable: true UserEmail: description: User Email Address type: string x-nullable: true UserFullName: description: User Full Name type: string x-nullable: true UserID: description: The User ID type: string x-nullable: true Username: description: Username type: string x-nullable: true type: object Role: description: A functional role within a Tenant properties: Auth0RoleID: description: The corresponding Auth0 Role type: string x-nullable: true CreatedByID: description: Created By type: string x-nullable: true CreatedDate: description: Created Date type: string x-nullable: true Description: description: Role Description type: string x-nullable: true ID: description: Record Id type: string LastModifiedByID: description: Last Modified By type: string x-nullable: true LastModifiedDate: description: Last Modifed Date type: string x-nullable: true RoleName: description: The name of this role type: string x-nullable: true TenantID: description: The ID of the Tenant that owns this Role type: string x-nullable: true type: object RoleRequest: description: An array of Role objects properties: Date: items: $ref: "#/definitions/Role" type: array type: object RoleResponse: description: An array of Role objects properties: Data: items: $ref: "#/definitions/Role" type: array Meta: $ref: "#/definitions/ResponseMeta" type: object Template: properties: CompanyID: description: Company type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true Description: description: Description type: string x-nullable: true HTML: description: HTML Body format: byte type: string ID: description: Record Id type: string IsActive: description: Active? type: boolean x-nullable: true IsMaster: description: Master Template? type: boolean x-nullable: true LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true Name: description: Template Name type: string x-nullable: true ObjectType: description: Object type: string x-nullable: true RecordTypeName: description: Record Type Name type: string x-nullable: true TenantID: description: Tenant that owns this object instance type: string x-nullable: true Type: description: Type type: string x-nullable: true URL: description: URL type: string x-nullable: true type: object TemplateRequest: description: An array of Templates properties: Data: items: $ref: "#/definitions/Template" type: array type: object TemplateResponse: description: An array of Templates properties: Data: items: $ref: "#/definitions/Template" type: array Meta: $ref: "#/definitions/ResponseMeta" type: object Tenant: description: Account Tenant properties: AccountID: description: The Account that owns this Tenant type: string x-nullable: true Active: description: Is this Tenant currently active? type: boolean x-nullable: true CreatedByID: description: Created By type: string x-nullable: true CreatedDate: description: Created Date type: string x-nullable: true Databases: items: $ref: "#/definitions/Database" type: array x-nullable: true ID: description: Record Id type: string LastModifiedByID: description: Last Modified By type: string x-nullable: true LastModifiedDate: description: Last Modifed Date type: string x-nullable: true Roles: items: $ref: "#/definitions/Role" type: array x-nullable: true Status: description: The current status of this Tenant type: string x-nullable: true TenantName: description: Name of the Tenant Resource type: string x-nullable: true TenantUsers: items: $ref: "#/definitions/TenantUser" type: array x-nullable: true Type: description: The type of Tenant type: string x-nullable: true Version: description: The version number of the Tenant Onboarding system used to create this tenant type: string x-nullable: true type: object TenantRequest: description: An array of Tenant objects properties: Data: items: $ref: "#/definitions/Tenant" type: array type: object TenantResponse: description: An array of Tenant objects properties: Data: items: $ref: "#/definitions/Tenant" type: array Meta: $ref: "#/definitions/ResponseMeta" type: object Ticket: properties: CreatedDate: type: string x-nullable: true EventID: type: string x-nullable: true ID: type: string LastModifiedDate: type: string x-nullable: true Price: type: number x-nullable: true Quantity: type: integer Tickettype: type: string x-nullable: true type: object TicketRequest: description: An array of Ticket objects properties: Data: items: $ref: "#/definitions/Ticket" type: array type: object TicketResponse: description: An array of Ticket objects properties: Data: items: $ref: "#/definitions/Ticket" type: array type: object Transaction: properties: Amount: type: number CourseID: type: string x-nullable: true CreatedByID: type: string x-nullable: true CreatedDate: type: string x-nullable: true Currency: type: string x-nullable: true EnrollmentID: type: string x-nullable: true ID: type: string LastModifiedByID: type: string x-nullable: true LastModifiedDate: type: string x-nullable: true PaymentMethodID: type: string x-nullable: true Status: type: string x-nullable: true TransactionDate: type: string x-nullable: true UserID: type: string x-nullable: true type: object TransactionRequest: description: An array of Transaction objects properties: Data: items: $ref: "#/definitions/Transaction" type: array type: object TransactionResponse: description: An array of Transaction objects properties: Data: items: $ref: "#/definitions/Transaction" type: array type: object User: properties: APIGatewayURL: description: API Gateway URL type: string x-nullable: true APIGatewayUser: description: API Gateway User type: string x-nullable: true APIKey: description: API Key type: string x-nullable: true AboutMe: description: About Me type: string x-nullable: true AccountID: description: Account ID type: string x-nullable: true Address: $ref: "#/definitions/Address" x-nullable: true Alias: description: Alias type: string x-nullable: true Auth0UserID: description: Auth0 User Id type: string x-nullable: true CommunityNickname: description: Nickname type: string x-nullable: true CompanyName: description: Company Name type: string x-nullable: true ContactID: description: Contact type: string x-nullable: true CreatedByID: description: Created User ID type: string x-nullable: true CreatedDate: description: Date Created type: string x-nullable: true DelegatedApproverID: description: Delegated Approver type: string x-nullable: true Department: description: Department type: string x-nullable: true Division: description: Division type: string x-nullable: true Email: description: Email address type: string x-nullable: true EmployeeNumber: description: Employee Number type: string x-nullable: true EndOfDay: description: Time day ends type: string x-nullable: true Environment: description: Environment type: string x-nullable: true Extension: description: Extension type: string x-nullable: true Fax: description: Fax type: string x-nullable: true FirstName: description: The first name type: string x-nullable: true ForecastEnabled: description: Allow Forecasting type: boolean x-nullable: true FullPhotoURL: description: Full Photo URL type: string x-nullable: true GitHub: description: GitHub type: string x-nullable: true ID: description: Record ID type: string IsActive: description: Active type: boolean x-nullable: true IsPortalEnabled: description: Is the user enabled for Communities? type: boolean x-nullable: true IsSystemControlled: type: boolean x-nullable: true LastIP: description: IP address of last login type: string x-nullable: true LastLogin: description: Last login time type: string x-nullable: true LastModifiedByID: description: Last Modified User ID type: string x-nullable: true LastModifiedDate: description: Last Modified Date type: string x-nullable: true LastName: description: The Last Name type: string x-nullable: true LinkedIn: description: LinkedIn type: string x-nullable: true LoginCount: description: Number of times user has logged in format: int64 type: number x-nullable: true ManagerID: description: Manager type: string x-nullable: true MobilePhone: description: Mobile type: string x-nullable: true Name: description: Name type: string x-nullable: true OutOfOfficeMessage: description: Out of office message type: string x-nullable: true Phone: description: Phone type: string x-nullable: true PortalRole: description: Portal Role Level type: string x-nullable: true ProfileID: description: Profile type: string x-nullable: true ReceivesAdminEmails: description: Info Emails type: boolean x-nullable: true SenderEmail: description: Email Sender Address type: string x-nullable: true SenderName: description: Email Sender Name type: string x-nullable: true SmallPhotoURL: description: Small Photo URL type: string x-nullable: true StartOfDay: description: The time day starts type: string x-nullable: true Status: description: Onboarding Status type: string x-nullable: true TaxnexusAccount: description: Account type: string x-nullable: true TenantID: description: Tenant ID associated with this user type: string x-nullable: true TenantUsers: items: $ref: "#/definitions/TenantUser" type: array x-nullable: true TimeZone: description: Time Zone type: string x-nullable: true Title: description: Title type: string x-nullable: true Twitter: description: Twitter type: string x-nullable: true UserRoleID: description: Role type: string x-nullable: true UserRoles: items: $ref: "#/definitions/UserRole" type: array x-nullable: true UserType: description: User Type type: string x-nullable: true Username: description: Username type: string x-nullable: true type: object UserRequest: properties: Data: items: $ref: "#/definitions/User" type: array type: object UserResponse: description: An array of Print-Ready ingest Objects properties: Data: items: $ref: "#/definitions/User" type: array Meta: $ref: "#/definitions/ResponseMeta" type: object UserRole: description: Relationship object that connects user to a role properties: AccountID: description: Account Id type: string x-nullable: true Auth0RoleID: description: Linked role ID type: string x-nullable: true Auth0UserID: description: Auth0 User ID type: string x-nullable: true CompanyName: description: Company Name type: string x-nullable: true ContactID: description: Contact ID type: string x-nullable: true RoleDescription: description: Role description type: string x-nullable: true RoleID: description: The Role ID type: string x-nullable: true RoleName: description: Role Name type: string x-nullable: true TaxnexusAccount: description: Account Number type: string x-nullable: true UserEmail: description: User Email Address type: string x-nullable: true UserFullName: description: User Full Name type: string x-nullable: true UserID: description: The User ID type: string x-nullable: true Username: description: Username type: string x-nullable: true type: object WebhookClerkRequest: description: Clerk webhook object properties: object: type: string type: description: Clerk Name type: string data: type: object type: object ClerkUser: description: Clerk user object type: object properties: external_id: type: string x-nullable: true description: |- The ID of the user as used in your external systems or your previous authentication solution. Must be unique across your instance. first_name: type: string x-nullable: true description: The first name to assign to the user last_name: type: string x-nullable: true description: The last name to assign to the user email_address: type: array items: type: string x-nullable: true description: |- Email addresses to add to the user. Must be unique across your instance. The first email address will be set as the user's primary email address. phone_number: type: array items: type: string x-nullable: true description: |- Phone numbers to add to the user. Must be unique across your instance. The first phone number will be set as the user's primary phone number. web3_wallet: type: array items: type: string x-nullable: true description: |- Web3 wallets to add to the user. Must be unique across your instance. The first wallet will be set as the user's primary wallet. username: type: string x-nullable: true description: |- The username to give to the user. It must be unique across your instance. password: type: string x-nullable: true description: |- The plaintext password to give the user. Must be at least 8 characters long, and can not be in any list of hacked passwords. password_digest: type: string x-nullable: true description: |- In case you already have the password digests and not the passwords, you can use them for the newly created user via this property. The digests should be generated with one of the supported algorithms. The hashing algorithm can be specified using the `password_hasher` property. password_hasher: type: string x-nullable: true description: |- The hashing algorithm that was used to generate the password digest. The algorithms we support at the moment are [bcrypt](https://en.wikipedia.org/wiki/Bcrypt), md5, pbkdf2_sha256, [pbkdf2_sha256_django](https://docs.djangoproject.com/en/4.0/topics/auth/passwords/), [scrypt_firebase](https://firebaseopensource.com/projects/firebase/scrypt/) and 2 [argon2](https://argon2.online/) variants, argon2i and argon2id. Each of the above expects the incoming digest to be of a particular format. More specifically: **bcrypt:** The digest should be of the following form: `$$$` **md5:** The digest should follow the regular form e.g.: `5f4dcc3b5aa765d61d8327deb882cf99` **pbkdf2_sha256:** This is the PBKDF2 algorithm using the SHA256 hashing function. The format should be as follows: `pbkdf2_sha256$$$` Note: Both the salt and the hash are expected to be base64-encoded. **pbkdf2_sha256_django:** This is the Django-specific variant of PBKDF2 and the digest should have the following format (as exported from Django): `pbkdf2_sha256$$$` Note: The salt is expected to be un-encoded, the hash is expected base64-encoded. **pbkdf2_sha1:** This is similar to pkbdf2_sha256_django, but with two differences: 1. uses sha1 instead of sha256 2. accepts the hash as a hex-encoded string The format is the following: `pbkdf2_sha1$$$` **scrypt_firebase:** The Firebase-specific variant of scrypt. The value is expected to have 6 segments separated by the $ character and include the following information: _hash:_ The actual Base64 hash. This can be retrieved when exporting the user from Firebase. _salt:_ The salt used to generate the above hash. Again, this is given when exporting the user. _signer key:_ The base64 encoded signer key. _salt separator:_ The base64 encoded salt separator. _rounds:_ The number of rounds the algorithm needs to run. _memory cost:_ The cost of the algorithm run The first 2 (hash and salt) are per user and can be retrieved when exporting the user from Firebase. The other 4 values (signer key, salt separator, rounds and memory cost) are project-wide settings and can be retrieved from the project's password hash parameters. Once you have all these, you can combine it in the following format and send this as the digest in order for Clerk to accept it: `$$$$$` **argon2i:** Algorithms in the argon2 family generate digests that encode the following information: _version (v):_ The argon version, version 19 is assumed _memory (m):_ The memory used by the algorithm (in kibibytes) _iterations (t):_ The number of iterations to perform _parallelism (p):_ The number of threads to use Parts are demarcated by the `$` character, with the first part identifying the algorithm variant. The middle part is a comma-separated list of the encoding options (memory, iterations, parallelism). The final part is the actual digest. `$argon2i$v=19$m=4096,t=3,p=1$4t6CL3P7YiHBtwESXawI8Hm20zJj4cs7/4/G3c187e0$m7RQFczcKr5bIR0IIxbpO2P0tyrLjf3eUW3M3QSwnLc` **argon2id:** See the previous algorithm for an explanation of the formatting. For the argon2id case, the value of the algorithm in the first part of the digest is `argon2id`: `$argon2id$v=19$m=64,t=4,p=8$Z2liZXJyaXNo$iGXEpMBTDYQ8G/71tF0qGjxRHEmR3gpGULcE93zUJVU` If you need support for any particular hashing algorithm, [please let us know](https://clerk.com/support). enum: - bcrypt - md5 - pbkdf2_sha256 - pbkdf2_sha256_django - pbkdf2_sha1 - scrypt_firebase - argon2i - argon2id skip_password_checks: type: boolean description: |- When set to `true` all password checks are skipped. It is recommended to use this method only when migrating plaintext passwords to Clerk. Upon migration the user base should be prompted to pick stronger password. skip_password_requirement: type: boolean description: |- When set to `true`, `password` is not required anymore when creating the user and can be omitted. This is useful when you are trying to create a user that doesn't have a password, in an instance that is using passwords. Please note that you cannot use this flag if password is the only way for a user to sign into your instance. totp_secret: type: string x-nullable: true description: |- In case TOTP is configured on the instance, you can provide the secret to enable it on the newly created user without the need to reset it. Please note that currently the supported options are: * Period: 30 seconds * Code length: 6 digits * Algorithm: SHA1 backup_codes: type: array items: type: string x-nullable: true description: |- If Backup Codes are configured on the instance, you can provide them to enable it on the newly created user without the need to reset them. You must provide the backup codes in plain format or the corresponding bcrypt digest. public_metadata: type: object description: Metadata saved on the user, that is visible to both your Frontend and Backend APIs private_metadata: type: object description: Metadata saved on the user, that is only visible to your Backend API unsafe_metadata: type: object description: |- Metadata saved on the user, that can be updated from both the Frontend and Backend APIs. Note: Since this data can be modified from the frontend, it is not guaranteed to be safe. created_at: type: string x-nullable: true description: A custom date/time denoting _when_ the user signed up to the application, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`). WebhookClerkResponse: description: Clerk webhook object properties: object: type: string x-nullable: true type: description: Clerk Name type: string x-nullable: true data: type: object type: object