openapi: 3.0.3
info:
title: 'C360 Customer Data Platform API Documentation'
description: 'API documentation for C360 - Customer and Campaign Management Platform'
version: 1.0.0
servers:
-
url: 'http://localhost'
tags:
-
name: 'Database Operations'
description: ''
-
name: 'Marketing Programs'
description: ''
-
name: 'Campaign Groups'
description: ''
-
name: Campaigns
description: ''
-
name: Audiences
description: ''
-
name: Customers
description: ''
-
name: Destinations
description: ''
-
name: 'Treatment Groups'
description: ''
-
name: 'KPIs and Goals'
description: ''
-
name: Admin
description: ''
-
name: Endpoints
description: ''
-
name: 'Validation Rules'
description: ''
paths:
/api/db/test:
get:
summary: "Test the database connection.\ns"
operationId: testTheDatabaseConnections
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
code: 200
message: 'Database connection successful'
data:
connection: mysql
database: csite_c360
status: connected
properties:
code:
type: integer
example: 200
message:
type: string
example: 'Database connection successful'
data:
type: object
properties:
connection:
type: string
example: mysql
database:
type: string
example: csite_c360
status:
type: string
example: connected
500:
description: ''
content:
application/json:
schema:
type: object
example:
code: 500
message: 'Database connection failed'
data:
connection: mysql
database: csite_c360
error: 'Could not connect to database'
properties:
code:
type: integer
example: 500
message:
type: string
example: 'Database connection failed'
data:
type: object
properties:
connection:
type: string
example: mysql
database:
type: string
example: csite_c360
error:
type: string
example: 'Could not connect to database'
tags:
- 'Database Operations'
security: []
/api/db/schema:
get:
summary: "Get all database tables and their schema details.\ns"
operationId: getAllDatabaseTablesAndTheirSchemaDetailss
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
code: 200
message: 'Database schema retrieved successfully'
data:
-
table_name: users
table_display_name: 'User Accounts'
info: 'Stores all user credentials and profile information'
fields:
-
name: email
display_name: 'Email Address'
db_type: varchar(255)
app_type: EmailString
nullable: false
default: null
auto_incrementing: false
info: 'Primary email for user communication'
properties:
code:
type: integer
example: 200
message:
type: string
example: 'Database schema retrieved successfully'
data:
type: array
example:
-
table_name: users
table_display_name: 'User Accounts'
info: 'Stores all user credentials and profile information'
fields:
-
name: email
display_name: 'Email Address'
db_type: varchar(255)
app_type: EmailString
nullable: false
default: null
auto_incrementing: false
info: 'Primary email for user communication'
items:
type: object
properties:
table_name:
type: string
example: users
table_display_name:
type: string
example: 'User Accounts'
info:
type: string
example: 'Stores all user credentials and profile information'
fields:
type: array
example:
-
name: email
display_name: 'Email Address'
db_type: varchar(255)
app_type: EmailString
nullable: false
default: null
auto_incrementing: false
info: 'Primary email for user communication'
items:
type: object
properties:
name:
type: string
example: email
display_name:
type: string
example: 'Email Address'
db_type:
type: string
example: varchar(255)
app_type:
type: string
example: EmailString
nullable:
type: boolean
example: false
default:
type: string
example: null
auto_incrementing:
type: boolean
example: false
info:
type: string
example: 'Primary email for user communication'
500:
description: ''
content:
application/json:
schema:
type: object
example:
code: 500
message: 'Failed to retrieve database schema'
data:
error: 'Error message'
properties:
code:
type: integer
example: 500
message:
type: string
example: 'Failed to retrieve database schema'
data:
type: object
properties:
error:
type: string
example: 'Error message'
tags:
- 'Database Operations'
security: []
/api/marketing-programs:
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Marketing Programs'
security: []
post:
summary: 'Store a newly created resource in storage.'
operationId: storeANewlyCreatedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- 'Marketing Programs'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: false
status:
type: string
description: ''
example: active
nullable: false
enum:
- draft
- active
- inactive
start_date:
type: string
description: 'Must be a valid date.'
example: '2025-05-16T16:44:38'
nullable: false
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2106-06-15'
nullable: false
budget:
type: number
description: 'Must be at least 0.'
example: 45
nullable: false
goal:
type: string
description: 'Must not be greater than 255 characters.'
example: qeopfuudtdsufvyvddqam
nullable: false
required:
- name
- description
- status
- start_date
- end_date
- budget
- goal
security: []
'/api/marketing-programs/{id}':
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Marketing Programs'
security: []
put:
summary: 'Update the specified resource in storage.'
operationId: updateTheSpecifiedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- 'Marketing Programs'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: false
status:
type: string
description: ''
example: active
nullable: false
enum:
- draft
- active
- inactive
start_date:
type: string
description: 'Must be a valid date.'
example: '2025-05-16T16:44:38'
nullable: false
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2106-06-15'
nullable: false
budget:
type: number
description: 'Must be at least 0.'
example: 45
nullable: false
goal:
type: string
description: 'Must not be greater than 255 characters.'
example: qeopfuudtdsufvyvddqam
nullable: false
required:
- name
- description
- status
- start_date
- end_date
- budget
- goal
security: []
delete:
summary: 'Remove the specified resource from storage.'
operationId: removeTheSpecifiedResourceFromStorage
description: ''
parameters: []
responses: { }
tags:
- 'Marketing Programs'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the marketing program.'
example: consequatur
required: true
schema:
type: string
'/api/marketing-programs/{program_id}/campaign-groups':
get:
summary: "Display\nm."
operationId: displaym
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Campaign Groups'
security: []
post:
summary: 'Store a newly created resource in storage for a specific Marketing Program.'
operationId: storeANewlyCreatedResourceInStorageForASpecificMarketingProgram
description: ''
parameters: []
responses: { }
tags:
- 'Campaign Groups'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: false
status:
type: string
description: ''
example: active
nullable: false
enum:
- draft
- active
- inactive
start_date:
type: string
description: 'Must be a valid date.'
example: '2025-05-16T16:44:38'
nullable: false
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2106-06-15'
nullable: false
budget:
type: number
description: 'Must be at least 0.'
example: 45
nullable: false
goal:
type: string
description: 'Must not be greater than 255 characters.'
example: qeopfuudtdsufvyvddqam
nullable: false
required:
- name
- description
- status
- start_date
- end_date
- budget
- goal
security: []
parameters:
-
in: path
name: program_id
description: 'The ID of the program.'
example: consequatur
required: true
schema:
type: string
'/api/campaign-groups/{id}':
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Campaign Groups'
security: []
put:
summary: 'Update the specified resource in storage.'
operationId: updateTheSpecifiedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- 'Campaign Groups'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: false
status:
type: string
description: ''
example: active
nullable: false
enum:
- draft
- active
- inactive
start_date:
type: string
description: 'Must be a valid date.'
example: '2025-05-16T16:44:38'
nullable: false
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2106-06-15'
nullable: false
budget:
type: number
description: 'Must be at least 0.'
example: 45
nullable: false
goal:
type: string
description: 'Must not be greater than 255 characters.'
example: qeopfuudtdsufvyvddqam
nullable: false
required:
- name
- description
- status
- start_date
- end_date
- budget
- goal
security: []
delete:
summary: 'Remove the specified resource from storage.'
operationId: removeTheSpecifiedResourceFromStorage
description: ''
parameters: []
responses: { }
tags:
- 'Campaign Groups'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the campaign group.'
example: consequatur
required: true
schema:
type: string
'/api/campaign-groups/{group_id}/campaigns':
get:
summary: "Display\np."
operationId: displayp
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Campaigns
security: []
post:
summary: 'Store a newly created resource in storage for a specific Campaign Group.'
operationId: storeANewlyCreatedResourceInStorageForASpecificCampaignGroup
description: ''
parameters: []
responses: { }
tags:
- Campaigns
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
status:
type: string
description: ''
example: active
nullable: false
enum:
- draft
- active
- inactive
start_date:
type: string
description: 'Must be a valid date.'
example: '2025-05-16T16:44:38'
nullable: false
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2106-06-15'
nullable: false
budget:
type: number
description: 'Must be at least 0.'
example: 45
nullable: false
goal:
type: string
description: 'Must not be greater than 255 characters.'
example: qeopfuudtdsufvyvddqam
nullable: false
target_audience:
type: string
description: 'Must be a valid JSON string.'
example: '["consequatur","consequatur"]'
nullable: true
success_criteria:
type: string
description: 'Must be a valid JSON string.'
example: '["consequatur","consequatur"]'
nullable: true
required:
- name
- status
- start_date
- end_date
- budget
- goal
security: []
parameters:
-
in: path
name: group_id
description: 'The ID of the group.'
example: consequatur
required: true
schema:
type: string
'/api/campaigns/{id}':
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Campaigns
security: []
put:
summary: 'Update the specified resource in storage.'
operationId: updateTheSpecifiedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- Campaigns
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
status:
type: string
description: ''
example: active
nullable: false
enum:
- draft
- active
- inactive
start_date:
type: string
description: 'Must be a valid date.'
example: '2025-05-16T16:44:38'
nullable: false
end_date:
type: string
description: 'Must be a valid date. Must be a date after or equal to start_date.'
example: '2106-06-15'
nullable: false
budget:
type: number
description: 'Must be at least 0.'
example: 45
nullable: false
goal:
type: string
description: 'Must not be greater than 255 characters.'
example: qeopfuudtdsufvyvddqam
nullable: false
target_audience:
type: string
description: 'Must be a valid JSON string.'
example: '["consequatur","consequatur"]'
nullable: true
success_criteria:
type: string
description: 'Must be a valid JSON string.'
example: '["consequatur","consequatur"]'
nullable: true
required:
- name
- status
- start_date
- end_date
- budget
- goal
security: []
delete:
summary: 'Remove the specified resource from storage.'
operationId: removeTheSpecifiedResourceFromStorage
description: ''
parameters: []
responses: { }
tags:
- Campaigns
security: []
parameters:
-
in: path
name: id
description: 'The ID of the campaign.'
example: consequatur
required: true
schema:
type: string
/api/audiences:
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Audiences
security: []
post:
summary: 'Store a newly created resource in storage.'
operationId: storeANewlyCreatedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- Audiences
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
rules:
type: array
description: ''
example: null
items:
type: object
properties:
rule_type:
type: string
description: 'Rules must be present, can be empty array.'
example: consequatur
nullable: false
rule_value:
type: string
description: 'Must not be greater than 255 characters.'
example: mqeopfuudtdsufvyvddqa
nullable: false
required:
- rule_type
- rule_value
required:
- name
security: []
'/api/audiences/{id}':
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Audiences
security: []
put:
summary: 'Update the specified resource in storage.'
operationId: updateTheSpecifiedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- Audiences
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
rules:
type: array
description: ''
example: null
items:
type: object
properties:
rule_type:
type: string
description: 'This field is required when rules is present.'
example: null
nullable: false
rule_value:
type: string
description: 'This field is required when rules is present. Must not be greater than 255 characters.'
example: dtdsufvyvddqamniihfqc
nullable: false
required:
- name
security: []
delete:
summary: 'Remove the specified resource from storage.'
operationId: removeTheSpecifiedResourceFromStorage
description: ''
parameters: []
responses: { }
tags:
- Audiences
security: []
parameters:
-
in: path
name: id
description: 'The ID of the audience.'
example: consequatur
required: true
schema:
type: string
'/api/campaigns/{campaign_id}/audiences':
get:
summary: 'List audiences associated with a specific campaign.'
operationId: listAudiencesAssociatedWithASpecificCampaign
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Audiences
security: []
post:
summary: 'Associate an audience with a campaign.'
operationId: associateAnAudienceWithACampaign
description: ''
parameters: []
responses: { }
tags:
- Audiences
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
audience_id:
type: string
description: 'The id of an existing record in the audiences table.'
example: consequatur
nullable: false
segment_override:
type: string
description: 'Must be a valid JSON string.'
example: '["consequatur","consequatur"]'
nullable: true
required:
- audience_id
security: []
parameters:
-
in: path
name: campaign_id
description: 'The ID of the campaign.'
example: consequatur
required: true
schema:
type: string
'/api/campaigns/{campaign_id}/audiences/{audience_id}':
delete:
summary: 'Disassociate an audience from a campaign.'
operationId: disassociateAnAudienceFromACampaign
description: ''
parameters: []
responses: { }
tags:
- Audiences
security: []
parameters:
-
in: path
name: campaign_id
description: 'The ID of the campaign.'
example: consequatur
required: true
schema:
type: string
-
in: path
name: audience_id
description: 'The ID of the audience.'
example: consequatur
required: true
schema:
type: string
'/api/campaigns/{campaign_id}/sub-audiences':
get:
summary: "Display\nb-audiences for a specific Campaign."
operationId: displaybAudiencesForASpecificCampaign
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Audiences
security: []
post:
summary: 'Store a newly created sub-audience for a specific Campaign.'
operationId: storeANewlyCreatedSubAudienceForASpecificCampaign
description: ''
parameters: []
responses: { }
tags:
- Audiences
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
audience_id:
type: string
description: ''
example: consequatur
nullable: false
name:
type: string
description: 'Must not be greater than 255 characters.'
example: mqeopfuudtdsufvyvddqa
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
segment_definition:
type: string
description: 'Must be a valid JSON string.'
example: '["consequatur","consequatur"]'
nullable: false
required:
- audience_id
- name
- segment_definition
security: []
parameters:
-
in: path
name: campaign_id
description: 'The ID of the campaign.'
example: consequatur
required: true
schema:
type: string
'/api/sub-audiences/{id}':
get:
summary: "Display\nb-audience."
operationId: displaybAudience
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Audiences
security: []
put:
summary: 'Update the specified sub-audience in storage.'
operationId: updateTheSpecifiedSubAudienceInStorage
description: ''
parameters: []
responses: { }
tags:
- Audiences
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
segment_definition:
type: string
description: 'Must be a valid JSON string.'
example: '["consequatur","consequatur"]'
nullable: false
required:
- name
- segment_definition
security: []
delete:
summary: 'Remove the specified sub-audience from storage.'
operationId: removeTheSpecifiedSubAudienceFromStorage
description: ''
parameters: []
responses: { }
tags:
- Audiences
security: []
parameters:
-
in: path
name: id
description: 'The ID of the sub audience.'
example: consequatur
required: true
schema:
type: string
/api/customers:
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Customers
security: []
post:
summary: 'Store a newly created resource in storage.'
operationId: storeANewlyCreatedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- Customers
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
external_id:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: true
first_name:
type: string
description: 'Must not be greater than 255 characters.'
example: amniihfqcoynlazghdtqt
nullable: true
last_name:
type: string
description: 'Must not be greater than 255 characters.'
example: qxbajwbpilpmufinllwlo
nullable: true
email:
type: string
description: 'Must be a valid email address. Must not be greater than 255 characters.'
example: schmitt.beulah@example.org
nullable: true
phone:
type: string
description: 'Must not be greater than 255 characters.'
example: smsjuryvojcybzvrbyick
nullable: true
attributes:
type: string
description: 'Must be a valid JSON string.'
example: '["consequatur","consequatur"]'
nullable: true
is_active:
type: boolean
description: ''
example: false
nullable: false
security: []
'/api/customers/{id}':
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Customers
security: []
put:
summary: 'Update the specified resource in storage.'
operationId: updateTheSpecifiedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- Customers
security: []
delete:
summary: 'Remove the specified resource from storage.'
operationId: removeTheSpecifiedResourceFromStorage
description: ''
parameters: []
responses: { }
tags:
- Customers
security: []
parameters:
-
in: path
name: id
description: 'The ID of the customer.'
example: consequatur
required: true
schema:
type: string
/api/destinations:
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Destinations
security: []
post:
summary: 'Store a newly created resource in storage.'
operationId: storeANewlyCreatedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- Destinations
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
destination_type:
type: string
description: ''
example: consequatur
nullable: false
connection_details:
type: string
description: 'Must be a valid JSON string.'
example: '["consequatur","consequatur"]'
nullable: false
is_active:
type: boolean
description: ''
example: false
nullable: false
required:
- name
- destination_type
- connection_details
security: []
'/api/destinations/{id}':
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Destinations
security: []
put:
summary: 'Update the specified resource in storage.'
operationId: updateTheSpecifiedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- Destinations
security: []
delete:
summary: 'Remove the specified resource from storage.'
operationId: removeTheSpecifiedResourceFromStorage
description: ''
parameters: []
responses: { }
tags:
- Destinations
security: []
parameters:
-
in: path
name: id
description: 'The ID of the destination.'
example: consequatur
required: true
schema:
type: string
'/api/campaigns/{campaign_id}/destinations':
get:
summary: 'List destinations configured for a specific campaign.'
operationId: listDestinationsConfiguredForASpecificCampaign
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Destinations
security: []
post:
summary: 'Configure (store) a destination for a campaign.'
operationId: configurestoreADestinationForACampaign
description: ''
parameters: []
responses: { }
tags:
- Destinations
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
destination_id:
type: string
description: ''
example: consequatur
nullable: false
treatment_group_id:
type: string
description: ''
example: null
nullable: true
attribute_mapping:
type: string
description: 'Must be a valid JSON string.'
example: '["consequatur","consequatur"]'
nullable: false
is_active:
type: boolean
description: ''
example: false
nullable: false
required:
- destination_id
- attribute_mapping
security: []
parameters:
-
in: path
name: campaign_id
description: 'The ID of the campaign.'
example: consequatur
required: true
schema:
type: string
'/api/campaign-destinations/{campaign_destination_id}':
delete:
summary: "Remove the specified resource (association) from storage.\nUses the campaign_destination primary key ID for deletion."
operationId: removeTheSpecifiedResourceassociationFromStorageUsesTheCampaignDestinationPrimaryKeyIDForDeletion
description: ''
parameters: []
responses: { }
tags:
- Destinations
security: []
parameters:
-
in: path
name: campaign_destination_id
description: 'The ID of the campaign destination.'
example: consequatur
required: true
schema:
type: string
'/api/campaigns/{campaign_id}/treatment-groups':
get:
summary: "Display\nn."
operationId: displayn
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Treatment Groups'
security: []
post:
summary: 'Store a newly created resource in storage for a specific Campaign.'
operationId: storeANewlyCreatedResourceInStorageForASpecificCampaign
description: ''
parameters: []
responses: { }
tags:
- 'Treatment Groups'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: "Add validation for sub_audience_id if/when implemented: 'nullable|exists:sub_audiences,id',. Must not be greater than 255 characters."
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
type:
type: string
description: ''
example: consequatur
nullable: false
allocation_percentage:
type: number
description: 'Must be at least 0. Must not be greater than 100.'
example: 13
nullable: false
required:
- name
- type
- allocation_percentage
security: []
parameters:
-
in: path
name: campaign_id
description: 'The ID of the campaign.'
example: consequatur
required: true
schema:
type: string
'/api/treatment-groups/{id}':
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Treatment Groups'
security: []
put:
summary: 'Update the specified resource in storage.'
operationId: updateTheSpecifiedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- 'Treatment Groups'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
type:
type: string
description: ''
example: consequatur
nullable: false
allocation_percentage:
type: number
description: 'Must be at least 0. Must not be greater than 100.'
example: 13
nullable: false
required:
- name
- type
- allocation_percentage
security: []
delete:
summary: 'Remove the specified resource from storage.'
operationId: removeTheSpecifiedResourceFromStorage
description: ''
parameters: []
responses: { }
tags:
- 'Treatment Groups'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the treatment group.'
example: consequatur
required: true
schema:
type: string
'/api/campaigns/{campaign_id}/kpis':
get:
summary: "Display\nn."
operationId: displayn
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'KPIs and Goals'
security: []
post:
summary: 'Store a newly created KPI for a specific Campaign.'
operationId: storeANewlyCreatedKPIForASpecificCampaign
description: ''
parameters: []
responses: { }
tags:
- 'KPIs and Goals'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
kpi_type:
type: string
description: ''
example: consequatur
nullable: false
target_value:
type: number
description: 'Must be at least 0.'
example: 45
nullable: false
actual_value:
type: number
description: 'Must be at least 0.'
example: 56
nullable: false
required:
- name
- kpi_type
- target_value
security: []
parameters:
-
in: path
name: campaign_id
description: 'The ID of the campaign.'
example: consequatur
required: true
schema:
type: string
'/api/campaign-kpis/{kpi_id}':
get:
summary: "Display\nd KPI."
operationId: displaydKPI
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'KPIs and Goals'
security: []
put:
summary: 'Update the specified KPI in storage.'
operationId: updateTheSpecifiedKPIInStorage
description: ''
parameters: []
responses: { }
tags:
- 'KPIs and Goals'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
kpi_type:
type: string
description: ''
example: consequatur
nullable: false
target_value:
type: number
description: 'Must be at least 0.'
example: 45
nullable: false
actual_value:
type: number
description: 'Must be at least 0.'
example: 56
nullable: false
required:
- name
- kpi_type
- target_value
security: []
delete:
summary: 'Remove the specified KPI from storage.'
operationId: removeTheSpecifiedKPIFromStorage
description: ''
parameters: []
responses: { }
tags:
- 'KPIs and Goals'
security: []
parameters:
-
in: path
name: kpi_id
description: 'The ID of the kpi.'
example: consequatur
required: true
schema:
type: string
'/api/campaigns/{campaign_id}/customer-goals':
get:
summary: "Display\nn."
operationId: displayn
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'KPIs and Goals'
security: []
post:
summary: 'Store a newly created customer goal for a specific Campaign.'
operationId: storeANewlyCreatedCustomerGoalForASpecificCampaign
description: ''
parameters: []
responses: { }
tags:
- 'KPIs and Goals'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
goal_type:
type: string
description: ''
example: consequatur
nullable: false
target_value:
type: number
description: 'Must be at least 0.'
example: 45
nullable: false
validation_rule_id:
type: integer
description: "Add validation for validation_rule_id if it's required/exists in your setup\n'validation_rule_id' => ['nullable', Rule::exists('validation_rules', 'id')->where('tenant_id', $tenantId)],."
example: 17
nullable: true
required:
- name
- goal_type
- target_value
security: []
parameters:
-
in: path
name: campaign_id
description: 'The ID of the campaign.'
example: consequatur
required: true
schema:
type: string
'/api/customer-goals/{goal_id}':
put:
summary: 'Update the specified customer goal in storage.'
operationId: updateTheSpecifiedCustomerGoalInStorage
description: ''
parameters: []
responses: { }
tags:
- 'KPIs and Goals'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
goal_type:
type: string
description: ''
example: consequatur
nullable: false
target_value:
type: number
description: 'Must be at least 0.'
example: 45
nullable: false
validation_rule_id:
type: integer
description: "Add validation for validation_rule_id if updatable\n'validation_rule_id' => ['sometimes', 'nullable', Rule::exists('validation_rules', 'id')->where('tenant_id', $tenantId)],."
example: 17
nullable: true
required:
- name
- goal_type
- target_value
security: []
delete:
summary: 'Remove the specified customer goal from storage.'
operationId: removeTheSpecifiedCustomerGoalFromStorage
description: ''
parameters: []
responses: { }
tags:
- 'KPIs and Goals'
security: []
parameters:
-
in: path
name: goal_id
description: 'The ID of the goal.'
example: consequatur
required: true
schema:
type: string
/api/admin/users:
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Admin
security: []
post:
summary: 'Store a newly created resource in storage.'
operationId: storeANewlyCreatedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
email:
type: string
description: 'Must be a valid email address. Must not be greater than 255 characters.'
example: kunde.eloisa@example.com
nullable: false
password:
type: string
description: ''
example: consequatur
nullable: false
roles:
type: array
description: 'The name of an existing record in the roles table.'
example:
- consequatur
items:
type: string
required:
- name
- email
- password
security: []
'/api/admin/users/{user_id}':
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Admin
security: []
put:
summary: 'Update the specified resource in storage.'
operationId: updateTheSpecifiedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
email:
type: string
description: 'Must be a valid email address. Must not be greater than 255 characters.'
example: kunde.eloisa@example.com
nullable: false
password:
type: string
description: ''
example: null
nullable: true
roles:
type: array
description: 'The name of an existing record in the roles table.'
example:
- consequatur
items:
type: string
is_active:
type: boolean
description: ''
example: false
nullable: false
required:
- name
- email
security: []
delete:
summary: 'Remove the specified resource from storage.'
operationId: removeTheSpecifiedResourceFromStorage
description: ''
parameters: []
responses: { }
tags:
- Admin
security: []
parameters:
-
in: path
name: user_id
description: 'The ID of the user.'
example: 17
required: true
schema:
type: integer
/api/admin/tenants:
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Admin
security: []
post:
summary: 'Store a newly created resource in storage.'
operationId: storeANewlyCreatedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: 'Must not be greater than 255 characters.'
example: 'Dolores molestias ipsam sit.'
nullable: true
is_active:
type: boolean
description: ''
example: false
nullable: false
required:
- name
security: []
'/api/admin/tenants/{tenant_id}':
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Admin
security: []
put:
summary: 'Update the specified resource in storage.'
operationId: updateTheSpecifiedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: 'Must not be greater than 255 characters.'
example: 'Dolores molestias ipsam sit.'
nullable: true
is_active:
type: boolean
description: ''
example: false
nullable: false
required:
- name
security: []
delete:
summary: 'Remove the specified resource from storage.'
operationId: removeTheSpecifiedResourceFromStorage
description: ''
parameters: []
responses: { }
tags:
- Admin
security: []
parameters:
-
in: path
name: tenant_id
description: 'The ID of the tenant.'
example: 17
required: true
schema:
type: integer
/api/user:
get:
summary: ''
operationId: getApiUser
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
security: []
/api/login:
post:
summary: ''
operationId: postApiLogin
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: 'Must be a valid email address.'
example: qkunze@example.com
nullable: false
password:
type: string
description: ''
example: 'O[2UZ5ij-e/dl4m{o,'
nullable: false
device_name:
type: string
description: ''
example: consequatur
nullable: false
required:
- email
- password
- device_name
security: []
/api/forgot-password:
post:
summary: ''
operationId: postApiForgotPassword
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: 'Must be a valid email address. The email of an existing record in the users table.'
example: qkunze@example.com
nullable: false
required:
- email
security: []
/api/reset-password:
post:
summary: ''
operationId: postApiResetPassword
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
token:
type: string
description: ''
example: consequatur
nullable: false
email:
type: string
description: 'Must be a valid email address.'
example: carolyne.luettgen@example.org
nullable: false
password:
type: string
description: ''
example: consequatur
nullable: false
required:
- token
- email
- password
security: []
/api/logout:
post:
summary: ''
operationId: postApiLogout
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/admin/roles:
get:
summary: ''
operationId: getApiAdminRoles
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
security: []
/api/admin/permissions:
get:
summary: ''
operationId: getApiAdminPermissions
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
security: []
/api/admin/activity-log:
get:
summary: ''
operationId: getApiAdminActivityLog
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
security: []
/api/send-email:
post:
summary: ''
operationId: postApiSendEmail
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
to:
type: string
description: 'Must be a valid email address.'
example: qkunze@example.com
nullable: false
subject:
type: string
description: 'Must not be greater than 255 characters.'
example: opfuudtdsufvyvddqamni
nullable: false
content:
type: string
description: ''
example: consequatur
nullable: false
from_email:
type: string
description: 'Must be a valid email address.'
example: carolyne.luettgen@example.org
nullable: true
from_name:
type: string
description: ''
example: consequatur
nullable: true
reply_to:
type: string
description: 'Must be a valid email address.'
example: carolyne.luettgen@example.org
nullable: true
attachments:
type: array
description: ''
example: null
items:
type: object
nullable: true
properties:
path:
type: string
description: 'Basic validation for attachments - could be more specific. This field is required when attachments is present.'
example: consequatur
nullable: false
as:
type: string
description: 'Path relative to storage/app.'
example: consequatur
nullable: true
mime:
type: string
description: ''
example: consequatur
nullable: true
required:
- to
- subject
- content
security: []
/api/db-test:
get:
summary: ''
operationId: getApiDbTest
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
code: 200
message: 'Database connection successful.'
data: null
properties:
code:
type: integer
example: 200
message:
type: string
example: 'Database connection successful.'
data:
type: string
example: null
tags:
- 'Database Operations'
security: []
/api/tables:
get:
summary: ''
operationId: getApiTables
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
code: 200
message: 'Tables retrieved successfully.'
data:
-
table_name: activity_log
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: log_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: description
display_name: null
db_type: text
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: subject_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: event
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: subject_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: causer_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: causer_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: properties
display_name: null
db_type: longtext
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: batch_uuid
display_name: null
db_type: char(36)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: column_metadata
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: table_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: column_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: display_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: app_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: info
display_name: null
db_type: text
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: failed_jobs
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: uuid
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: connection
display_name: null
db_type: text
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: queue
display_name: null
db_type: text
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: payload
display_name: null
db_type: longtext
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: exception
display_name: null
db_type: longtext
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: failed_at
display_name: null
db_type: timestamp
app_type: null
nullable: false
default: current_timestamp()
auto_incrementing: false
info: null
-
table_name: migrations
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'int(10) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: migration
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: batch
display_name: null
db_type: int(11)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
table_name: model_has_permissions
table_display_name: null
info: null
fields:
-
name: permission_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: model_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: model_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
table_name: model_has_roles
table_display_name: null
info: null
fields:
-
name: role_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: model_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: model_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
table_name: password_reset_tokens
table_display_name: null
info: null
fields:
-
name: email
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: token
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: permissions
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: guard_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: personal_access_tokens
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: tokenable_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: tokenable_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: token
display_name: null
db_type: varchar(64)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: abilities
display_name: null
db_type: text
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: last_used_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: expires_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: role_has_permissions
table_display_name: null
info: null
fields:
-
name: permission_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: role_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
table_name: roles
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: guard_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: table_metadata
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: table_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: display_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: app_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: info
display_name: null
db_type: text
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: tenants
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: users
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: email
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: email_verified_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: password
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: remember_token
display_name: null
db_type: varchar(100)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: is_active
display_name: null
db_type: tinyint(1)
app_type: null
nullable: false
default: '1'
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
properties:
code:
type: integer
example: 200
message:
type: string
example: 'Tables retrieved successfully.'
data:
type: array
example:
-
table_name: activity_log
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: log_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: description
display_name: null
db_type: text
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: subject_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: event
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: subject_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: causer_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: causer_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: properties
display_name: null
db_type: longtext
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: batch_uuid
display_name: null
db_type: char(36)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: column_metadata
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: table_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: column_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: display_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: app_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: info
display_name: null
db_type: text
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: failed_jobs
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: uuid
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: connection
display_name: null
db_type: text
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: queue
display_name: null
db_type: text
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: payload
display_name: null
db_type: longtext
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: exception
display_name: null
db_type: longtext
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: failed_at
display_name: null
db_type: timestamp
app_type: null
nullable: false
default: current_timestamp()
auto_incrementing: false
info: null
-
table_name: migrations
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'int(10) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: migration
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: batch
display_name: null
db_type: int(11)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
table_name: model_has_permissions
table_display_name: null
info: null
fields:
-
name: permission_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: model_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: model_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
table_name: model_has_roles
table_display_name: null
info: null
fields:
-
name: role_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: model_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: model_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
table_name: password_reset_tokens
table_display_name: null
info: null
fields:
-
name: email
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: token
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: permissions
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: guard_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: personal_access_tokens
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: tokenable_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: tokenable_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: token
display_name: null
db_type: varchar(64)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: abilities
display_name: null
db_type: text
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: last_used_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: expires_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: role_has_permissions
table_display_name: null
info: null
fields:
-
name: permission_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: role_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
table_name: roles
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: guard_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: table_metadata
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: table_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: display_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: app_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: info
display_name: null
db_type: text
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: tenants
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
table_name: users
table_display_name: null
info: null
fields:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: name
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: email
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: email_verified_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: password
display_name: null
db_type: varchar(255)
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: remember_token
display_name: null
db_type: varchar(100)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: is_active
display_name: null
db_type: tinyint(1)
app_type: null
nullable: false
default: '1'
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
items:
type: object
properties:
table_name:
type: string
example: activity_log
table_display_name:
type: string
example: null
info:
type: string
example: null
fields:
type: array
example:
-
name: id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: false
default: null
auto_incrementing: true
info: null
-
name: log_name
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: description
display_name: null
db_type: text
app_type: null
nullable: false
default: null
auto_incrementing: false
info: null
-
name: subject_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: event
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: subject_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: causer_type
display_name: null
db_type: varchar(255)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: causer_id
display_name: null
db_type: 'bigint(20) unsigned'
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: properties
display_name: null
db_type: longtext
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: batch_uuid
display_name: null
db_type: char(36)
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: created_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
-
name: updated_at
display_name: null
db_type: timestamp
app_type: null
nullable: true
default: 'NULL'
auto_incrementing: false
info: null
items:
type: object
properties:
name:
type: string
example: id
display_name:
type: string
example: null
db_type:
type: string
example: 'bigint(20) unsigned'
app_type:
type: string
example: null
nullable:
type: boolean
example: false
default:
type: string
example: null
auto_incrementing:
type: boolean
example: true
info:
type: string
example: null
tags:
- Endpoints
security: []
'/api/campaigns/{campaign_id}/validation-rules':
get:
summary: 'List validation rules associated with a specific campaign.'
operationId: listValidationRulesAssociatedWithASpecificCampaign
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Validation Rules'
security: []
post:
summary: 'Associate a validation rule with a campaign.'
operationId: associateAValidationRuleWithACampaign
description: ''
parameters: []
responses: { }
tags:
- 'Validation Rules'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
validation_rule_id:
type: string
description: ''
example: consequatur
nullable: false
rule_override:
type: string
description: 'Must be a valid JSON string.'
example: '["consequatur","consequatur"]'
nullable: true
required:
- validation_rule_id
security: []
parameters:
-
in: path
name: campaign_id
description: 'The ID of the campaign.'
example: consequatur
required: true
schema:
type: string
'/api/campaigns/{campaign_id}/validation-rules/{validation_rule_id}':
delete:
summary: 'Disassociate a validation rule from a campaign.'
operationId: disassociateAValidationRuleFromACampaign
description: ''
parameters: []
responses: { }
tags:
- 'Validation Rules'
security: []
parameters:
-
in: path
name: campaign_id
description: 'The ID of the campaign.'
example: consequatur
required: true
schema:
type: string
-
in: path
name: validation_rule_id
description: 'The ID of the validation rule.'
example: consequatur
required: true
schema:
type: string
/api/validation-rules:
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
500:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Server Error'
properties:
message:
type: string
example: 'Server Error'
tags:
- 'Validation Rules'
security: []
post:
summary: 'Store a newly created resource in storage.'
operationId: storeANewlyCreatedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- 'Validation Rules'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Must not be greater than 255 characters.'
example: vmqeopfuudtdsufvyvddq
nullable: false
description:
type: string
description: ''
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
rule_definition:
type: string
description: 'Must be a valid JSON string.'
example: '["consequatur","consequatur"]'
nullable: false
is_active:
type: boolean
description: ''
example: false
nullable: false
required:
- name
- rule_definition
security: []
'/api/validation-rules/{id}':
get:
summary: "Display\ne."
operationId: displaye
description: ''
parameters: []
responses:
500:
description: ''
content:
application/json:
schema:
type: object
example:
code: 500
message: 'Failed to retrieve validation rule.'
data: "SQLSTATE[42S02]: Base table or view not found: 1146 Table 'csite_c360.validation_rules' doesn't exist (Connection: mysql, SQL: select * from `validation_rules` where `tenant_id` = 1 and `validation_rules`.`id` = 17 and `validation_rules`.`deleted_at` is null limit 1)"
properties:
code:
type: integer
example: 500
message:
type: string
example: 'Failed to retrieve validation rule.'
data:
type: string
example: "SQLSTATE[42S02]: Base table or view not found: 1146 Table 'csite_c360.validation_rules' doesn't exist (Connection: mysql, SQL: select * from `validation_rules` where `tenant_id` = 1 and `validation_rules`.`id` = 17 and `validation_rules`.`deleted_at` is null limit 1)"
tags:
- 'Validation Rules'
security: []
put:
summary: 'Update the specified resource in storage.'
operationId: updateTheSpecifiedResourceInStorage
description: ''
parameters: []
responses: { }
tags:
- 'Validation Rules'
security: []
delete:
summary: 'Remove the specified resource from storage.'
operationId: removeTheSpecifiedResourceFromStorage
description: ''
parameters: []
responses: { }
tags:
- 'Validation Rules'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the validation rule.'
example: 17
required: true
schema:
type: integer