mirror of https://github.com/vernonkeenan/lib
4882 lines
154 KiB
YAML
4882 lines
154 KiB
YAML
swagger: "2.0"
|
|
info:
|
|
version: 0.4.0
|
|
title: "members"
|
|
description: "Membership Microservice"
|
|
termsOfService: "https://salesforcedevops.net/terms/"
|
|
contact:
|
|
email: "vern@salesforcedevops.net"
|
|
license:
|
|
name: "Proprietary - Copyright (c) 2018-2024 by Vernon Keenan"
|
|
securityDefinitions:
|
|
ApiKeyAuth:
|
|
type: "apiKey"
|
|
in: "header"
|
|
name: "X-API-Key"
|
|
kvSessionCookie:
|
|
name: Cookie
|
|
in: header
|
|
type: apiKey
|
|
description: "JWT session cookie passed as 'Cookie: kvSession=<jwt>'. HttpOnly, Secure, SameSite=None, Domain=.keenanvision.net"
|
|
schemes:
|
|
- "http"
|
|
basePath: "/v1"
|
|
host: "members.vernonkeenan.com:8080"
|
|
consumes:
|
|
- "application/json"
|
|
produces:
|
|
- "application/json"
|
|
parameters:
|
|
id:
|
|
name: id
|
|
in: query
|
|
type: string
|
|
format: uuid
|
|
brandId:
|
|
name: brandId
|
|
in: query
|
|
type: string
|
|
format: uuid
|
|
serviceId:
|
|
name: serviceId
|
|
in: query
|
|
type: string
|
|
format: uuid
|
|
planId:
|
|
name: planId
|
|
in: query
|
|
type: string
|
|
format: uuid
|
|
tenantId:
|
|
name: tenantId
|
|
in: query
|
|
type: string
|
|
format: uuid
|
|
description: Requested tenant; Members validates the session user membership.
|
|
userId:
|
|
name: userId
|
|
in: query
|
|
type: string
|
|
format: uuid
|
|
description: Optional user scope; must be the actor or authorized by tenant role.
|
|
status:
|
|
name: status
|
|
in: query
|
|
type: string
|
|
effectiveAt:
|
|
name: effectiveAt
|
|
in: query
|
|
type: string
|
|
format: date-time
|
|
description: UTC evaluation instant; defaults to the server's current instant.
|
|
clientType:
|
|
name: clientType
|
|
in: query
|
|
type: string
|
|
enum: [mcp, api]
|
|
scope:
|
|
name: scope
|
|
in: query
|
|
type: string
|
|
includeInactive:
|
|
name: includeInactive
|
|
in: query
|
|
type: boolean
|
|
default: false
|
|
description: Includes revoked or expired metadata when authorized.
|
|
membershipAccessLevel:
|
|
name: accessLevel
|
|
in: query
|
|
type: string
|
|
enum: [owner, manager, member, read_only]
|
|
membershipTenantId:
|
|
name: tenantId
|
|
in: query
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 36
|
|
description: Tenant identifier; legacy Members tenant IDs are not all UUID formatted.
|
|
membershipStatus:
|
|
name: status
|
|
in: query
|
|
type: string
|
|
enum: [active, suspended, revoked]
|
|
membershipEmail:
|
|
name: email
|
|
in: query
|
|
type: string
|
|
format: email
|
|
description: Exact normalized email filter; result scope remains actor-derived.
|
|
requestId:
|
|
name: X-Request-ID
|
|
in: header
|
|
type: string
|
|
maxLength: 120
|
|
description: Optional bounded correlation identifier stored with membership audit events.
|
|
limit:
|
|
name: limit
|
|
in: query
|
|
type: integer
|
|
format: int64
|
|
minimum: 1
|
|
maximum: 1000
|
|
default: 100
|
|
offset:
|
|
name: offset
|
|
in: query
|
|
type: integer
|
|
format: int64
|
|
minimum: 0
|
|
default: 0
|
|
Auth0UserIdHeader:
|
|
description: Auth0 User Id
|
|
in: header
|
|
name: X-Auth0-UserId
|
|
required: false
|
|
type: string
|
|
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"
|
|
EventRequest:
|
|
description: An array of new Event records
|
|
in: body
|
|
name: eventRequest
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/EventRequest"
|
|
EventCategoryRequest:
|
|
description: An array of new Event records
|
|
in: body
|
|
name: eventCategoryRequest
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/EventCategoryRequest"
|
|
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"
|
|
PromptRequest:
|
|
description: An array of new Prompt records
|
|
in: body
|
|
name: promptRequest
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/PromptRequest"
|
|
PromptCategoryRequest:
|
|
description: An array of PromptCategory objects
|
|
name: promptCategoryRequest
|
|
required: true
|
|
in: body
|
|
schema:
|
|
$ref: "#/definitions/PromptCategoryRequest"
|
|
PromptTagRequest:
|
|
description: An array of PromptTag objects
|
|
name: promptTagRequest
|
|
required: true
|
|
in: body
|
|
schema:
|
|
$ref: "#/definitions/PromptTagRequest"
|
|
PromptAnswerRequest:
|
|
description: An array of PromptAnswer objects
|
|
name: promptAnswerRequest
|
|
required: true
|
|
in: body
|
|
schema:
|
|
$ref: "#/definitions/PromptAnswerRequest"
|
|
ResearchProjectCompanyRequest:
|
|
description: An array of new ResearchProjectCompany records
|
|
in: body
|
|
name: researchProjectCompanyRequest
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/ResearchProjectCompanyRequest"
|
|
researchProjectProductRequest:
|
|
description: An array of new ResearchProjectProduct records
|
|
in: body
|
|
name: researchProjectProductRequest
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/ResearchProjectProductRequest"
|
|
ResearchProjectServiceRequest:
|
|
description: An array of new ResearchProjectService records
|
|
in: body
|
|
name: researchProjectServiceRequest
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/ResearchProjectServiceRequest"
|
|
ResearchProjectDocumentRequest:
|
|
description: An array of new ResearchProjectDocument records
|
|
in: body
|
|
name: researchProjectDocumentRequest
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/ResearchProjectDocumentRequest"
|
|
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"
|
|
EmailMessageRequest:
|
|
description: An array of Email Message records
|
|
in: body
|
|
name: EmailMessageRequest
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/EmailMessageRequest"
|
|
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"
|
|
OnboardRequest:
|
|
description: Self-service onboarding request (single user)
|
|
in: body
|
|
name: onboardRequest
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/OnboardRequest"
|
|
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
|
|
userIdQueryRequired:
|
|
description: Internal User ID
|
|
in: query
|
|
name: userId
|
|
required: true
|
|
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"
|
|
documentRequest:
|
|
description: An array of Document records
|
|
in: body
|
|
name: DocumentRequest
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/DocumentRequest"
|
|
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
|
|
nameQuery:
|
|
description: Name of the object
|
|
in: query
|
|
name: name
|
|
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: "../../lib/swagger/defs/error.yaml#/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:
|
|
description: Response with Database objects
|
|
schema:
|
|
$ref: "#/definitions/DatabaseResponse"
|
|
DocumentResponse:
|
|
description: Document Response Object
|
|
schema:
|
|
$ref: "#/definitions/DocumentResponse"
|
|
EmailMessagesResponse:
|
|
description: "Array of Email Messages"
|
|
schema:
|
|
$ref: "#/definitions/EmailMessagesResponse"
|
|
OutgoingEmailMessagesResponse:
|
|
description: "Array of Outgoing Email Messages"
|
|
schema:
|
|
$ref: "#/definitions/OutgoingEmailMessagesResponse"
|
|
EnrollmentResponse:
|
|
description: Enrollment Response Object
|
|
schema:
|
|
$ref: "#/definitions/EnrollmentResponse"
|
|
EventResponse:
|
|
description: Event Response Object
|
|
schema:
|
|
$ref: "#/definitions/EventResponse"
|
|
EventCategoryResponse:
|
|
description: Event Response Object
|
|
schema:
|
|
$ref: "#/definitions/EventCategoryResponse"
|
|
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
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/error.yaml#/Error"
|
|
OrderResponse:
|
|
description: Order Response Object
|
|
schema:
|
|
$ref: "#/definitions/OrderResponse"
|
|
PaymentMethodResponse:
|
|
description: PaymentMethod Response Object
|
|
schema:
|
|
$ref: "#/definitions/PaymentMethodResponse"
|
|
PromptResponse:
|
|
description: Response with Prompt objects
|
|
schema:
|
|
$ref: "#/definitions/PromptResponse"
|
|
PromptCategoryResponse:
|
|
description: Response with PromptCategory objects
|
|
schema:
|
|
$ref: "#/definitions/PromptCategoryResponse"
|
|
PromptAnswerResponse:
|
|
description: Response with PromptAnswer objects
|
|
schema:
|
|
$ref: "#/definitions/PromptAnswerResponse"
|
|
PromptTagResponse:
|
|
description: Response with PromptTag objects
|
|
schema:
|
|
$ref: "#/definitions/PromptTagResponse"
|
|
ResearchProjectCompanyResponse:
|
|
description: ResearchProjectCompany Response Object
|
|
schema:
|
|
$ref: "#/definitions/ResearchProjectCompanyResponse"
|
|
ResearchProjectDocumentResponse:
|
|
description: ResearchProjectDocument Response Object
|
|
schema:
|
|
$ref: "#/definitions/ResearchProjectDocumentResponse"
|
|
ResearchProjectProductResponse:
|
|
description: ResearchProjectProduct Response Object
|
|
schema:
|
|
$ref: "#/definitions/ResearchProjectProductResponse"
|
|
ResearchProjectServiceResponse:
|
|
description: ResearchProjectService Response Object
|
|
schema:
|
|
$ref: "#/definitions/ResearchProjectServiceResponse"
|
|
ResearchProjectResponse:
|
|
description: ResearchProject Response Object
|
|
schema:
|
|
$ref: "#/definitions/ResearchProjectResponse"
|
|
ResearchProjectTopicResponse:
|
|
description: ResearchProjectTopic Response Object
|
|
schema:
|
|
$ref: "#/definitions/ResearchProjectTopicResponse"
|
|
ServerError:
|
|
description: Server Internal Error
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/error.yaml#/Error"
|
|
TenantResponse:
|
|
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: "../../lib/swagger/defs/error.yaml#/Error"
|
|
UnprocessableEntity:
|
|
description: Unprocessable Entity, likely a bad parameter
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/error.yaml#/Error"
|
|
UserResponse:
|
|
description: Response with User objects
|
|
schema:
|
|
$ref: "#/definitions/UserResponse"
|
|
paths:
|
|
/brands:
|
|
get:
|
|
operationId: getBrands
|
|
tags: [PortalCatalog]
|
|
summary: List customer-facing brands
|
|
parameters:
|
|
- $ref: "#/parameters/id"
|
|
- $ref: "#/parameters/status"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Brand records, schema: {$ref: "#/definitions/BrandResponse"}}
|
|
400: {description: Invalid brand filter}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor is not authorized for the requested scope}
|
|
500: {description: Server error}
|
|
security: &portalSecurity
|
|
- ApiKeyAuth: []
|
|
kvSessionCookie: []
|
|
post:
|
|
operationId: postBrands
|
|
tags: [PortalCatalog]
|
|
summary: Create brands
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/BrandRequest"}
|
|
responses:
|
|
200: {description: Created brands, schema: {$ref: "#/definitions/BrandResponse"}}
|
|
400: {description: Invalid lifecycle or catalog data}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks catalog-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
put:
|
|
operationId: putBrands
|
|
tags: [PortalCatalog]
|
|
summary: Update brands without deleting history
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/BrandRequest"}
|
|
responses:
|
|
200: {description: Updated brands, schema: {$ref: "#/definitions/BrandResponse"}}
|
|
400: {description: Invalid lifecycle or catalog data}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks catalog-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/services:
|
|
get:
|
|
operationId: getServices
|
|
tags: [PortalCatalog]
|
|
summary: List commercial member-facing capabilities
|
|
parameters:
|
|
- $ref: "#/parameters/id"
|
|
- $ref: "#/parameters/status"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Service records, schema: {$ref: "#/definitions/ServiceResponse"}}
|
|
400: {description: Invalid service filter}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor is not authorized for the requested scope}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
post:
|
|
operationId: postServices
|
|
tags: [PortalCatalog]
|
|
summary: Create commercial services
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/ServiceRequest"}
|
|
responses:
|
|
200: {description: Created services, schema: {$ref: "#/definitions/ServiceResponse"}}
|
|
400: {description: Invalid service data}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks catalog-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
put:
|
|
operationId: putServices
|
|
tags: [PortalCatalog]
|
|
summary: Update commercial services without deleting history
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/ServiceRequest"}
|
|
responses:
|
|
200: {description: Updated services, schema: {$ref: "#/definitions/ServiceResponse"}}
|
|
400: {description: Invalid service data}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks catalog-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/servicescopes:
|
|
get:
|
|
operationId: getServiceScopes
|
|
tags: [PortalCatalog]
|
|
summary: List controlled client scopes
|
|
parameters:
|
|
- $ref: "#/parameters/id"
|
|
- $ref: "#/parameters/serviceId"
|
|
- $ref: "#/parameters/status"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Service scope records, schema: {$ref: "#/definitions/ServiceScopeResponse"}}
|
|
400: {description: Invalid service-scope filter}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor is not authorized for the requested scope}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
post:
|
|
operationId: postServiceScopes
|
|
tags: [PortalCatalog]
|
|
summary: Create controlled client scopes
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/ServiceScopeRequest"}
|
|
responses:
|
|
200: {description: Created service scopes, schema: {$ref: "#/definitions/ServiceScopeResponse"}}
|
|
400: {description: Invalid service scope data}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks catalog-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
put:
|
|
operationId: putServiceScopes
|
|
tags: [PortalCatalog]
|
|
summary: Update controlled client scopes
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/ServiceScopeRequest"}
|
|
responses:
|
|
200: {description: Updated service scopes, schema: {$ref: "#/definitions/ServiceScopeResponse"}}
|
|
400: {description: Invalid service scope data}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks catalog-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/brandservices:
|
|
get:
|
|
operationId: getBrandServices
|
|
tags: [PortalCatalog]
|
|
summary: List brand catalog placements
|
|
parameters:
|
|
- $ref: "#/parameters/id"
|
|
- $ref: "#/parameters/brandId"
|
|
- $ref: "#/parameters/serviceId"
|
|
- $ref: "#/parameters/status"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Brand-service records, schema: {$ref: "#/definitions/BrandServiceResponse"}}
|
|
400: {description: Invalid brand-service filter}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor is not authorized for the requested scope}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
post:
|
|
operationId: postBrandServices
|
|
tags: [PortalCatalog]
|
|
summary: Create brand catalog placements
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/BrandServiceRequest"}
|
|
responses:
|
|
200: {description: Created brand-service records, schema: {$ref: "#/definitions/BrandServiceResponse"}}
|
|
400: {description: Invalid catalog placement}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks catalog-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
put:
|
|
operationId: putBrandServices
|
|
tags: [PortalCatalog]
|
|
summary: Update brand catalog placements
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/BrandServiceRequest"}
|
|
responses:
|
|
200: {description: Updated brand-service records, schema: {$ref: "#/definitions/BrandServiceResponse"}}
|
|
400: {description: Invalid catalog placement}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks catalog-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/plans:
|
|
get:
|
|
operationId: getPlans
|
|
tags: [PortalPlans]
|
|
summary: List immutable-version commercial plans
|
|
parameters:
|
|
- $ref: "#/parameters/id"
|
|
- $ref: "#/parameters/status"
|
|
- $ref: "#/parameters/effectiveAt"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Plan records, schema: {$ref: "#/definitions/PlanResponse"}}
|
|
400: {description: Invalid plan filter}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor is not authorized for the requested scope}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
post:
|
|
operationId: postPlans
|
|
tags: [PortalPlans]
|
|
summary: Create plan versions
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/PlanRequest"}
|
|
responses:
|
|
200: {description: Created plans, schema: {$ref: "#/definitions/PlanResponse"}}
|
|
400: {description: Invalid plan data}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks plan-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
put:
|
|
operationId: putPlans
|
|
tags: [PortalPlans]
|
|
summary: Update draft or lifecycle state; published versions are immutable
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/PlanRequest"}
|
|
responses:
|
|
200: {description: Updated plans, schema: {$ref: "#/definitions/PlanResponse"}}
|
|
400: {description: Invalid or immutable plan update}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks plan-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/brandplans:
|
|
get:
|
|
operationId: getBrandPlans
|
|
tags: [PortalPlans]
|
|
summary: List brand plan placements
|
|
parameters:
|
|
- $ref: "#/parameters/id"
|
|
- $ref: "#/parameters/brandId"
|
|
- $ref: "#/parameters/planId"
|
|
- $ref: "#/parameters/status"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Brand-plan records, schema: {$ref: "#/definitions/BrandPlanResponse"}}
|
|
400: {description: Invalid brand-plan filter}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor is not authorized for the requested scope}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
post:
|
|
operationId: postBrandPlans
|
|
tags: [PortalPlans]
|
|
summary: Create brand plan placements
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/BrandPlanRequest"}
|
|
responses:
|
|
200: {description: Created brand-plan records, schema: {$ref: "#/definitions/BrandPlanResponse"}}
|
|
400: {description: Invalid plan placement}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks plan-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
put:
|
|
operationId: putBrandPlans
|
|
tags: [PortalPlans]
|
|
summary: Update brand plan placements
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/BrandPlanRequest"}
|
|
responses:
|
|
200: {description: Updated brand-plan records, schema: {$ref: "#/definitions/BrandPlanResponse"}}
|
|
400: {description: Invalid plan placement}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks plan-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/planservices:
|
|
get:
|
|
operationId: getPlanServices
|
|
tags: [PortalPlans]
|
|
summary: List plan service grants and descriptive limits
|
|
parameters:
|
|
- $ref: "#/parameters/id"
|
|
- $ref: "#/parameters/planId"
|
|
- $ref: "#/parameters/serviceId"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Plan-service records, schema: {$ref: "#/definitions/PlanServiceResponse"}}
|
|
400: {description: Invalid plan-service filter}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor is not authorized for the requested scope}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
post:
|
|
operationId: postPlanServices
|
|
tags: [PortalPlans]
|
|
summary: Add service grants and descriptive limits to plans
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/PlanServiceRequest"}
|
|
responses:
|
|
200: {description: Created plan-service records, schema: {$ref: "#/definitions/PlanServiceResponse"}}
|
|
400: {description: Invalid typed limit or plan grant}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks plan-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
put:
|
|
operationId: putPlanServices
|
|
tags: [PortalPlans]
|
|
summary: Update draft plan service grants
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/PlanServiceRequest"}
|
|
responses:
|
|
200: {description: Updated plan-service records, schema: {$ref: "#/definitions/PlanServiceResponse"}}
|
|
400: {description: Invalid typed limit or immutable plan grant}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor lacks plan-management authority}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/subscriptions:
|
|
get:
|
|
operationId: getSubscriptions
|
|
tags: [PortalAccess]
|
|
summary: List tenant-scoped subscriptions
|
|
parameters:
|
|
- $ref: "#/parameters/id"
|
|
- $ref: "#/parameters/tenantId"
|
|
- $ref: "#/parameters/planId"
|
|
- $ref: "#/parameters/status"
|
|
- $ref: "#/parameters/effectiveAt"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Authorized subscription records, schema: {$ref: "#/definitions/SubscriptionResponse"}}
|
|
400: {description: Invalid subscription filter}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor is not a member of or cannot manage the requested tenant}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
post:
|
|
operationId: postSubscriptions
|
|
tags: [PortalAccess]
|
|
summary: Create tenant subscriptions
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/SubscriptionRequest"}
|
|
responses:
|
|
200: {description: Created subscriptions, schema: {$ref: "#/definitions/SubscriptionResponse"}}
|
|
400: {description: Invalid subscription lifecycle data}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor cannot manage the requested tenant}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
put:
|
|
operationId: putSubscriptions
|
|
tags: [PortalAccess]
|
|
summary: Update, pause, cancel, or expire subscriptions
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/SubscriptionRequest"}
|
|
responses:
|
|
200: {description: Updated subscriptions, schema: {$ref: "#/definitions/SubscriptionResponse"}}
|
|
400: {description: Invalid subscription lifecycle transition}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor cannot manage the requested tenant}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/entitlements:
|
|
get:
|
|
operationId: getEntitlements
|
|
tags: [PortalAccess]
|
|
summary: List tenant- or user-scoped explicit grants
|
|
parameters:
|
|
- $ref: "#/parameters/id"
|
|
- $ref: "#/parameters/tenantId"
|
|
- $ref: "#/parameters/userId"
|
|
- $ref: "#/parameters/serviceId"
|
|
- $ref: "#/parameters/status"
|
|
- $ref: "#/parameters/effectiveAt"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Authorized entitlement records, schema: {$ref: "#/definitions/EntitlementResponse"}}
|
|
400: {description: Invalid entitlement filter}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor is not authorized for the tenant or user scope}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
post:
|
|
operationId: postEntitlements
|
|
tags: [PortalAccess]
|
|
summary: Create explicit tenant or user grants
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/EntitlementRequest"}
|
|
responses:
|
|
200: {description: Created entitlements, schema: {$ref: "#/definitions/EntitlementResponse"}}
|
|
400: {description: Invalid or overlapping explicit grant}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor cannot manage grants for the tenant}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
put:
|
|
operationId: putEntitlements
|
|
tags: [PortalAccess]
|
|
summary: Update, revoke, or expire explicit grants
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/EntitlementRequest"}
|
|
responses:
|
|
200: {description: Updated entitlements, schema: {$ref: "#/definitions/EntitlementResponse"}}
|
|
400: {description: Invalid or overlapping explicit grant}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor cannot manage grants for the tenant}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/effectiveentitlements:
|
|
get:
|
|
operationId: getEffectiveEntitlements
|
|
tags: [PortalAccess]
|
|
summary: Resolve effective commercial access at a UTC instant
|
|
parameters:
|
|
- $ref: "#/parameters/tenantId"
|
|
- $ref: "#/parameters/userId"
|
|
- $ref: "#/parameters/serviceId"
|
|
- $ref: "#/parameters/effectiveAt"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Effective grants with typed limits and provenance, schema: {$ref: "#/definitions/EffectiveEntitlementResponse"}}
|
|
400: {description: Invalid or ambiguous effective-entitlement context}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor is not authorized for the tenant or user scope}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/authorizedclients:
|
|
get:
|
|
operationId: getAuthorizedClients
|
|
tags: [PortalClients]
|
|
summary: List non-secret authorized-client connection metadata
|
|
parameters:
|
|
- $ref: "#/parameters/id"
|
|
- $ref: "#/parameters/tenantId"
|
|
- $ref: "#/parameters/userId"
|
|
- $ref: "#/parameters/status"
|
|
- $ref: "#/parameters/clientType"
|
|
- $ref: "#/parameters/scope"
|
|
- $ref: "#/parameters/includeInactive"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Authorized-client metadata without tokens or secrets, schema: {$ref: "#/definitions/AuthorizedClientResponse"}}
|
|
400: {description: Invalid authorized-client filter}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor is not authorized for the tenant or user scope}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
post:
|
|
operationId: postAuthorizedClients
|
|
tags: [PortalClients]
|
|
summary: Register non-secret authorized-client metadata
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/AuthorizedClientRequest"}
|
|
responses:
|
|
200: {description: Created client metadata, schema: {$ref: "#/definitions/AuthorizedClientResponse"}}
|
|
400: {description: Invalid client metadata or tenant/user scope}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor cannot manage clients for the tenant}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
put:
|
|
operationId: putAuthorizedClients
|
|
tags: [PortalClients]
|
|
summary: Update or idempotently revoke client metadata
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/AuthorizedClientRequest"}
|
|
responses:
|
|
200: {description: Updated client metadata, schema: {$ref: "#/definitions/AuthorizedClientResponse"}}
|
|
400: {description: Invalid client lifecycle transition}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor cannot manage clients for the tenant}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/authorizedclientscopes:
|
|
get:
|
|
operationId: getAuthorizedClientScopes
|
|
tags: [PortalClients]
|
|
summary: List approved scopes backed by effective entitlements
|
|
parameters:
|
|
- $ref: "#/parameters/id"
|
|
- name: authorizedClientId
|
|
in: query
|
|
type: string
|
|
format: uuid
|
|
- $ref: "#/parameters/serviceId"
|
|
- $ref: "#/parameters/scope"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Authorized-client scopes, schema: {$ref: "#/definitions/AuthorizedClientScopeResponse"}}
|
|
400: {description: Invalid authorized-client-scope filter}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor is not authorized for the client tenant or user scope}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
post:
|
|
operationId: postAuthorizedClientScopes
|
|
tags: [PortalClients]
|
|
summary: Approve scopes only when backed by effective entitlements
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/AuthorizedClientScopeRequest"}
|
|
responses:
|
|
200: {description: Created authorized-client scopes, schema: {$ref: "#/definitions/AuthorizedClientScopeResponse"}}
|
|
400: {description: Scope is not backed by an effective service entitlement}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor cannot manage scopes for the client}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
put:
|
|
operationId: putAuthorizedClientScopes
|
|
tags: [PortalClients]
|
|
summary: Update approved client scopes
|
|
parameters:
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/AuthorizedClientScopeRequest"}
|
|
responses:
|
|
200: {description: Updated authorized-client scopes, schema: {$ref: "#/definitions/AuthorizedClientScopeResponse"}}
|
|
400: {description: Scope is not backed by an effective service entitlement}
|
|
401: {description: Missing or invalid server or session credential}
|
|
403: {description: Actor cannot manage scopes for the client}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
/manageabletenants:
|
|
get:
|
|
operationId: getManageableTenants
|
|
tags: [PortalMemberships]
|
|
summary: List tenant contexts the current actor may administer
|
|
parameters:
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Actor-derived manageable tenant contexts, schema: {$ref: "#/definitions/ManageableTenantResponse"}}
|
|
400: {description: Invalid pagination}
|
|
401: {description: Missing or invalid server or session credential}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/tenantmemberships:
|
|
get:
|
|
operationId: getTenantMemberships
|
|
tags: [PortalMemberships]
|
|
summary: List actor-visible tenant memberships
|
|
parameters:
|
|
- $ref: "#/parameters/membershipTenantId"
|
|
- $ref: "#/parameters/userId"
|
|
- $ref: "#/parameters/membershipEmail"
|
|
- $ref: "#/parameters/membershipAccessLevel"
|
|
- $ref: "#/parameters/membershipStatus"
|
|
- $ref: "#/parameters/limit"
|
|
- $ref: "#/parameters/offset"
|
|
responses:
|
|
200: {description: Actor-scoped tenant memberships, schema: {$ref: "#/definitions/TenantMembershipListResponse"}}
|
|
400: {description: Invalid membership filter}
|
|
401: {description: Missing or invalid server or session credential}
|
|
404: {description: Requested foreign or unavailable scope}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
post:
|
|
operationId: postTenantMembership
|
|
tags: [PortalMemberships]
|
|
summary: Create a tenant link or return an exact desired-state match
|
|
parameters:
|
|
- $ref: "#/parameters/requestId"
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/TenantMembershipCreateRequest"}
|
|
responses:
|
|
200: {description: Newly created membership or exact existing desired-state match, schema: {$ref: "#/definitions/TenantMembershipResponse"}}
|
|
400: {description: Invalid identity selector or desired state}
|
|
401: {description: Missing or invalid server or session credential}
|
|
404: {description: "Target tenant, user, or authority is unavailable"}
|
|
409: {description: "Self-change, owner, or existing-state conflict; use GET plus optimistic PUT for state changes"}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
|
|
/tenantmemberships/{membershipId}:
|
|
parameters:
|
|
- name: membershipId
|
|
in: path
|
|
required: true
|
|
type: string
|
|
format: uuid
|
|
get:
|
|
operationId: getTenantMembership
|
|
tags: [PortalMemberships]
|
|
summary: Get one actor-visible tenant membership
|
|
responses:
|
|
200: {description: Tenant membership, schema: {$ref: "#/definitions/TenantMembershipResponse"}}
|
|
401: {description: Missing or invalid server or session credential}
|
|
404: {description: "Membership is absent, foreign, or unauthorized"}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
put:
|
|
operationId: putTenantMembership
|
|
tags: [PortalMemberships]
|
|
summary: Idempotently change membership access or lifecycle
|
|
parameters:
|
|
- $ref: "#/parameters/requestId"
|
|
- in: body
|
|
name: request
|
|
required: true
|
|
schema: {$ref: "#/definitions/TenantMembershipUpdateRequest"}
|
|
responses:
|
|
200: {description: Current membership desired state, schema: {$ref: "#/definitions/TenantMembershipResponse"}}
|
|
400: {description: Invalid desired state}
|
|
401: {description: Missing or invalid server or session credential}
|
|
404: {description: "Membership is absent, foreign, or unauthorized"}
|
|
409: {description: "Optimistic, self-change, owner, or state conflict"}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
delete:
|
|
operationId: deleteTenantMembership
|
|
tags: [PortalMemberships]
|
|
summary: Idempotently soft-revoke one membership
|
|
parameters:
|
|
- $ref: "#/parameters/requestId"
|
|
- name: lastModifiedDate
|
|
in: query
|
|
required: true
|
|
type: string
|
|
format: date-time
|
|
description: Optimistic concurrency token from the latest representation.
|
|
responses:
|
|
200: {description: Revoked membership, schema: {$ref: "#/definitions/TenantMembershipResponse"}}
|
|
401: {description: Missing or invalid server or session credential}
|
|
404: {description: "Membership is absent, foreign, or unauthorized"}
|
|
409: {description: "Optimistic, self-change, owner, or state conflict"}
|
|
500: {description: Server error}
|
|
security: *portalSecurity
|
|
/sessions:
|
|
post:
|
|
tags: [sessions]
|
|
summary: Create new session (sign-in)
|
|
operationId: createSession
|
|
parameters:
|
|
- in: body
|
|
name: credentials
|
|
required: true
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/credentials.yaml#/Credentials"
|
|
responses:
|
|
200:
|
|
description: Successful sign-in
|
|
headers:
|
|
Set-Cookie:
|
|
type: string
|
|
description: |
|
|
kvSession=<jwt>; HttpOnly; Secure; SameSite=None; Domain=.keenanvision.net; Path=/; Max-Age=5400
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/user.yaml#/User"
|
|
401:
|
|
$ref: "#/responses/Unauthorized"
|
|
429:
|
|
$ref: "#/responses/ServerError"
|
|
|
|
/sessions/refresh:
|
|
post:
|
|
tags: [sessions]
|
|
summary: Refresh session cookie
|
|
operationId: refreshSession
|
|
security:
|
|
- kvSessionCookie: []
|
|
responses:
|
|
200:
|
|
description: Token refreshed
|
|
headers:
|
|
Set-Cookie:
|
|
type: string
|
|
description: New kvSession cookie with updated expiry
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/user.yaml#/User"
|
|
401:
|
|
$ref: "#/responses/Unauthorized"
|
|
|
|
/sessions/current:
|
|
delete:
|
|
responses:
|
|
"204":
|
|
description: Logged out; kvSession cookie cleared
|
|
headers:
|
|
Set-Cookie:
|
|
type: string
|
|
description: "kvSession=; HttpOnly; Secure; SameSite=None; Domain=.keenanvision.net; Path=/; Max-Age=0"
|
|
"401":
|
|
description: Access Unauthorized, invalid API-KEY was used
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/error.yaml#/Error"
|
|
security:
|
|
- kvSessionCookie: []
|
|
tags:
|
|
- sessions
|
|
summary: Delete current session (log out)
|
|
operationId: deleteSession
|
|
|
|
/sessions/me:
|
|
get:
|
|
tags: [sessions]
|
|
summary: Get current user
|
|
operationId: getMe
|
|
security:
|
|
- kvSessionCookie: []
|
|
responses:
|
|
200:
|
|
description: Current user profile
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/user.yaml#/User"
|
|
401:
|
|
$ref: "#/responses/Unauthorized"
|
|
|
|
/sessions/handoff/create:
|
|
post:
|
|
tags: [sessions]
|
|
summary: Create handoff token for cross-domain authentication
|
|
operationId: createHandoff
|
|
security:
|
|
- kvSessionCookie: []
|
|
- ApiKeyAuth: []
|
|
parameters:
|
|
- name: handoffRequest
|
|
in: body
|
|
required: true
|
|
schema:
|
|
type: object
|
|
required:
|
|
- target_domain
|
|
- state
|
|
properties:
|
|
target_domain:
|
|
type: string
|
|
description: Target domain for handoff
|
|
example: "salesforcedevops.net"
|
|
state:
|
|
type: string
|
|
description: CSRF state parameter
|
|
example: "random-csrf-token-123"
|
|
responses:
|
|
200:
|
|
description: Handoff token created successfully
|
|
schema:
|
|
type: object
|
|
properties:
|
|
handoff_token:
|
|
type: string
|
|
description: One-time handoff token
|
|
example: "hoff_1234567890abcdef"
|
|
expires_at:
|
|
type: string
|
|
format: date-time
|
|
description: Token expiration time
|
|
400:
|
|
description: Invalid request parameters
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/error.yaml#/Error"
|
|
401:
|
|
$ref: "#/responses/Unauthorized"
|
|
403:
|
|
description: Domain not allowed
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/error.yaml#/Error"
|
|
500:
|
|
$ref: "#/responses/ServerError"
|
|
|
|
/sessions/handoff/validate:
|
|
post:
|
|
tags: [sessions]
|
|
summary: Validate and consume handoff token
|
|
operationId: validateHandoff
|
|
security:
|
|
- ApiKeyAuth: []
|
|
parameters:
|
|
- name: handoffValidate
|
|
in: body
|
|
required: true
|
|
schema:
|
|
type: object
|
|
required:
|
|
- handoff_token
|
|
- domain
|
|
- state
|
|
properties:
|
|
handoff_token:
|
|
type: string
|
|
description: Handoff token to validate
|
|
example: "hoff_1234567890abcdef"
|
|
domain:
|
|
type: string
|
|
description: Requesting domain
|
|
example: "salesforcedevops.net"
|
|
state:
|
|
type: string
|
|
description: CSRF state parameter
|
|
example: "random-csrf-token-123"
|
|
client_ip:
|
|
type: string
|
|
description: Client IP address
|
|
example: "192.168.1.100"
|
|
responses:
|
|
200:
|
|
description: Token validated successfully
|
|
schema:
|
|
type: object
|
|
properties:
|
|
user:
|
|
$ref: "../../lib/swagger/defs/user.yaml#/User"
|
|
session_ref:
|
|
type: string
|
|
description: Reference to central session
|
|
example: "sess_abcdef1234567890"
|
|
expires_at:
|
|
type: string
|
|
format: date-time
|
|
description: Session expiration time
|
|
400:
|
|
description: Invalid request parameters
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/error.yaml#/Error"
|
|
401:
|
|
description: Invalid or expired token
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/error.yaml#/Error"
|
|
403:
|
|
description: Domain not authorized
|
|
schema:
|
|
$ref: "../../lib/swagger/defs/error.yaml#/Error"
|
|
500:
|
|
$ref: "#/responses/ServerError"
|
|
|
|
/attendees:
|
|
get:
|
|
description: Return a list of Attendee records from the datastore
|
|
operationId: getAttendees
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/AttendeeResponse"
|
|
"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 Attendees
|
|
tags:
|
|
- Attendees
|
|
post:
|
|
description: Create Attendees
|
|
operationId: postAttendees
|
|
parameters:
|
|
- $ref: "#/parameters/AttendeeRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/AttendeeResponse"
|
|
"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 Attendees
|
|
tags:
|
|
- Attendees
|
|
put:
|
|
description: Update Attendee
|
|
operationId: putAttendees
|
|
parameters:
|
|
- $ref: "#/parameters/AttendeeRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/AttendeeResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update Attendee
|
|
tags:
|
|
- Attendees
|
|
/certificates:
|
|
get:
|
|
description: Return a list of Certificate records from the datastore
|
|
operationId: getCertificates
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/CertificateResponse"
|
|
"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 Certificates
|
|
tags:
|
|
- Certificates
|
|
post:
|
|
description: Create Certificates
|
|
operationId: postCertificates
|
|
parameters:
|
|
- $ref: "#/parameters/CertificateRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/CertificateResponse"
|
|
"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 Certificates
|
|
tags:
|
|
- Certificates
|
|
put:
|
|
description: Update Certificate
|
|
operationId: putCertificates
|
|
parameters:
|
|
- $ref: "#/parameters/CertificateRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/CertificateResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update 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
|
|
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
|
|
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:
|
|
get:
|
|
operationId: getCourseLessons
|
|
security:
|
|
- ApiKeyAuth: []
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/CourseLessonResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Get a list of CourseLessons
|
|
tags:
|
|
- Courses
|
|
post:
|
|
operationId: postCourseLessons
|
|
security:
|
|
- ApiKeyAuth: []
|
|
parameters:
|
|
- $ref: "#/parameters/CourseLessonRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/CourseLessonResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Create a new CourseLesson
|
|
tags:
|
|
- Courses
|
|
put:
|
|
security:
|
|
- ApiKeyAuth: []
|
|
operationId: updateCourseLessons
|
|
parameters:
|
|
- $ref: "#/parameters/CourseLessonRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/CourseLessonResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Update an existing CourseLesson
|
|
tags:
|
|
- Courses
|
|
/courses:
|
|
get:
|
|
security:
|
|
- ApiKeyAuth: []
|
|
operationId: getCourses
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/CourseResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Get a list of Courses
|
|
tags:
|
|
- Courses
|
|
post:
|
|
security:
|
|
- ApiKeyAuth: []
|
|
operationId: postCourses
|
|
parameters:
|
|
- $ref: "#/parameters/CourseRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/CourseResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Create a new Course
|
|
tags:
|
|
- Courses
|
|
put:
|
|
security:
|
|
- ApiKeyAuth: []
|
|
operationId: updateCourses
|
|
parameters:
|
|
- $ref: "#/parameters/CourseRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/CourseResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Update an existing Course
|
|
tags:
|
|
- Courses
|
|
/coursesections:
|
|
get:
|
|
security:
|
|
- ApiKeyAuth: []
|
|
operationId: getCourseSections
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/CourseSectionResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Get a list of CourseSections
|
|
tags:
|
|
- Courses
|
|
post:
|
|
security:
|
|
- ApiKeyAuth: []
|
|
operationId: postCourseSections
|
|
parameters:
|
|
- $ref: "#/parameters/CourseSectionRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/CourseSectionResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Create a new CourseSection
|
|
tags:
|
|
- Courses
|
|
put:
|
|
security:
|
|
- ApiKeyAuth: []
|
|
operationId: updateCourseSections
|
|
parameters:
|
|
- $ref: "#/parameters/CourseSectionRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/CourseSectionResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Update an existing CourseSection
|
|
tags:
|
|
- Courses
|
|
/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
|
|
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
|
|
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
|
|
/documents:
|
|
get:
|
|
description: Return a list of Document records from the datastore
|
|
operationId: getDocuments
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/DocumentResponse"
|
|
"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 Documents
|
|
tags:
|
|
- Documents
|
|
post:
|
|
description: Create Documents
|
|
operationId: postDocuments
|
|
parameters:
|
|
- $ref: "#/parameters/documentRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/DocumentResponse"
|
|
"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 Documents
|
|
tags:
|
|
- Documents
|
|
put:
|
|
description: Update Document
|
|
operationId: putDocuments
|
|
parameters:
|
|
- $ref: "#/parameters/documentRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/DocumentResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update Documents
|
|
tags:
|
|
- Documents
|
|
/emailmessages:
|
|
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: postEmailMessages
|
|
description: Insert new email messages into workflow storage
|
|
parameters:
|
|
- $ref: "#/parameters/EmailMessageRequest"
|
|
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
|
|
/outgoingemailmessages:
|
|
get:
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: "Get email messages from data store"
|
|
operationId: getOutgoingEmailMessages
|
|
description: "Retrieves email messages from workflow storage"
|
|
parameters:
|
|
- $ref: "#/parameters/emailMessageIdQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
tags:
|
|
- Emails
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/OutgoingEmailMessagesResponse"
|
|
"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/OutgoingEmailMessagesResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
tags:
|
|
- Emails
|
|
/enrollments:
|
|
get:
|
|
description: Return a list of Enrollment records from the datastore
|
|
operationId: getEnrollments
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/EnrollmentResponse"
|
|
"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 Enrollments
|
|
tags:
|
|
- Enrollments
|
|
post:
|
|
description: Create Enrollments
|
|
operationId: postEnrollments
|
|
parameters:
|
|
- $ref: "#/parameters/EnrollmentRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/EnrollmentResponse"
|
|
"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 Enrollments
|
|
tags:
|
|
- Enrollments
|
|
put:
|
|
description: Update Enrollment
|
|
operationId: putEnrollments
|
|
parameters:
|
|
- $ref: "#/parameters/EnrollmentRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/EnrollmentResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update Enrollment
|
|
tags:
|
|
- Enrollments
|
|
/eventcategories:
|
|
get:
|
|
security:
|
|
- ApiKeyAuth: []
|
|
operationId: getEventCategories
|
|
parameters:
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
- $ref: "#/parameters/idQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/EventCategoryResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Get a list of Eventcategories
|
|
tags:
|
|
- Events
|
|
post:
|
|
security:
|
|
- ApiKeyAuth: []
|
|
operationId: postEventCategories
|
|
parameters:
|
|
- $ref: "#/parameters/EventCategoryRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/EventCategoryResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Create a new EventCategory
|
|
tags:
|
|
- Events
|
|
/events:
|
|
get:
|
|
security:
|
|
- ApiKeyAuth: []
|
|
operationId: getEvents
|
|
parameters:
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
- $ref: "#/parameters/idQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/EventResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Get a list of Events
|
|
tags:
|
|
- Events
|
|
post:
|
|
security:
|
|
- ApiKeyAuth: []
|
|
operationId: postEvents
|
|
parameters:
|
|
- $ref: "#/parameters/EventRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/EventResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
summary: Create a new Event
|
|
tags:
|
|
- Events
|
|
/favorites:
|
|
get:
|
|
description: Return a list of Favorite records from the datastore
|
|
operationId: getFavorites
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/FavoriteResponse"
|
|
"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 Favorites
|
|
tags:
|
|
- Favorites
|
|
post:
|
|
description: Create Favorites
|
|
operationId: postFavorites
|
|
parameters:
|
|
- $ref: "#/parameters/FavoriteRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/FavoriteResponse"
|
|
"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 Favorites
|
|
tags:
|
|
- Favorites
|
|
put:
|
|
description: Update Favorite
|
|
operationId: putFavorites
|
|
parameters:
|
|
- $ref: "#/parameters/FavoriteRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/FavoriteResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update Favorite
|
|
tags:
|
|
- Favorites
|
|
/invoices:
|
|
get:
|
|
description: Return a list of Invoice records from the datastore
|
|
operationId: getInvoices
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/InvoiceResponse"
|
|
"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 Invoices
|
|
tags:
|
|
- Invoices
|
|
post:
|
|
description: Create Invoices
|
|
operationId: postInvoices
|
|
parameters:
|
|
- $ref: "#/parameters/InvoiceRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/InvoiceResponse"
|
|
"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 Invoices
|
|
tags:
|
|
- Invoices
|
|
put:
|
|
description: Update Invoice
|
|
operationId: putInvoices
|
|
parameters:
|
|
- $ref: "#/parameters/InvoiceRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/InvoiceResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update Invoice
|
|
tags:
|
|
- Invoices
|
|
/issuedcertificates:
|
|
get:
|
|
description: Return a list of IssuedCertificate records from the datastore
|
|
operationId: getIssuedCertificates
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/IssuedCertificateResponse"
|
|
"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 IssuedCertificates
|
|
tags:
|
|
- IssuedCertificates
|
|
post:
|
|
description: Create IssuedCertificates
|
|
operationId: postIssuedCertificates
|
|
parameters:
|
|
- $ref: "#/parameters/IssuedCertificateRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/IssuedCertificateResponse"
|
|
"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 IssuedCertificates
|
|
tags:
|
|
- IssuedCertificates
|
|
put:
|
|
description: Update IssuedCertificate
|
|
operationId: putIssuedCertificates
|
|
parameters:
|
|
- $ref: "#/parameters/IssuedCertificateRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/IssuedCertificateResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update IssuedCertificate
|
|
tags:
|
|
- IssuedCertificates
|
|
/lessonprogress:
|
|
get:
|
|
description: Return a list of LessonProgress records from the datastore
|
|
operationId: getLessonProgresses
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/LessonProgressResponse"
|
|
"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 LessonProgresses
|
|
tags:
|
|
- LessonProgress
|
|
post:
|
|
description: Create LessonProgresses
|
|
operationId: postLessonProgresses
|
|
parameters:
|
|
- $ref: "#/parameters/LessonProgressRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/LessonProgressResponse"
|
|
"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 LessonProgresses
|
|
tags:
|
|
- LessonProgress
|
|
put:
|
|
description: Update LessonProgress
|
|
operationId: putLessonProgresses
|
|
parameters:
|
|
- $ref: "#/parameters/LessonProgressRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/LessonProgressResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update LessonProgress
|
|
tags:
|
|
- LessonProgress
|
|
/orders:
|
|
get:
|
|
description: Return a list of Order records from the datastore
|
|
operationId: getOrders
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/OrderResponse"
|
|
"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 Orders
|
|
tags:
|
|
- Orders
|
|
post:
|
|
description: Create Orders
|
|
operationId: postOrders
|
|
parameters:
|
|
- $ref: "#/parameters/OrderRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/OrderResponse"
|
|
"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 Orders
|
|
tags:
|
|
- Orders
|
|
put:
|
|
description: Update Order
|
|
operationId: putOrders
|
|
parameters:
|
|
- $ref: "#/parameters/OrderRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/OrderResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update Order
|
|
tags:
|
|
- Orders
|
|
/paymentmethods:
|
|
get:
|
|
description: Return a list of PaymentMethod records from the datastore
|
|
operationId: getPaymentMethods
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PaymentMethodResponse"
|
|
"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 PaymentMethods
|
|
tags:
|
|
- PaymentMethods
|
|
post:
|
|
description: Create PaymentMethods
|
|
operationId: postPaymentMethods
|
|
parameters:
|
|
- $ref: "#/parameters/PaymentMethodRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PaymentMethodResponse"
|
|
"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 PaymentMethods
|
|
tags:
|
|
- PaymentMethods
|
|
put:
|
|
description: Update PaymentMethod
|
|
operationId: putPaymentMethods
|
|
parameters:
|
|
- $ref: "#/parameters/PaymentMethodRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PaymentMethodResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update PaymentMethod
|
|
tags:
|
|
- PaymentMethods
|
|
/prompts:
|
|
get:
|
|
description: Return a list of Prompt records from the datastore
|
|
operationId: getPrompts
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PromptResponse"
|
|
"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 of Prompts
|
|
tags:
|
|
- Prompts
|
|
post:
|
|
description: Create Prompts
|
|
operationId: postPrompts
|
|
parameters:
|
|
- $ref: "#/parameters/PromptRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PromptResponse"
|
|
"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 Prompts
|
|
tags:
|
|
- Prompts
|
|
put:
|
|
description: Update Prompt
|
|
operationId: putPrompts
|
|
parameters:
|
|
- $ref: "#/parameters/PromptRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PromptResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update Prompts
|
|
tags:
|
|
- Prompts
|
|
/promptanswers:
|
|
get:
|
|
description: Return a list of PromptAnswers records from the datastore
|
|
operationId: getPromptAnswers
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PromptAnswerResponse"
|
|
"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 of PromptResponses
|
|
tags:
|
|
- Prompts
|
|
post:
|
|
description: Create PromptAnswers
|
|
operationId: postPromptAnswers
|
|
parameters:
|
|
- $ref: "#/parameters/PromptAnswerRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PromptAnswerResponse"
|
|
"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 PromptResponses
|
|
tags:
|
|
- Prompts
|
|
put:
|
|
description: Update PromptAnswers
|
|
operationId: putPromptAnsweers
|
|
parameters:
|
|
- $ref: "#/parameters/PromptAnswerRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PromptAnswerResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update PromptResponse
|
|
tags:
|
|
- Prompts
|
|
/promptcategories:
|
|
get:
|
|
description: Return a list of PromptCategory records from the datastore
|
|
operationId: getPromptCategories
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PromptCategoryResponse"
|
|
"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 of PromptCategories
|
|
tags:
|
|
- Prompts
|
|
post:
|
|
description: Create PromptCategories
|
|
operationId: postPromptCategories
|
|
parameters:
|
|
- $ref: "#/parameters/PromptCategoryRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PromptCategoryResponse"
|
|
"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 PromptCategories
|
|
tags:
|
|
- Prompts
|
|
put:
|
|
description: Update PromptCategory
|
|
operationId: putPromptCategories
|
|
parameters:
|
|
- $ref: "#/parameters/PromptCategoryRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PromptCategoryResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update PromptCategories
|
|
tags:
|
|
- Prompts
|
|
/prompttags:
|
|
get:
|
|
description: Return a list of PromptTag records from the datastore
|
|
operationId: getPromptTags
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PromptTagResponse"
|
|
"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 of PromptTags
|
|
tags:
|
|
- Prompts
|
|
post:
|
|
description: Create PromptTags in Taxnexus
|
|
operationId: postPromptTags
|
|
parameters:
|
|
- $ref: "#/parameters/PromptTagRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PromptTagResponse"
|
|
"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 PromptTags
|
|
tags:
|
|
- Prompts
|
|
put:
|
|
description: Update PromptTag in Taxnexus
|
|
operationId: putPromptTags
|
|
parameters:
|
|
- $ref: "#/parameters/PromptTagRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/PromptTagResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update PromptTags
|
|
tags:
|
|
- Prompts
|
|
/researchprojectcompanies:
|
|
get:
|
|
description: Return a list of ResearchProjectCompany records from the datastore
|
|
operationId: getResearchProjectCompanies
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectCompanyResponse"
|
|
"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 of ResearchProjectCompanies
|
|
tags:
|
|
- ResearchProjects
|
|
post:
|
|
description: Create ResearchProjectCompanies in the system
|
|
operationId: postResearchProjectCompanies
|
|
parameters:
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
- $ref: "#/parameters/ResearchProjectCompanyRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectCompanyResponse"
|
|
"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 ResearchProjectCompanies
|
|
tags:
|
|
- ResearchProjects
|
|
put:
|
|
description: Update ResearchProjectCompany in the system
|
|
operationId: putResearchProjectCompanies
|
|
parameters:
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
- $ref: "#/parameters/ResearchProjectCompanyRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectCompanyResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update ResearchProjectCompanies
|
|
tags:
|
|
- ResearchProjects
|
|
/researchprojectdocuments:
|
|
get:
|
|
description: Return a list of ResearchProjectDocument records from the datastore
|
|
operationId: getResearchProjectDocuments
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectDocumentResponse"
|
|
"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 of ResearchProjectDocuments
|
|
tags:
|
|
- ResearchProjects
|
|
post:
|
|
description: Create ResearchProjectDocuments in the system
|
|
operationId: postResearchProjectDocuments
|
|
parameters:
|
|
- $ref: "#/parameters/ResearchProjectDocumentRequest"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectDocumentResponse"
|
|
"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 ResearchProjectDocuments
|
|
tags:
|
|
- ResearchProjects
|
|
put:
|
|
description: Update ResearchProjectDocument in the system
|
|
operationId: putResearchProjectDocuments
|
|
parameters:
|
|
- $ref: "#/parameters/ResearchProjectDocumentRequest"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectDocumentResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update ResearchProjectDocuments
|
|
tags:
|
|
- ResearchProjects
|
|
/researchprojectservices:
|
|
get:
|
|
description: Return a list of ResearchProjectService records from the datastore
|
|
operationId: getResearchProjectServices
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectServiceResponse"
|
|
"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 of ResearchProjectServices
|
|
tags:
|
|
- ResearchProjects
|
|
post:
|
|
description: Create ResearchProjectServices in the system
|
|
operationId: postResearchProjectServices
|
|
parameters:
|
|
- $ref: "#/parameters/ResearchProjectServiceRequest"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectServiceResponse"
|
|
"201":
|
|
$ref: "#/responses/ResearchProjectServiceResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Create new ResearchProjectServices
|
|
tags:
|
|
- ResearchProjects
|
|
put:
|
|
description: Update ResearchProjectService in the system
|
|
operationId: putResearchProjectServices
|
|
parameters:
|
|
- $ref: "#/parameters/ResearchProjectServiceRequest"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectServiceResponse"
|
|
"201":
|
|
$ref: "#/responses/ResearchProjectServiceResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update ResearchProjectServices
|
|
tags:
|
|
- ResearchProjects
|
|
|
|
/researchprojectproducts:
|
|
get:
|
|
description: Return a list of ResearchProjectProduct records from the datastore
|
|
operationId: getResearchProjectProducts
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectProductResponse"
|
|
"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 of ResearchProjectProducts
|
|
tags:
|
|
- ResearchProjects
|
|
post:
|
|
description: Create ResearchProjectProducts in the system
|
|
operationId: postResearchProjectProducts
|
|
parameters:
|
|
- $ref: "#/parameters/researchProjectProductRequest"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectProductResponse"
|
|
"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 ResearchProjectProducts
|
|
tags:
|
|
- ResearchProjects
|
|
put:
|
|
description: Update ResearchProjectProduct in the system
|
|
operationId: putResearchProjectProducts
|
|
parameters:
|
|
- $ref: "#/parameters/researchProjectProductRequest"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectProductResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update ResearchProjectProducts
|
|
tags:
|
|
- ResearchProjects
|
|
/researchprojects:
|
|
get:
|
|
description: Return a list of ResearchProject records from the datastore
|
|
operationId: getResearchProjects
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectResponse"
|
|
"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 of ResearchProjects
|
|
tags:
|
|
- ResearchProjects
|
|
post:
|
|
description: Create ResearchProjects in the system
|
|
operationId: postResearchProjects
|
|
parameters:
|
|
- $ref: "#/parameters/ResearchProjectRequest"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectResponse"
|
|
"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 ResearchProjects
|
|
tags:
|
|
- ResearchProjects
|
|
put:
|
|
description: Update ResearchProject in the system
|
|
operationId: putResearchProjects
|
|
parameters:
|
|
- $ref: "#/parameters/ResearchProjectRequest"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update ResearchProjects
|
|
tags:
|
|
- ResearchProjects
|
|
/researchprojecttopics:
|
|
get:
|
|
description: Return a list of ResearchProjectTopic records from the datastore
|
|
operationId: getResearchProjectTopics
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectTopicResponse"
|
|
"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 of ResearchProjectTopics
|
|
tags:
|
|
- ResearchProjects
|
|
post:
|
|
description: Create ResearchProjectTopics in the system
|
|
operationId: postResearchProjectTopics
|
|
parameters:
|
|
- $ref: "#/parameters/ResearchProjectTopicRequest"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectTopicResponse"
|
|
"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 ResearchProjectTopics
|
|
tags:
|
|
- ResearchProjects
|
|
put:
|
|
description: Update ResearchProjectTopic in the system
|
|
operationId: putResearchProjectTopics
|
|
parameters:
|
|
- $ref: "#/parameters/ResearchProjectTopicRequest"
|
|
- $ref: "#/parameters/Auth0UserIdHeader"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/ResearchProjectTopicResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update ResearchProjectTopics
|
|
tags:
|
|
- ResearchProjects
|
|
/tenants:
|
|
get:
|
|
description: Return a list of Tenant records from the datastore
|
|
operationId: getTenants
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/nameQuery"
|
|
- $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
|
|
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
|
|
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:
|
|
get:
|
|
description: Return a list of Ticket records from the datastore
|
|
operationId: getTickets
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/TicketResponse"
|
|
"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 Tickets
|
|
tags:
|
|
- Tickets
|
|
post:
|
|
description: Create Tickets
|
|
operationId: postTickets
|
|
parameters:
|
|
- $ref: "#/parameters/TicketRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/TicketResponse"
|
|
"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 Tickets
|
|
tags:
|
|
- Tickets
|
|
put:
|
|
description: Update Ticket
|
|
operationId: putTickets
|
|
parameters:
|
|
- $ref: "#/parameters/TicketRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/TicketResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update Ticket
|
|
tags:
|
|
- Tickets
|
|
/transactions:
|
|
get:
|
|
description: Return a list of Transaction records from the datastore
|
|
operationId: getTransactions
|
|
parameters:
|
|
- $ref: "#/parameters/idQuery"
|
|
- $ref: "#/parameters/limitQuery"
|
|
- $ref: "#/parameters/offsetQuery"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/TransactionResponse"
|
|
"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 of Transactions
|
|
tags:
|
|
- Transactions
|
|
post:
|
|
description: Create Transactions
|
|
operationId: postTransactions
|
|
parameters:
|
|
- $ref: "#/parameters/TransactionRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/TransactionResponse"
|
|
"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 Transactions
|
|
tags:
|
|
- Transactions
|
|
put:
|
|
description: Update Transaction
|
|
operationId: putTransactions
|
|
parameters:
|
|
- $ref: "#/parameters/TransactionRequest"
|
|
responses:
|
|
"200":
|
|
$ref: "#/responses/TransactionResponse"
|
|
"401":
|
|
$ref: "#/responses/Unauthorized"
|
|
"403":
|
|
$ref: "#/responses/AccessForbidden"
|
|
"404":
|
|
$ref: "#/responses/NotFound"
|
|
"422":
|
|
$ref: "#/responses/UnprocessableEntity"
|
|
"500":
|
|
$ref: "#/responses/ServerError"
|
|
security:
|
|
- ApiKeyAuth: []
|
|
summary: Update Transaction
|
|
tags:
|
|
- Transactions
|
|
/users/onboard:
|
|
post:
|
|
description: Async onboard new users
|
|
operationId: postUsersOnboard
|
|
parameters:
|
|
- $ref: "#/parameters/OnboardRequest"
|
|
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
|
|
/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:
|
|
AuditFields:
|
|
type: object
|
|
properties:
|
|
id: {type: string, format: uuid, description: Server-generated on create; required in collection PUT bodies.}
|
|
createdById: {type: string, format: uuid, x-nullable: true, readOnly: true}
|
|
createdDate: {type: string, format: date-time, x-nullable: true, readOnly: true}
|
|
lastModifiedById: {type: string, format: uuid, x-nullable: true, readOnly: true}
|
|
lastModifiedDate: {type: string, format: date-time, x-nullable: true, readOnly: true}
|
|
|
|
Brand:
|
|
allOf:
|
|
- $ref: "#/definitions/AuditFields"
|
|
- type: object
|
|
required: [brandKey, name, domain, status]
|
|
properties:
|
|
brandKey: {type: string, minLength: 1, maxLength: 80}
|
|
name: {type: string, minLength: 1, maxLength: 255}
|
|
domain: {type: string, minLength: 1, maxLength: 255}
|
|
status: {type: string, enum: [active, inactive, retired]}
|
|
Service:
|
|
allOf:
|
|
- $ref: "#/definitions/AuditFields"
|
|
- type: object
|
|
required: [serviceKey, name, ownerSystem, status]
|
|
properties:
|
|
serviceKey: {type: string, minLength: 1, maxLength: 80}
|
|
name: {type: string, minLength: 1, maxLength: 255}
|
|
description: {type: string, x-nullable: true}
|
|
ownerSystem: {type: string, enum: [members, crm, research, plex, external]}
|
|
contractRef: {type: string, maxLength: 255, x-nullable: true}
|
|
status: {type: string, enum: [draft, active, retired]}
|
|
BrandService:
|
|
allOf:
|
|
- $ref: "#/definitions/AuditFields"
|
|
- type: object
|
|
required: [brandId, serviceId, status]
|
|
properties:
|
|
brandId: {type: string, format: uuid}
|
|
serviceId: {type: string, format: uuid}
|
|
status: {type: string, enum: [active, inactive]}
|
|
ServiceScope:
|
|
allOf:
|
|
- $ref: "#/definitions/AuditFields"
|
|
- type: object
|
|
required: [serviceId, scopeKey, status]
|
|
properties:
|
|
serviceId: {type: string, format: uuid}
|
|
scopeKey: {type: string, minLength: 1, maxLength: 120}
|
|
description: {type: string, x-nullable: true}
|
|
status: {type: string, enum: [active, retired]}
|
|
Plan:
|
|
allOf:
|
|
- $ref: "#/definitions/AuditFields"
|
|
- type: object
|
|
required: [planKey, version, name, status, currency, unitAmount, billingPeriod]
|
|
properties:
|
|
planKey: {type: string, minLength: 1, maxLength: 80}
|
|
version: {type: integer, format: int32, minimum: 1, maximum: 2147483647}
|
|
name: {type: string, minLength: 1, maxLength: 255}
|
|
description: {type: string, x-nullable: true}
|
|
status: {type: string, enum: [draft, active, retired]}
|
|
currency: {type: string, minLength: 3, maxLength: 3}
|
|
unitAmount: {type: string, minLength: 1, maxLength: 13, pattern: '^(0|[1-9][0-9]{0,9})(\.[0-9]{1,2})?$', description: "Exact decimal string matching SQL DECIMAL(12,2)."}
|
|
billingPeriod: {type: string, enum: [none, month, year, custom]}
|
|
effectiveFrom: {type: string, format: date-time, x-nullable: true}
|
|
effectiveUntil: {type: string, format: date-time, x-nullable: true}
|
|
BrandPlan:
|
|
allOf:
|
|
- $ref: "#/definitions/AuditFields"
|
|
- type: object
|
|
required: [brandId, planId, status]
|
|
properties:
|
|
brandId: {type: string, format: uuid}
|
|
planId: {type: string, format: uuid}
|
|
status: {type: string, enum: [active, inactive]}
|
|
PlanService:
|
|
allOf:
|
|
- $ref: "#/definitions/AuditFields"
|
|
- type: object
|
|
required: [planId, serviceId, grantMode, limitPeriod]
|
|
properties:
|
|
planId: {type: string, format: uuid}
|
|
serviceId: {type: string, format: uuid}
|
|
grantMode: {type: string, enum: [included, metered]}
|
|
unit: {type: string, maxLength: 40, x-nullable: true}
|
|
limitQuantity: {type: string, minLength: 1, maxLength: 21, pattern: '^(0|[1-9][0-9]{0,13})(\.[0-9]{1,6})?$', x-nullable: true, description: "Exact decimal string matching SQL DECIMAL(20,6); null means unlimited. This wave does not meter or decrement it."}
|
|
limitPeriod: {type: string, enum: [none, day, month, billing_period, lifetime]}
|
|
Subscription:
|
|
allOf:
|
|
- $ref: "#/definitions/AuditFields"
|
|
- type: object
|
|
required: [tenantId, planId, status, startsAt]
|
|
properties:
|
|
tenantId: {type: string, format: uuid}
|
|
planId: {type: string, format: uuid}
|
|
status: {type: string, enum: [trialing, active, past_due, paused, canceled, expired]}
|
|
startsAt: {type: string, format: date-time}
|
|
currentPeriodStart: {type: string, format: date-time, x-nullable: true}
|
|
currentPeriodEnd: {type: string, format: date-time, x-nullable: true}
|
|
endsAt: {type: string, format: date-time, x-nullable: true}
|
|
cancelAtPeriodEnd: {type: boolean, default: false}
|
|
paymentMethodId: {type: string, format: uuid, x-nullable: true}
|
|
provider: {type: string, minLength: 1, maxLength: 80, x-nullable: true, description: Non-secret provider name; blank values are normalized to null.}
|
|
externalCustomerId: {type: string, minLength: 1, maxLength: 255, x-nullable: true, description: Non-secret provider reference; blank values are normalized to null.}
|
|
externalSubscriptionId: {type: string, minLength: 1, maxLength: 255, x-nullable: true, description: Non-secret provider reference; blank values are normalized to null.}
|
|
Entitlement:
|
|
allOf:
|
|
- $ref: "#/definitions/AuditFields"
|
|
- type: object
|
|
required: [tenantId, serviceId, source, effect, status, effectiveFrom]
|
|
properties:
|
|
tenantId: {type: string, format: uuid}
|
|
userId: {type: string, format: uuid, x-nullable: true, description: Null means tenant-level; non-null must belong to the tenant.}
|
|
serviceId: {type: string, format: uuid}
|
|
subscriptionId: {type: string, format: uuid, x-nullable: true}
|
|
source: {type: string, enum: [subscription, manual, trial, promotion]}
|
|
effect: {type: string, enum: [allow, deny]}
|
|
status: {type: string, enum: [scheduled, active, revoked, expired]}
|
|
effectiveFrom: {type: string, format: date-time}
|
|
effectiveUntil: {type: string, format: date-time, x-nullable: true}
|
|
unit: {type: string, maxLength: 40, x-nullable: true}
|
|
limitQuantity: {type: string, minLength: 1, maxLength: 21, pattern: '^(0|[1-9][0-9]{0,13})(\.[0-9]{1,6})?$', x-nullable: true, description: "Exact decimal string matching SQL DECIMAL(20,6)."}
|
|
limitPeriod: {type: string, enum: [none, day, month, billing_period, lifetime], x-nullable: true}
|
|
revokedAt: {type: string, format: date-time, x-nullable: true, readOnly: true}
|
|
revokedById: {type: string, format: uuid, x-nullable: true, readOnly: true}
|
|
EffectiveEntitlement:
|
|
type: object
|
|
required: [tenantId, serviceId, effect, provenance, evaluatedAt, limit]
|
|
properties:
|
|
tenantId: {type: string, format: uuid}
|
|
userId: {type: string, format: uuid, x-nullable: true}
|
|
serviceId: {type: string, format: uuid}
|
|
effect: {type: string, enum: [allow, deny]}
|
|
effectiveFrom: {type: string, format: date-time, x-nullable: true}
|
|
effectiveUntil: {type: string, format: date-time, x-nullable: true}
|
|
evaluatedAt: {type: string, format: date-time}
|
|
provenance: {type: string, enum: [user_entitlement, tenant_entitlement, subscription_plan]}
|
|
limit: {$ref: "#/definitions/DescriptiveLimit"}
|
|
DescriptiveLimit:
|
|
type: object
|
|
required: [unlimited, period]
|
|
properties:
|
|
unlimited: {type: boolean}
|
|
unit: {type: string, maxLength: 40, x-nullable: true}
|
|
quantity: {type: string, minLength: 1, maxLength: 21, pattern: '^(0|[1-9][0-9]{0,13})(\.[0-9]{1,6})?$', x-nullable: true, description: "Exact decimal string matching SQL DECIMAL(20,6)."}
|
|
period: {type: string, enum: [none, day, month, billing_period, lifetime]}
|
|
enforced: {type: boolean, default: false, description: Always false in this wave; usage accounting is deferred.}
|
|
AuthorizedClient:
|
|
allOf:
|
|
- $ref: "#/definitions/AuditFields"
|
|
- type: object
|
|
required: [tenantId, clientIdentifier, clientType, displayName, status]
|
|
description: Non-secret connection metadata. Token, secret, API-key, and cookie properties are deliberately absent.
|
|
properties:
|
|
tenantId: {type: string, format: uuid}
|
|
userId: {type: string, format: uuid, x-nullable: true, description: Null means tenant-level; non-null must belong to the tenant.}
|
|
clientIdentifier: {type: string, minLength: 1, maxLength: 255}
|
|
clientType: {type: string, enum: [mcp, api]}
|
|
displayName: {type: string, minLength: 1, maxLength: 255}
|
|
softwareId: {type: string, maxLength: 255, x-nullable: true}
|
|
softwareVersion: {type: string, maxLength: 80, x-nullable: true}
|
|
clientUri: {type: string, maxLength: 2048, x-nullable: true}
|
|
externalConnectionId: {type: string, maxLength: 255, x-nullable: true, description: Non-secret external reference.}
|
|
status: {type: string, enum: [pending, active, revoked, expired]}
|
|
approvedAt: {type: string, format: date-time, x-nullable: true, readOnly: true}
|
|
lastUsedAt: {type: string, format: date-time, x-nullable: true, readOnly: true}
|
|
expiresAt: {type: string, format: date-time, x-nullable: true}
|
|
revokedAt: {type: string, format: date-time, x-nullable: true, readOnly: true}
|
|
revokedById: {type: string, format: uuid, x-nullable: true, readOnly: true}
|
|
AuthorizedClientScope:
|
|
allOf:
|
|
- $ref: "#/definitions/AuditFields"
|
|
- type: object
|
|
required: [authorizedClientId, serviceScopeId]
|
|
properties:
|
|
authorizedClientId: {type: string, format: uuid}
|
|
serviceScopeId: {type: string, format: uuid}
|
|
|
|
TenantMembership:
|
|
allOf:
|
|
- $ref: "#/definitions/TenantMembershipAuditFields"
|
|
- type: object
|
|
required: [tenantId, userId, email, accessLevel, status]
|
|
properties:
|
|
tenantId: {type: string, minLength: 1, maxLength: 36}
|
|
userId: {type: string, format: uuid}
|
|
email: {type: string, format: email, readOnly: true}
|
|
fullName: {type: string, x-nullable: true, readOnly: true}
|
|
accessLevel: {type: string, enum: [owner, manager, member, read_only]}
|
|
status: {type: string, enum: [active, suspended, revoked]}
|
|
TenantMembershipAuditFields:
|
|
type: object
|
|
required: [id, createdDate, lastModifiedDate]
|
|
properties:
|
|
id: {type: string, format: uuid, description: Server-generated membership identifier.}
|
|
createdById: {type: string, format: uuid, x-nullable: true, readOnly: true}
|
|
createdDate: {type: string, format: date-time, description: Server-owned UTC creation timestamp.}
|
|
lastModifiedById: {type: string, format: uuid, x-nullable: true, readOnly: true}
|
|
lastModifiedDate: {type: string, format: date-time, description: Server-owned optimistic concurrency token.}
|
|
TenantMembershipCreate:
|
|
type: object
|
|
required: [tenantId, accessLevel]
|
|
description: Exactly one of userId or email is required; Members validates the exclusive selector transactionally.
|
|
properties:
|
|
tenantId: {type: string, minLength: 1, maxLength: 36}
|
|
userId: {type: string, format: uuid, x-nullable: true}
|
|
email: {type: string, format: email, x-nullable: true}
|
|
accessLevel: {type: string, enum: [owner, manager, member, read_only]}
|
|
status: {type: string, enum: [active, suspended, revoked], default: active}
|
|
TenantMembershipUpdate:
|
|
type: object
|
|
required: [lastModifiedDate]
|
|
properties:
|
|
accessLevel: {type: string, enum: [owner, manager, member, read_only], x-nullable: true}
|
|
status: {type: string, enum: [active, suspended, revoked], x-nullable: true}
|
|
lastModifiedDate: {type: string, format: date-time, description: Optimistic concurrency token from the latest representation.}
|
|
ManageableTenant:
|
|
type: object
|
|
required: [id, tenantName, actorAccessLevel]
|
|
properties:
|
|
id: {type: string, minLength: 1, maxLength: 36}
|
|
tenantName: {type: string}
|
|
tenantType: {type: string, x-nullable: true}
|
|
status: {type: string, x-nullable: true}
|
|
active: {type: boolean, x-nullable: true}
|
|
actorAccessLevel: {type: string, enum: [estate_administrator, owner, manager]}
|
|
|
|
PortalMeta:
|
|
type: object
|
|
properties:
|
|
operationId: {type: string}
|
|
serverTimestamp: {type: string, format: date-time}
|
|
limit: {type: integer, format: int64}
|
|
offset: {type: integer, format: int64}
|
|
BrandRequest: {type: object, required: [Data], properties: {Data: {type: array, items: {$ref: "#/definitions/Brand"}}}}
|
|
BrandResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/Brand"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
ServiceRequest: {type: object, required: [Data], properties: {Data: {type: array, items: {$ref: "#/definitions/Service"}}}}
|
|
ServiceResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/Service"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
BrandServiceRequest: {type: object, required: [Data], properties: {Data: {type: array, items: {$ref: "#/definitions/BrandService"}}}}
|
|
BrandServiceResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/BrandService"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
ServiceScopeRequest: {type: object, required: [Data], properties: {Data: {type: array, items: {$ref: "#/definitions/ServiceScope"}}}}
|
|
ServiceScopeResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/ServiceScope"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
PlanRequest: {type: object, required: [Data], properties: {Data: {type: array, items: {$ref: "#/definitions/Plan"}}}}
|
|
PlanResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/Plan"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
BrandPlanRequest: {type: object, required: [Data], properties: {Data: {type: array, items: {$ref: "#/definitions/BrandPlan"}}}}
|
|
BrandPlanResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/BrandPlan"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
PlanServiceRequest: {type: object, required: [Data], properties: {Data: {type: array, items: {$ref: "#/definitions/PlanService"}}}}
|
|
PlanServiceResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/PlanService"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
SubscriptionRequest: {type: object, required: [Data], properties: {Data: {type: array, items: {$ref: "#/definitions/Subscription"}}}}
|
|
SubscriptionResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/Subscription"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
EntitlementRequest: {type: object, required: [Data], properties: {Data: {type: array, items: {$ref: "#/definitions/Entitlement"}}}}
|
|
EntitlementResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/Entitlement"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
EffectiveEntitlementResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/EffectiveEntitlement"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
AuthorizedClientRequest: {type: object, required: [Data], properties: {Data: {type: array, items: {$ref: "#/definitions/AuthorizedClient"}}}}
|
|
AuthorizedClientResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/AuthorizedClient"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
AuthorizedClientScopeRequest: {type: object, required: [Data], properties: {Data: {type: array, items: {$ref: "#/definitions/AuthorizedClientScope"}}}}
|
|
AuthorizedClientScopeResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/AuthorizedClientScope"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
TenantMembershipCreateRequest: {type: object, required: [Data], properties: {Data: {$ref: "#/definitions/TenantMembershipCreate"}}}
|
|
TenantMembershipUpdateRequest: {type: object, required: [Data], properties: {Data: {$ref: "#/definitions/TenantMembershipUpdate"}}}
|
|
TenantMembershipResponse: {type: object, required: [Data, Meta], properties: {Data: {$ref: "#/definitions/TenantMembership"}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
TenantMembershipListResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/TenantMembership"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
ManageableTenantResponse: {type: object, required: [Data, Meta], properties: {Data: {type: array, items: {$ref: "#/definitions/ManageableTenant"}}, Meta: {$ref: "#/definitions/PortalMeta"}}}
|
|
OnboardRequest:
|
|
description: Self-service onboarding request. The plaintext password is hashed server-side with the members pepper; it is never stored or logged in plaintext.
|
|
type: object
|
|
required:
|
|
- email
|
|
- password
|
|
properties:
|
|
email:
|
|
description: Login email (stored lowercased)
|
|
type: string
|
|
format: email
|
|
password:
|
|
description: Plaintext password; hashed server-side as bcrypt(password+pepper)
|
|
type: string
|
|
format: password
|
|
minLength: 12
|
|
firstName:
|
|
description: First name
|
|
type: string
|
|
lastName:
|
|
description: Last name
|
|
type: string
|
|
companyName:
|
|
description: Company name
|
|
type: string
|
|
AttendeeRequest:
|
|
description: An array of Attendee objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/attendee.yaml#/Attendee"
|
|
type: array
|
|
type: object
|
|
AttendeeResponse:
|
|
description: An array of Attendee objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/attendee.yaml#/Attendee"
|
|
type: array
|
|
type: object
|
|
CertificateRequest:
|
|
description: An array of Certificate objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/certificate.yaml#/Certificate"
|
|
type: array
|
|
type: object
|
|
CertificateResponse:
|
|
description: An array of Certificate objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/certificate.yaml#/Certificate"
|
|
type: array
|
|
type: object
|
|
ClusterRequest:
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/cluster.yaml#/Cluster"
|
|
type: array
|
|
type: object
|
|
ClusterResponse:
|
|
description: An array of cluster objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/cluster.yaml#/Cluster"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
CourseLessonRequest:
|
|
description: An array of CourseLesson objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/course-lesson.yaml#/CourseLesson"
|
|
type: array
|
|
type: object
|
|
CourseLessonResponse:
|
|
description: An array of CourseLesson objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/course-lesson.yaml#/CourseLesson"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
CourseRequest:
|
|
description: An array of Course objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/course.yaml#/Course"
|
|
type: array
|
|
type: object
|
|
CourseResponse:
|
|
description: An array of Course objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/course.yaml#/Course"
|
|
type: array
|
|
type: object
|
|
CourseSectionRequest:
|
|
description: An array of CourseSection objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/course-section.yaml#/CourseSection"
|
|
type: array
|
|
type: object
|
|
CourseSectionResponse:
|
|
description: An array of CourseSection objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/course-section.yaml#/CourseSection"
|
|
type: array
|
|
type: object
|
|
DatabaseRequest:
|
|
description: An array of Database objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/database.yaml#/Database"
|
|
type: array
|
|
type: object
|
|
DatabaseResponse:
|
|
description: An array of Database objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/database.yaml#/Database"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
DocumentRequest:
|
|
description: An array of Document objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/document.yaml#/Document"
|
|
type: array
|
|
type: object
|
|
DocumentResponse:
|
|
description: An array of Document objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/document.yaml#/Document"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
EmailMessageRequest:
|
|
description: An array Send Email Message objects
|
|
properties:
|
|
data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/email-message.yaml#/EmailMessage"
|
|
type: array
|
|
meta:
|
|
$ref: "#/definitions/RequestMeta"
|
|
type: object
|
|
EmailMessagesResponse:
|
|
description: An array user objects
|
|
properties:
|
|
data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/email-message.yaml#/EmailMessage"
|
|
type: array
|
|
meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
EnrollmentRequest:
|
|
description: An array of Enrollment objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/enrollment.yaml#/Enrollment"
|
|
type: array
|
|
type: object
|
|
EnrollmentResponse:
|
|
description: An array of Enrollment objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/enrollment.yaml#/Enrollment"
|
|
type: array
|
|
type: object
|
|
EventRequest:
|
|
description: An array of Event objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/event.yaml#/Event"
|
|
type: array
|
|
type: object
|
|
EventResponse:
|
|
description: An array of Event objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/event.yaml#/Event"
|
|
type: array
|
|
type: object
|
|
EventCategoryRequest:
|
|
description: An array of EventCategory objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/event-category.yaml#/EventCategory"
|
|
type: array
|
|
type: object
|
|
EventCategoryResponse:
|
|
description: An array of EventCategory objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/event-category.yaml#/EventCategory"
|
|
type: array
|
|
type: object
|
|
FavoriteRequest:
|
|
description: An array of Favorite objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/favorite.yaml#/Favorite"
|
|
type: array
|
|
type: object
|
|
FavoriteResponse:
|
|
description: An array of Favorite objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/favorite.yaml#/Favorite"
|
|
type: array
|
|
type: object
|
|
InvoiceRequest:
|
|
description: An array of Invoice objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/invoice.yaml#/Invoice"
|
|
type: array
|
|
type: object
|
|
InvoiceResponse:
|
|
description: An array of Invoice objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/invoice.yaml#/Invoice"
|
|
type: array
|
|
type: object
|
|
IssuedCertificateRequest:
|
|
description: An array of IssuedCertificate objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/issued-certificate.yaml#/IssuedCertificate"
|
|
type: array
|
|
type: object
|
|
IssuedCertificateResponse:
|
|
description: An array of IssuedCertificate objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/issued-certificate.yaml#/IssuedCertificate"
|
|
type: array
|
|
type: object
|
|
LessonProgressRequest:
|
|
description: An array of LessonProgress objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/lesson-progress.yaml#/LessonProgress"
|
|
type: array
|
|
type: object
|
|
LessonProgressResponse:
|
|
description: An array of LessonProgress objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/lesson-progress.yaml#/LessonProgress"
|
|
type: array
|
|
type: object
|
|
OutgoingEmailMessageRequest:
|
|
description: An array New Email Message objects
|
|
properties:
|
|
data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/outgoing-email-message.yaml#/OutgoingEmailMessage"
|
|
type: array
|
|
type: object
|
|
OutgoingEmailMessagesResponse:
|
|
description: An array New Email Message objects
|
|
properties:
|
|
data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/outgoing-email-message.yaml#/OutgoingEmailMessage"
|
|
type: array
|
|
meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
OrderRequest:
|
|
description: An array of Order objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/order.yaml#/Order"
|
|
type: array
|
|
type: object
|
|
OrderResponse:
|
|
description: An array of Order objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/order.yaml#/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
|
|
PaymentMethodRequest:
|
|
description: An array of PaymentMethod objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/payment-method.yaml#/PaymentMethod"
|
|
type: array
|
|
type: object
|
|
PaymentMethodResponse:
|
|
description: An array of PaymentMethod objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/payment-method.yaml#/PaymentMethod"
|
|
type: array
|
|
type: object
|
|
PromptAnswerRequest:
|
|
description: An array of Prompt objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/prompt-answer.yaml#/PromptAnswer"
|
|
type: array
|
|
type: object
|
|
PromptAnswerResponse:
|
|
description: An array of PromptResponse objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/prompt-answer.yaml#/PromptAnswer"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
PromptRequest:
|
|
description: An array of Prompt objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/prompt.yaml#/Prompt"
|
|
type: array
|
|
type: object
|
|
PromptResponse:
|
|
description: An array of Prompt objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/prompt.yaml#/Prompt"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
PromptCategoryRequest:
|
|
description: An array of PromptCategory objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/prompt-category.yaml#/PromptCategory"
|
|
type: array
|
|
type: object
|
|
PromptCategoryResponse:
|
|
description: An array of PromptCategory objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/prompt-category.yaml#/PromptCategory"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
PromptTagRequest:
|
|
description: An array of PromptTag objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/prompt-tag.yaml#/PromptTag"
|
|
type: array
|
|
type: object
|
|
PromptTagResponse:
|
|
description: An array of PromptTag objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/prompt-tag.yaml#/PromptTag"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
RequestMeta:
|
|
properties:
|
|
ExternalAccount:
|
|
description: Account Number of the Reseller or OEM
|
|
type: string
|
|
x-nullable: true
|
|
required:
|
|
- ExternalAccount
|
|
type: object
|
|
ResearchProjectCompanyRequest:
|
|
description: An array of ResearchProjectCompany objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/research-project-company.yaml#/ResearchProjectCompany"
|
|
type: array
|
|
type: object
|
|
ResearchProjectCompanyResponse:
|
|
description: An array of ResearchProjectCompany objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/research-project-company.yaml#/ResearchProjectCompany"
|
|
type: array
|
|
type: object
|
|
ResearchProjectRequest:
|
|
description: An array of ResearchProject objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/research-project.yaml#/ResearchProject"
|
|
type: array
|
|
type: object
|
|
ResearchProjectResponse:
|
|
description: An array of ResearchProject objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/research-project.yaml#/ResearchProject"
|
|
type: array
|
|
type: object
|
|
ResearchProjectDocumentRequest:
|
|
description: An array of ResearchProjectDocumentRequest objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/research-project-document.yaml#/ResearchProjectDocument"
|
|
type: array
|
|
type: object
|
|
ResearchProjectDocumentResponse:
|
|
description: An array of ResearchProjectDocumentResponse objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/research-project-document.yaml#/ResearchProjectDocument"
|
|
type: array
|
|
type: object
|
|
ResearchProjectProductRequest:
|
|
description: An array of ResearchProjectProduct objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/research-project-product.yaml#/ResearchProjectProduct"
|
|
type: array
|
|
type: object
|
|
ResearchProjectProductResponse:
|
|
description: An array of ResearchProjectProduct objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/research-project-product.yaml#/ResearchProjectProduct"
|
|
type: array
|
|
type: object
|
|
ResearchProjectServiceResponse:
|
|
description: An array of ResearchProjectService objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/research-project-service.yaml#/ResearchProjectService"
|
|
type: array
|
|
type: object
|
|
ResearchProjectServiceRequest:
|
|
description: An array of ResearchProjectService objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/research-project-service.yaml#/ResearchProjectService"
|
|
type: array
|
|
type: object
|
|
ResearchProjectTopicRequest:
|
|
description: An array of ResearchProjectTopic objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/research-project-topic.yaml#/ResearchProjectTopic"
|
|
type: array
|
|
type: object
|
|
ResearchProjectTopicResponse:
|
|
description: An array of ResearchProjectTopic objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/research-project-topic.yaml#/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
|
|
ExternalAccount:
|
|
description: Account Number used for recording transactions
|
|
type: string
|
|
type: object
|
|
RoleRequest:
|
|
description: An array of Role objects
|
|
properties:
|
|
Date:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/role.yaml#/Role"
|
|
type: array
|
|
type: object
|
|
RoleResponse:
|
|
description: An array of Role objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/role.yaml#/Role"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
TemplateRequest:
|
|
description: An array of Templates
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/template.yaml#/Template"
|
|
type: array
|
|
type: object
|
|
TemplateResponse:
|
|
description: An array of Templates
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/template.yaml#/Template"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
TenantRequest:
|
|
description: An array of Tenant objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/tenant.yaml#/Tenant"
|
|
type: array
|
|
type: object
|
|
TenantResponse:
|
|
description: An array of Tenant objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/tenant.yaml#/Tenant"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|
|
TicketRequest:
|
|
description: An array of Ticket objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/ticket.yaml#/Ticket"
|
|
type: array
|
|
type: object
|
|
TicketResponse:
|
|
description: An array of Ticket objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/ticket.yaml#/Ticket"
|
|
type: array
|
|
type: object
|
|
TransactionRequest:
|
|
description: An array of Transaction objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/transaction.yaml#/Transaction"
|
|
type: array
|
|
type: object
|
|
TransactionResponse:
|
|
description: An array of Transaction objects
|
|
properties:
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/transaction.yaml#/Transaction"
|
|
type: array
|
|
type: object
|
|
UserRequest:
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/user.yaml#/User"
|
|
type: array
|
|
type: object
|
|
UserResponse:
|
|
description: An array of Print-Ready ingest Objects
|
|
properties:
|
|
Data:
|
|
items:
|
|
$ref: "../../lib/swagger/defs/user.yaml#/User"
|
|
type: array
|
|
Meta:
|
|
$ref: "#/definitions/ResponseMeta"
|
|
type: object
|