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:
  - "https"
basePath: "/vk/members/v1"
host: "gw.tnxs.net"
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"
  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"
  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
  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"
  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
    schema:
      $ref: "#/definitions/Error"
  AttendeeResponse:
    description: Attendee Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/AttendeeResponse"
  CertificateResponse:
    description: Certificate Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/CertificateResponse"
  ClusterResponse:
    description: Response with Cluster objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/ClusterResponse"
  CourseLessonResponse:
    description: CourseLesson Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/CourseLessonResponse"
  CourseResponse:
    description: Course Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/CourseResponse"
  CourseSectionResponse:
    description: CourseSection Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/CourseSectionResponse"
  DatabaseResponse:
    headers:
      Access-Control-Allow-Origin:
        type: string
    description: Response with Database objects
    schema:
      $ref: "#/definitions/DatabaseResponse"
  EnrollmentResponse:
    description: Enrollment Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/EnrollmentResponse"
  EventCategoryAssignmentResponse:
    description: EventCategoryAssignment Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/EventCategoryAssignmentResponse"
  EventCategoryResponse:
    description: EventCategory Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/EventCategoryResponse"
  EventResponse:
    description: Event Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/EventResponse"
  FavoriteResponse:
    description: Favorite Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/FavoriteResponse"
  InvoiceResponse:
    description: Invoice Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/InvoiceResponse"
  IssuedCertificateResponse:
    description: IssuedCertificate Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/IssuedCertificateResponse"
  LessonProgressResponse:
    description: LessonProgress Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/LessonProgressResponse"
  NotFound:
    description: Resource was not found
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  OrderResponse:
    description: Order Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/OrderResponse"
  PaymentMethodResponse:
    description: PaymentMethod Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/PaymentMethodResponse"
  ResearchProjectCompanyResponse:
    description: ResearchProjectCompany Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/ResearchProjectCompanyResponse"
  ResearchProjectResponse:
    description: ResearchProject Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/ResearchProjectResponse"
  ResearchProjectTopicResponse:
    description: ResearchProjectTopic Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/ResearchProjectTopicResponse"
  ServerError:
    description: Server Internal Error
    headers:
      Access-Control-Allow-Origin:
        type: string
    schema:
      $ref: "#/definitions/Error"
  TenantResponse:
    headers:
      Access-Control-Allow-Origin:
        type: string
    description: Response with Tenant objects
    schema:
      $ref: "#/definitions/TenantResponse"
  TemplateResponse:
    description: Response with Template objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/TemplateResponse"
  TicketResponse:
    description: Ticket Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/TicketResponse"
  TransactionResponse:
    description: Transaction Response Object
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/TransactionResponse"
  Unauthorized:
    description: Access Unauthorized, invalid API-KEY was used
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/Error"
  UnprocessableEntity:
    description: Unprocessable Entity, likely a bad parameter
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/Error"
  UserResponse:
    description: Response with User objects
    headers:
      Access-Control-Allow-Origin:
        type: string
      Cache-Control:
        type: string
    schema:
      $ref: "#/definitions/UserResponse"
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
  /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:
    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"
      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
      Country:
        description: Country full name
        type: string
      CountryCode:
        description: Country Code
        type: string
      PostalCode:
        description: Postal Code
        type: string
      State:
        description: State full name
        type: string
      StateCode:
        description: State Code
        type: string
      Street:
        description: Street number and name
        type: string
    type: object
  Attendee:
    properties:
      CheckinStatus:
        type: integer
      CreatedDate:
        type: string
        x-nullable: true
      EventID:
        type: string
      ID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      TicketID:
        type: string
      UserID:
        type: string
    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
      CourseID:
        type: string
      CreatedByID:
        type: string
      CreatedDate:
        type: string
        x-nullable: true
      Description:
        type: string
        x-nullable: true
      ID:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      Title:
        type: string
    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
      CreatedDate:
        description: Created Date
        type: string
      Description:
        description: Description
        type: string
      Environment:
        description: Environment
        type: string
      Gateway:
        description: Gateway
        type: string
      ID:
        description: Record Id
        type: string
      IPAddress:
        description: IP Address
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      Name:
        description: Cluster Name
        type: string
      OwnerID:
        description: Owner
        type: string
      Ref:
        description: External Reference
        type: string
      Status:
        description: Status
        type: string
      Subnet:
        description: Subnet
        type: string
      TenantID:
        description: The ID of the tenant who owns this Database
        type: string
      Type:
        description: Type
        type: string
      Zone:
        description: Zone
        type: string
    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
      CreatedDate:
        type: string
        x-nullable: true
      Description:
        type: string
      Fulldescription:
        type: string
      ID:
        type: string
      InstructorID:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      Price:
        type: number
      Title:
        type: string
    type: object
  CourseLesson:
    properties:
      Content:
        type: string
      CreatedByID:
        type: string
      CreatedDate:
        type: string
        x-nullable: true
      ID:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      Order:
        type: integer
      SectionID:
        type: string
      Title:
        type: string
      VideoURL:
        type: string
    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
      CreatedByID:
        type: string
      CreatedDate:
        type: string
        x-nullable: true
      Description:
        type: string
      ID:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      Order:
        type: integer
      Title:
        type: string
    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
      ClusterID:
        description: The ID of the Cluster in which this database is deployed
        type: string
      CreatedByID:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      DSN:
        description: Database connection string
        type: string
      DatabaseName:
        description: The name of the physical database in the cluster
        type: string
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modifed Date
        type: string
      Status:
        description: The current status of this Tenant
        type: string
      TenantID:
        description: The ID of the tenant who owns this Database
        type: string
      Type:
        description: The type of Database (mysql, etc)
        type: string
    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
  Enrollment:
    properties:
      Completed:
        type: integer
      CourseID:
        type: string
      CreatedByID:
        type: string
      CreatedDate:
        type: string
        x-nullable: true
      EnrollmentDate:
        type: string
      ID:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      UserID:
        type: string
    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
      ID:
        type: string
      Location:
        type: string
      OrganizeruserID:
        type: string
      StartDate:
        type: string
      Title:
        type: string
      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
    type: object
  EventCategoryAssignment:
    properties:
      Createdat:
        type: string
        x-nullable: true
      EventCategoryID:
        type: string
      EventID:
        type: string
      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
      CreatedDate:
        type: string
        x-nullable: true
      Description:
        type: string
      FavoriteID:
        type: string
      Favoritetype:
        type: string
        x-nullable: true
      ID:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      Name:
        type: string
      Path:
        type: string
      TenantID:
        type: string
      UserID:
        type: string
    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
      CreatedByID:
        type: string
      CreatedDate:
        type: string
        x-nullable: true
      Currency:
        type: string
      DueDate:
        type: string
      ID:
        type: string
      Invoicenumber:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      Status:
        type: string
      TransactionID:
        type: string
      UserID:
        type: string
    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
      CreatedByID:
        type: string
      CreatedDate:
        type: string
        x-nullable: true
      EnrollmentID:
        type: string
      ExpirationDate:
        type: string
        x-nullable: true
      ID:
        type: string
      IssueDate:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      UserID:
        type: string
      VerificationCode:
        type: string
    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
      CreatedDate:
        type: string
        x-nullable: true
      EnrollmentID:
        type: string
      ID:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      LessonID:
        type: string
      UserID:
        type: string
    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
      Ref:
        type: string
      Status:
        type: integer
    type: object
  Order:
    properties:
      AmountpaID:
        type: number
        x-nullable: true
      Createdat:
        type: string
        x-nullable: true
      EventID:
        type: string
      ID:
        type: string
      OrderStatus:
        type: string
      PaymentMethod:
        type: string
        x-nullable: true
      TicketID:
        type: string
      UpDatedat:
        type: string
        x-nullable: true
      UserID:
        type: string
    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
      CardNumber:
        type: string
      CardType:
        type: string
      CreatedByID:
        type: string
      CreatedDate:
        type: string
        x-nullable: true
      ExpirationMonth:
        type: integer
      ExpirationYear:
        type: integer
      ID:
        type: string
      Isdefault:
        type: integer
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      UserID:
        type: string
    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
    required:
      - TaxnexusAccount
    type: object
  ResearchProject:
    properties:
      AccountID:
        type: string
      CreatedByID:
        type: string
      CreatedDate:
        type: string
        x-nullable: true
      Description:
        type: string
      ID:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      Name:
        type: string
      TenantID:
        type: string
      UserID:
        type: string
    type: object
  ResearchProjectCompany:
    properties:
      AccountID:
        type: string
      CreatedByID:
        type: string
      CreatedDate:
        type: string
        x-nullable: true
      ID:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      ResearchProjectID:
        type: string
      TenantID:
        type: string
    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
      CreatedDate:
        type: string
        x-nullable: true
      ID:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      ResearchProjectID:
        type: string
      TenantID:
        type: string
      TopicID:
        type: string
    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
      AccountID:
        description: Account ID
        type: string
      Auth0UserID:
        description: Auth0 User ID
        type: string
      CompanyName:
        description: Account Name
        type: string
      ContactID:
        description: Contact ID
        type: string
      TaxnexusAccount:
        description: Account
        type: string
      TenantActive:
        description: Tenant active?
        type: boolean
      TenantID:
        description: The Tenant ID
        type: string
      TenantName:
        description: Tenant Name
        type: string
      TenantStatus:
        description: Tenant Status
        type: string
      TenantType:
        description: Tenant type
        type: string
      TenantVersion:
        description: Tenant Version
        type: string
      UserEmail:
        description: User Email Address
        type: string
      UserFullName:
        description: User Full Name
        type: string
      UserID:
        description: The User ID
        type: string
      Username:
        description: Username
        type: string
    type: object
  Role:
    description: A functional role within a Tenant
    properties:
      Auth0RoleID:
        description: The corresponding Auth0 Role
        type: string
      CreatedByID:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Description:
        description: Role Description
        type: string
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modifed Date
        type: string
      RoleName:
        description: The name of this role
        type: string
      TenantID:
        description: The ID of the Tenant that owns this Role
        type: string
    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
      CreatedByID:
        type: string
      CreatedDate:
        type: string
      Description:
        description: Description
        type: string
      HTML:
        description: HTML Body
        format: byte
        type: string
      ID:
        description: Record Id
        type: string
      IsActive:
        description: Active?
        type: boolean
      IsMaster:
        description: Master Template?
        type: boolean
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
      Name:
        description: Template Name
        type: string
      ObjectType:
        description: Object
        type: string
      RecordTypeName:
        description: Record Type Name
        type: string
      TenantID:
        description: Tenant that owns this object instance
        type: string
      Type:
        description: Type
        type: string
      URL:
        description: URL
        type: string
    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
      Active:
        description: Is this Tenant currently active?
        type: boolean
      CreatedByID:
        description: Created By
        type: string
      CreatedDate:
        description: Created Date
        type: string
      Databases:
        items:
          $ref: "#/definitions/Database"
        type: array
      ID:
        description: Record Id
        type: string
      LastModifiedByID:
        description: Last Modified By
        type: string
      LastModifiedDate:
        description: Last Modifed Date
        type: string
      Roles:
        items:
          $ref: "#/definitions/Role"
        type: array
      Status:
        description: The current status of this Tenant
        type: string
      TenantName:
        description: Name of the Tenant Resource
        type: string
      TenantUsers:
        items:
          $ref: "#/definitions/TenantUser"
        type: array
      Type:
        description: The type of Tenant
        type: string
      Version:
        description: The version number of the Tenant Onboarding system used to create this tenant
        type: string
    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
      ID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      Price:
        type: number
        x-nullable: true
      Quantity:
        type: integer
      Tickettype:
        type: string
    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
      CreatedByID:
        type: string
      CreatedDate:
        type: string
        x-nullable: true
      Currency:
        type: string
      EnrollmentID:
        type: string
      ID:
        type: string
      LastModifiedByID:
        type: string
      LastModifiedDate:
        type: string
        x-nullable: true
      PaymentMethodID:
        type: string
      Status:
        type: string
        x-nullable: true
      TransactionDate:
        type: string
      UserID:
        type: string
    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:
      APIKey:
        description: API Key
        type: string
      AboutMe:
        description: About Me
        type: string
      AccountID:
        description: Account ID
        type: string
      Address:
        $ref: "#/definitions/Address"
      Alias:
        description: Alias
        type: string
      Auth0UserID:
        description: Auth0 User Id
        type: string
      CommunityNickname:
        description: Nickname
        type: string
      CompanyName:
        description: Company Name
        type: string
      ContactID:
        description: Contact
        type: string
      CreatedByID:
        description: Created User ID
        type: string
      CreatedDate:
        description: Date Created
        type: string
      DelegatedApproverID:
        description: Delegated Approver
        type: string
      Department:
        description: Department
        type: string
      Division:
        description: Division
        type: string
      Email:
        description: Email address
        type: string
      EmployeeNumber:
        description: Employee Number
        type: string
      EndOfDay:
        description: Time day ends
        type: string
      Environment:
        description: Environment
        type: string
      Extension:
        description: Extension
        type: string
      FabricAPIKey:
        description: Fabric API Key
        type: string
      Fax:
        description: Fax
        type: string
      FirstName:
        description: The first name
        type: string
      ForecastEnabled:
        description: Allow Forecasting
        type: boolean
      FullPhotoURL:
        description: Full Photo URL
        type: string
      ID:
        description: Record ID
        type: string
      IsActive:
        description: Active
        type: boolean
      IsPortalEnabled:
        description: Is the user enabled for Communities?
        type: boolean
      IsProphilePhotoActive:
        description: Has Profile Photo
        type: boolean
      IsSystemControlled:
        type: boolean
      LastIP:
        description: IP address of last login
        type: string
      LastLogin:
        description: Last login time
        type: string
      LastModifiedByID:
        description: Last Modified User ID
        type: string
      LastModifiedDate:
        description: Last Modified Date
        type: string
      LastName:
        description: The Last Name
        type: string
      LoginCount:
        description: Number of times user has logged in
        format: int64
        type: number
      ManagerID:
        description: Manager
        type: string
      MobilePhone:
        description: Mobile
        type: string
      Name:
        description: Name
        type: string
      OutOfOfficeMessage:
        description: Out of office message
        type: string
      Phone:
        description: Phone
        type: string
      PortalRole:
        description: Portal Role Level
        type: string
      ProfileID:
        description: Profile
        type: string
      ReceivesAdminEmails:
        description: Info Emails
        type: boolean
      ReceivesAdminInfoEmails:
        description: Admin Info Emails
        type: boolean
      SenderEmail:
        description: Email Sender Address
        type: string
      SenderName:
        description: Email Sender Name
        type: string
      Signature:
        description: Email Signature
        type: string
      SmallPhotoURL:
        description: Small Photo URL
        type: string
      StartOfDay:
        description: The time day starts
        type: string
      TaxnexusAccount:
        description: Account
        type: string
      TenantID:
        description: Tenant ID associated with this user
        type: string
      TenantUsers:
        items:
          $ref: "#/definitions/TenantUser"
        type: array
      TimeZone:
        description: Time Zone
        type: string
      Title:
        description: Title
        type: string
      UserRoleID:
        description: Role
        type: string
      UserRoles:
        items:
          $ref: "#/definitions/UserRole"
        type: array
      UserType:
        description: User Type
        type: string
      Username:
        description: Username
        type: string
    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
      Auth0RoleID:
        description: Linked role ID
        type: string
      Auth0UserID:
        description: Auth0 User ID
        type: string
      CompanyName:
        description: Company Name
        type: string
      ContactID:
        description: Contact ID
        type: string
      RoleDescription:
        description: Role description
        type: string
      RoleID:
        description: The Role ID
        type: string
      RoleName:
        description: Role Name
        type: string
      TaxnexusAccount:
        description: Account Number
        type: string
      UserEmail:
        description: User Email Address
        type: string
      UserFullName:
        description: User Full Name
        type: string
      UserID:
        description: The User ID
        type: string
      Username:
        description: Username
        type: string
    type: object
