‘,
name: ‘Not Found’,
summary: ‘Not Found’,
description: ‘Not Found’,
operationId: ‘get-group-not-found’,
deprecated: false,
‘x-codegen-response’: ‘notFound’,
},
{
status: ‘500: Internal Server Error’,
name: ‘Server Error’,
summary: ‘Server Error’,
description: ‘Server Error’,
operationId: ‘get-group-server-error’,
deprecated: false,
‘x-codegen-response’: ‘serverError’,
},
],
tags: [‘Group’],
},
patch: {
operationId: ‘patch-group’,
summary: ‘Update a Group’,
description: ‘Updates a group.’,
parameters: [
{
name: ‘group_uid’,
in: ‘path’,
required: true,
description: ‘The UID of the group’,
schema: {
type: ‘string’,
format: ‘uuid’,
},
},
],
requestBody: {
required: true,
content: {
‘application/json’: {
schema: {
$ref: ‘#/components/schemas/Group’,
},
},
},
},
responses: [
{
status: ‘200: OK’,
name: ‘Updated’,
summary: ‘The Group was updated successfully’,
description: ‘Updated’,
operationId: ‘patch-group-ok’,
deprecated: false,
‘x-codegen-response’: ‘ok’,
},
{
status: ‘400: Bad Request’,
name: ‘Bad Request’,
summary: ‘Bad Request’,
description: ‘Bad Request’,
operationId: ‘patch-group-bad-request’,
deprecated: false,
‘x-codegen-response’: ‘badRequest’,
},
{
status: ‘401: Unauthorized’,
name: ‘Unauthorized’,
summary: ‘Unauthorized’,
description: ‘Unauthorized’,
operationId: ‘patch-group-unauthorized’,
deprecated: false,
‘x-codegen-response’: ‘unauthorized’,
},
{
status: ‘403: Forbidden’,
name: ‘Forbidden’,
summary: ‘Forbidden’,
description: ‘Forbidden’,
operationId: ‘patch-group-forbidden’,
deprecated: false,
‘x-codegen-response’: ‘forbidden’,
},
{
status: ‘404: Not Found’,
name: ‘Not Found’,
summary: ‘Not Found’,
description: ‘Not Found’,
operationId: ‘patch-group-not-found’,
deprecated: false,
‘x-codegen-response’: ‘notFound’,
},
{
status: ‘500: Internal Server Error’,
name: ‘Server Error’,
summary: ‘Server Error’,
description: ‘Server Error’,
operationId: ‘patch-group-server-error’,
deprecated: false,
‘x-codegen-response’: ‘serverError’,
},
],
tags: [‘Group’],
},
delete: {
operationId: ‘delete-group’,
summary: ‘Delete a Group’,
description: ‘Deletes a group.’,
parameters: [
{
name: ‘group_uid’,
in: ‘path’,
required: true,
description: ‘The UID of the group’,
schema: {
type: ‘string’,
format: ‘uuid’,
},
},
],
responses: [
{
status: ‘204: No Content’,
name: ‘Deleted’,
summary: ‘The group was deleted successfully’,
description: ‘Deleted’,
operationId: ‘delete-group-no-content’,
deprecated: false,
‘x-codegen-response’: ‘noContent’,
},
{
status: ‘401: Unauthorized’,
name: ‘Unauthorized’,
summary: ‘Unauthorized’,
description: ‘Unauthorized’,
operationId: ‘delete-group-unauthorized’,
deprecated: false,
‘x-codegen-response’: ‘unauthorized’,
},
{
status: ‘403: Forbidden’,
name: ‘Forbidden’,
summary: ‘Forbidden’,
description: ‘Forbidden’,
operationId: ‘delete-group-forbidden’,
deprecated: false,
‘x-codegen-response’: ‘forbidden’,
},
{
status: ‘404: Not Found’,
name: ‘Not Found’,
summary: ‘Not Found’,
description: ‘Not Found’,
operationId: ‘delete-group-not-found’,
deprecated: false,
‘x-codegen-response’: ‘notFound’,
},
{
status: ‘500: Internal Server Error’,
name: ‘Server Error’,
summary: ‘Server Error’,
description: ‘Server Error’,
operationId: ‘delete-group-server-error’,
deprecated: false,
‘x-codegen-response’: ‘serverError’,
},
],
tags: [‘Group’],
},
},
‘/helpcenter/v1/groups/attach’: {
post: {
operationId: ‘post-group-attach’,
summary: ‘Attach / Remove Users from a Group’,
description: ‘Attach / Remove Users from a Group’,
requestBody: {
required: true,
content: {
‘application/json’: {
schema: {
$ref: ‘#/components/schemas/GroupAttachRequest’,
},
},
},
},
responses: [
{
status: ‘200: OK’,
name: ‘Updated’,
summary: ‘The group was updated successfully’,
description: ‘Updated’,
operationId: ‘post-group-attach-ok’,
deprecated: false,
‘x-codegen-response’: ‘ok’,
},
{
status: ‘400: Bad Request’,
name: ‘Bad Request’,
summary: ‘Bad Request’,
description: ‘Bad Request’,
operationId: ‘post-group-attach-bad-request’,
deprecated: false,
‘x-codegen-response’: ‘badRequest’,
},
{
status: ‘401: Unauthorized’,
name: ‘Unauthorized’,
summary: ‘Unauthorized’,
description: ‘Unauthorized’,
operationId: ‘post-group-attach-unauthorized’,
deprecated: false,
‘x-codegen-response’: ‘unauthorized’,
},
{
status: ‘403: Forbidden’,
name: ‘Forbidden’,
summary: ‘Forbidden’,
description: ‘Forbidden’,
operationId: ‘post-group-attach-forbidden’,
deprecated: false,
‘x-codegen-response’: ‘forbidden’,
},
{
status: ‘404: Not Found’,
name: ‘Not Found’,
summary: ‘Not Found’,
description: ‘Not Found’,
operationId: ‘post-group-attach-not-found’,
deprecated: false,
‘x-codegen-response’: ‘notFound’,
},
{
status: ‘500: Internal Server Error’,
name: ‘Server Error’,
summary: ‘Server Error’,
description: ‘Server Error’,
operationId: ‘post-group-attach-server-error’,
deprecated: false,
‘x-codegen-response’: ‘serverError’,
},
],
tags: [‘Group’],
},
},
},
components: {
securitySchemes: {
ApiKeyAuth: {
type: ‘apiKey’,
name: ‘X-API-KEY’,
in: ‘header’,
},
BasicAuth: {
type: ‘http’,
scheme: ‘basic’,
},
},
schemas: {
APIResponse: {
title: ‘APIResponse’,
type: ‘object’,
properties: {
message: {
type: ‘string’,
description: ‘The response message’,
example: ‘Request was successful’,
},
code: {
type: ‘number’,
description: ‘The response status code’,
example: 200,
},
success: {
type: ‘boolean’,
example: true,
},
},
required: [],
},
CourseCategory: {
title: ‘CourseCategory’,
type: ‘object’,
properties: {
category_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The UUID of the category’,
},
name: {
type: ‘string’,
description: ‘The name of the category’,
},
slug: {
type: ‘string’,
description: ‘The slug of the category’,
},
is_active: {
type: ‘boolean’,
description: ‘The active status of this category’,
},
parent_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The UUID of the parent category’,
nullable: true,
},
description: {
type: ‘string’,
description: ‘The description of the category’,
},
course_count: {
type: ‘number’,
description: ‘The total number of courses in this category’,
},
background_url: {
type: ‘string’,
description:
“URL to the background image. If the background is uploaded via the dashboard, this URL will point to HelpCenter’s CDN”,
},
icon: {
type: ‘string’,
description:
‘The name of the icon. The icons can be from a bundled icon library or a custom URL’,
},
order: {
type: ‘number’,
description:
‘The order of the category on the courses page. The higher the number, the higher up the category will be listed’,
},
meta_data: {
type: ‘object’,
description: ‘Metadata for this category’,
additionalProperties: true,
},
created_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the category was created’,
},
updated_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the category was updated’,
},
},
required: [‘category_uid’, ‘name’, ‘slug’, ‘is_active’, ‘created_at’],
},
CourseCategoryResponse: {
title: ‘CourseCategoryResponse’,
type: ‘object’,
properties: {
data: {
$ref: ‘#/components/schemas/CourseCategory’,
},
message: {
type: ‘string’,
description: ‘The response message’,
example: ‘Request was successful’,
},
code: {
type: ‘number’,
description: ‘The response status code’,
example: 200,
},
success: {
type: ‘boolean’,
example: true,
},
},
required: [],
},
Student: {
title: ‘Student’,
type: ‘object’,
properties: {
student_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The UUID of the student’,
},
email: {
type: ‘string’,
format: ’email’,
description: “The student’s email address”,
},
first_name: {
type: ‘string’,
description: “The student’s first name”,
},
last_name: {
type: ‘string’,
description: “The student’s last name”,
},
company: {
type: ‘string’,
description: “The student’s company”,
nullable: true,
},
profile_image: {
type: ‘string’,
description: “The student’s profile image”,
nullable: true,
},
company_position: {
type: ‘string’,
description: “The student’s position at the company”,
nullable: true,
},
phone_number: {
type: ‘string’,
description: “The student’s phone number”,
nullable: true,
},
is_active: {
type: ‘boolean’,
description: “The student’s activation status”,
},
created_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the student was created’,
},
updated_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the student was updated’,
},
},
required: [
‘student_uid’,
’email’,
‘first_name’,
‘last_name’,
‘is_active’,
‘created_at’,
],
},
StudentResponse: {
title: ‘StudentResponse’,
type: ‘object’,
properties: {
data: {
$ref: ‘#/components/schemas/Student’,
},
message: {
type: ‘string’,
description: ‘The response message’,
example: ‘Request was successful’,
},
code: {
type: ‘number’,
description: ‘The response status code’,
example: 200,
},
success: {
type: ‘boolean’,
example: true,
},
},
required: [],
},
PaginatedResponse: {
title: ‘PaginatedResponse’,
type: ‘object’,
properties: {
data: {
oneOf: [
{
type: ‘array’,
items: {
$ref: ‘#/components/schemas/Course’,
},
},
{
type: ‘array’,
items: {
$ref: ‘#/components/schemas/Student’,
},
},
{
type: ‘array’,
items: {
$ref: ‘#/components/schemas/Staff’,
},
},
{
type: ‘array’,
items: {
$ref: ‘#/components/schemas/CourseCategory’,
},
},
{
type: ‘array’,
items: {
$ref: ‘#/components/schemas/Group’,
},
},
],
},
meta_data: {
type: ‘object’,
description: ‘Pagination metadata’,
properties: {
total: {
type: ‘number’,
description: ‘Total records’,
},
total_pages: {
type: ‘number’,
description: ‘Total number of pages’,
},
page: {
type: ‘number’,
description: ‘Current page’,
},
per_page: {
type: ‘number’,
description: ‘Number of records per page’,
},
next_page: {
type: ‘string’,
format: ‘uri’,
description: ‘Full URL to next page’,
},
prev_page: {
type: ‘string’,
format: ‘uri’,
description: ‘Full URL to previous page’,
},
},
required: [
‘total’,
‘total_pages’,
‘page’,
‘per_page’,
‘next_page’,
‘prev_page’,
],
},
},
required: [‘data’, ‘meta_data’],
},
Staff: {
title: ‘Staff’,
type: ‘object’,
properties: {
staff_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The UUID of the staff’,
},
email: {
type: ‘string’,
format: ’email’,
description: “The staff’s email address”,
},
first_name: {
type: ‘string’,
description: “The staff’s first name”,
},
last_name: {
type: ‘string’,
description: “The staff’s last name”,
},
is_active: {
type: ‘boolean’,
description: “The staff’s activation status”,
},
is_superuser: {
type: ‘boolean’,
description: “The staff’s superuser status”,
},
account_type: {
type: ‘string’,
description: ‘The type of account’,
},
created_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the staff was created’,
},
updated_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the staff was updated’,
},
},
required: [
‘staff_uid’,
’email’,
‘first_name’,
‘last_name’,
‘is_active’,
‘account_type’,
‘created_at’,
],
},
StaffResponse: {
title: ‘StaffResponse’,
type: ‘object’,
properties: {
data: {
$ref: ‘#/components/schemas/Staff’,
},
message: {
type: ‘string’,
description: ‘The response message’,
example: ‘Request was successful’,
},
code: {
type: ‘number’,
description: ‘The response status code’,
example: 200,
},
success: {
type: ‘boolean’,
example: true,
},
},
required: [],
},
StaffCreatePayload: {
title: ‘StaffCreatePayload’,
type: ‘object’,
properties: {
email: {
type: ‘string’,
format: ’email’,
description: “The staff’s email address”,
},
first_name: {
type: ‘string’,
description: “The staff’s first name”,
},
last_name: {
type: ‘string’,
description: “The staff’s last name”,
},
is_active: {
type: ‘boolean’,
description: “The staff’s activation status”,
default: true,
},
is_superuser: {
type: ‘boolean’,
description: “The staff’s superuser status”,
default: false,
},
},
required: [’email’, ‘first_name’, ‘last_name’],
},
PaginationParams: {
title: ‘PaginationParams’,
type: ‘object’,
properties: {
page: {
type: ‘number’,
description: ‘Current page’,
default: 1,
},
per_page: {
type: ‘number’,
description: ‘Number of records per page’,
default: 15,
},
},
required: [],
},
OrderParams: {
title: ‘OrderParams’,
type: ‘object’,
properties: {
order_by: {
type: ‘string’,
description: ‘The column to order by’,
default: ‘created_at’,
},
order_direction: {
type: ‘string’,
description: ‘The direction to order by’,
enum: [‘asc’, ‘desc’],
default: ‘desc’,
},
},
required: [],
},
StudentEnrollment: {
title: ‘StudentEnrollment’,
type: ‘object’,
properties: {
student_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The UUID of the student’,
},
course_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The UUID of the course’,
},
is_active: {
type: ‘boolean’,
description: ‘The enrollment status of the student’,
},
created_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the enrollment was created’,
},
updated_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the enrollment was updated’,
},
completed_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the course was completed’,
nullable: true,
},
completed_lessons: {
type: ‘number’,
description: ‘The number of lessons completed’,
},
completion_percentage: {
type: ‘number’,
description: ‘The completion percentage of the course’,
},
total_lessons: {
type: ‘number’,
description: ‘The total number of lessons in this course’,
},
},
required: [
‘student_uid’,
‘course_uid’,
‘is_active’,
‘created_at’,
‘updated_at’,
‘completed_lessons’,
‘completion_percentage’,
‘total_lessons’,
],
},
StudentEnrollmentResponse: {
title: ‘StudentEnrollmentResponse’,
type: ‘object’,
properties: {
data: {
$ref: ‘#/components/schemas/StudentEnrollment’,
},
message: {
type: ‘string’,
description: ‘The response message’,
example: ‘Request was successful’,
},
code: {
type: ‘number’,
description: ‘The response status code’,
example: 200,
},
success: {
type: ‘boolean’,
example: true,
},
},
required: [],
},
Course: {
title: ‘Course’,
type: ‘object’,
properties: {
course_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The UUID of the course’,
},
title: {
type: ‘string’,
description: ‘The title of the course’,
},
slug: {
type: ‘string’,
description: ‘The slug of the course’,
},
is_active: {
type: ‘boolean’,
description: ‘The active status of this course’,
},
access_type: {
type: ‘string’,
description: ‘The type of access this course has’,
},
category_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The UUID of the course category this course belongs to’,
nullable: true,
},
description: {
type: ‘string’,
description: ‘The description of the course’,
},
student_count: {
type: ‘number’,
description: ‘Number of students enrolled in this course’,
},
lesson_count: {
type: ‘number’,
description: ‘Number of lessons in this course’,
},
thumbnail: {
type: ‘string’,
description:
“URL to the thumbnail. If the thumbnail is uploaded via the dashboard, this URL will point to HelpCenter’s CDN”,
},
order: {
type: ‘number’,
description:
‘The order of the category on the courses page. The higher the number, the higher up the category will be listed’,
},
meta_data: {
type: ‘object’,
description: ‘Metadata for this course’,
additionalProperties: true,
},
created_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the course was created’,
},
updated_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the course was updated’,
},
},
required: [
‘course_uid’,
‘title’,
‘slug’,
‘is_active’,
‘access_type’,
‘created_at’,
],
},
CourseResponse: {
title: ‘CourseResponse’,
type: ‘object’,
properties: {
data: {
$ref: ‘#/components/schemas/Course’,
},
message: {
type: ‘string’,
description: ‘The response message’,
example: ‘Request was successful’,
},
code: {
type: ‘number’,
description: ‘The response status code’,
example: 200,
},
success: {
type: ‘boolean’,
example: true,
},
},
required: [],
},
UserCreatePayload: {
title: ‘UserCreatePayload’,
type: ‘object’,
properties: {
email: {
type: ‘string’,
format: ’email’,
description: “The student’s email address”,
},
first_name: {
type: ‘string’,
description: “The student’s first name”,
},
last_name: {
type: ‘string’,
description: “The student’s last name”,
},
company: {
type: ‘string’,
description: “The student’s company”,
nullable: true,
},
profile_image: {
type: ‘string’,
description: “The student’s profile image”,
nullable: true,
},
company_position: {
type: ‘string’,
description: “The student’s position at the company”,
nullable: true,
},
phone_number: {
type: ‘string’,
description: “The student’s phone number”,
nullable: true,
},
is_active: {
type: ‘boolean’,
description: “The student’s activation status”,
default: true,
},
},
required: [’email’, ‘first_name’, ‘last_name’],
},
EnrollmentPayload: {
title: ‘EnrollmentPayload’,
type: ‘object’,
properties: {
student_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The uuid of the student’,
},
course_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The uuid of the course’,
},
is_active: {
type: ‘boolean’,
description: ‘Enrollment status’,
},
},
required: [‘student_uid’, ‘course_uid’],
},
CourseCreatePayload: {
title: ‘CourseCreatePayload’,
type: ‘object’,
properties: {
title: {
type: ‘string’,
description: ‘The title of the course’,
},
slug: {
type: ‘string’,
description: ‘The slug of the course’,
},
is_active: {
type: ‘boolean’,
description: ‘The active status of this course’,
},
access_type: {
type: ‘string’,
description: ‘The type of access this course has’,
},
category_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The UUID of the course category this course belongs to’,
nullable: true,
},
description: {
type: ‘string’,
description: ‘The description of the course’,
},
thumbnail: {
type: ‘string’,
description: ‘URL to the thumbnail’,
},
meta_data: {
type: ‘object’,
description: ‘Metadata for this course’,
additionalProperties: true,
nullable: true,
},
},
required: [‘title’, ‘slug’, ‘access_type’],
},
CategoryCreatePayload: {
title: ‘CategoryCreatePayload’,
type: ‘object’,
properties: {
name: {
type: ‘string’,
description: ‘The name of the category’,
},
slug: {
type: ‘string’,
description: ‘The slug of the category’,
},
is_active: {
type: ‘boolean’,
description: ‘The active status of this category’,
},
parent_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The UUID of the parent category’,
nullable: true,
},
description: {
type: ‘string’,
description: ‘The description of the category’,
},
background_url: {
type: ‘string’,
description: ‘URL to the background image’,
nullable: true,
},
icon: {
type: ‘string’,
description: ‘The name of the icon’,
nullable: true,
},
meta_data: {
type: ‘object’,
description: ‘Metadata for this category’,
additionalProperties: true,
nullable: true,
},
},
required: [‘name’, ‘slug’],
},
Group: {
title: ‘Group’,
type: ‘object’,
properties: {
group_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The UUID of the group’,
},
name: {
type: ‘string’,
description: ‘The name of the group’,
},
slug: {
type: ‘string’,
description: ‘The slug of the group’,
},
is_active: {
type: ‘boolean’,
description: ‘The active status of this group’,
},
description: {
type: ‘string’,
description: ‘The description of the group’,
nullable: true,
},
student_count: {
type: ‘number’,
description: ‘Number of students in this group’,
},
auto_enroll: {
type: ‘boolean’,
description: ‘Auto enroll this group to added courses’,
},
courses: {
type: ‘array’,
description: ‘Array of course uids that this group is enrolled in’,
maxItems: 100,
items: {
type: ‘string’,
format: ‘uuid’,
},
},
meta_data: {
type: ‘object’,
description: ‘Metadata for this group’,
additionalProperties: true,
nullable: true,
},
created_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the group was created’,
},
updated_at: {
type: ‘string’,
format: ‘date-time’,
description: ‘The date and time the group was updated’,
},
},
required: [‘group_uid’, ‘name’, ‘slug’, ‘is_active’, ‘created_at’],
},
GroupResponse: {
title: ‘GroupResponse’,
type: ‘object’,
properties: {
data: {
$ref: ‘#/components/schemas/Group’,
},
message: {
type: ‘string’,
description: ‘The response message’,
example: ‘Request was successful’,
},
code: {
type: ‘number’,
description: ‘The response status code’,
example: 200,
},
success: {
type: ‘boolean’,
example: true,
},
},
required: [],
},
GroupCreatePayload: {
title: ‘GroupCreatePayload’,
type: ‘object’,
properties: {
name: {
type: ‘string’,
description: ‘The name of the group’,
},
slug: {
type: ‘string’,
description: ‘The slug of the group’,
},
is_active: {
type: ‘boolean’,
description: ‘The active status of this group’,
default: true,
},
description: {
type: ‘string’,
description: ‘The description of the group’,
nullable: true,
},
auto_enroll: {
type: ‘boolean’,
description: ‘Auto enroll this group to added courses’,
default: false,
},
courses: {
type: ‘array’,
description: ‘Array of course uids that this group is enrolled in’,
maxItems: 100,
items: {
type: ‘string’,
format: ‘uuid’,
},
nullable: true,
},
meta_data: {
type: ‘object’,
description: ‘Metadata for this group’,
additionalProperties: true,
nullable: true,
},
},
required: [‘name’, ‘slug’],
},
GroupAttachRequest: {
title: ‘GroupAttachRequest’,
type: ‘object’,
properties: {
group_uid: {
type: ‘string’,
format: ‘uuid’,
description: ‘The uuid of the group’,
},
students: {
type: ‘array’,
description: ‘Array of student uids to attach to the group’,
maxItems: 100,
items: {
type: ‘string’,
format: ‘uuid’,
},
},
action: {
type: ‘string’,
description: ‘The action type either attach or deAttach’,
enum: [‘attach’, ‘deAttach’],
default: ‘attach’,
},
},
required: [‘group_uid’, ‘students’, ‘action’],
},
},
},
};