lib/swagger/research-vernonkeenan.yaml

818 lines
20 KiB
YAML
Raw Permalink Normal View History

2022-05-28 19:45:41 +00:00
swagger: "2.0"
info:
2023-03-28 17:47:34 +00:00
version: 0.3.0
2022-05-28 19:45:41 +00:00
title: "research"
description: "Customer Information Microservice"
2023-03-28 17:47:34 +00:00
termsOfService: "https://salesforcedevops.net/terms/"
2022-05-28 19:45:41 +00:00
contact:
2023-03-28 17:47:34 +00:00
email: "vern@vernonkeenan.com"
2022-05-28 19:45:41 +00:00
license:
2023-03-28 17:47:34 +00:00
name: "Proprietary - Copyright (c) 2018-2023 by Vernon Keenan"
2022-05-28 19:45:41 +00:00
securityDefinitions:
ApiKeyAuth:
type: "apiKey"
in: "header"
name: "X-API-Key"
schemes:
- "http"
basePath: "/v1"
host: "research.vernonkeenan.com:8080"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
accountIdQuery:
2023-03-28 17:47:34 +00:00
description: Record Id of an Account
2022-05-28 19:45:41 +00:00
in: query
name: accountId
required: false
type: string
activeQuery:
description: Only retrieve active records?
in: query
name: active
required: false
type: boolean
companyProductIdQuery:
2023-03-28 17:47:34 +00:00
description: CompanyProduct record ID
2022-05-28 19:45:41 +00:00
in: query
name: companyProductId
required: false
type: string
industryIdQuery:
2023-03-28 17:47:34 +00:00
description: Industry record ID
2022-05-28 19:45:41 +00:00
in: query
name: industryId
required: false
type: string
topicIdQuery:
2023-03-28 17:47:34 +00:00
description: Topic record ID
2022-05-28 19:45:41 +00:00
in: query
name: topicId
required: false
type: string
leadIdQuery:
2023-03-28 17:47:34 +00:00
description: Lead record ID
2022-05-28 19:45:41 +00:00
in: query
name: leadId
required: false
type: string
contactIdQuery:
2023-03-28 17:47:34 +00:00
description: Contact record ID
2022-05-28 19:45:41 +00:00
in: query
name: contactId
required: false
type: string
emailQuery:
description: Email address used for identity lookup
in: query
name: email
required: false
type: string
industryRequest:
description: An array of new Industry records
in: body
name: industryRequest
required: true
schema:
$ref: "#/definitions/IndustryRequest"
topicRequest:
description: An array of new Topic records
in: body
name: topicRequest
required: true
schema:
$ref: "#/definitions/TopicRequest"
limitQuery:
description: "How many objects to return at one time"
format: int64
in: query
name: limit
required: false
type: integer
nameQuery:
description: The Name of this Object
in: query
name: name
required: false
type: string
offsetQuery:
description: How many objects to skip?
format: int64
in: query
name: offset
required: false
type: integer
typeQuery:
description: The Type of this Object
in: query
name: type
required: false
type: string
responses:
AccessForbidden:
description: "Access forbidden, account lacks access"
headers:
Access-Control-Allow-Origin:
type: string
schema:
$ref: "#/definitions/Error"
TopicResponse:
headers:
Access-Control-Allow-Origin:
type: string
Cache-Control:
type: string
2023-03-28 17:47:34 +00:00
description: Response with Topic objects
2022-05-28 19:45:41 +00:00
schema:
$ref: "#/definitions/TopicResponse"
IndustryResponse:
headers:
Access-Control-Allow-Origin:
type: string
Cache-Control:
type: string
2023-03-28 17:47:34 +00:00
description: Response with Industry objects
2022-05-28 19:45:41 +00:00
schema:
$ref: "#/definitions/IndustryResponse"
TopicObservableResponse:
2023-03-28 17:47:34 +00:00
description: Response with an array of Topic objects
2022-05-28 19:45:41 +00:00
headers:
Access-Control-Allow-Origin:
type: string
Cache-Control:
type: string
schema:
items:
$ref: "#/definitions/Topic"
type: array
IndustryObservableResponse:
2023-03-28 17:47:34 +00:00
description: Response with an array of Industry objects
2022-05-28 19:45:41 +00:00
headers:
Access-Control-Allow-Origin:
type: string
Cache-Control:
type: string
schema:
items:
$ref: "#/definitions/Industry"
type: array
Conflict:
description: Conflict
headers:
Access-Control-Allow-Origin:
type: string
schema:
$ref: "#/definitions/Error"
DeleteResponse:
2023-03-28 17:47:34 +00:00
description: Response with Message Objects with Delete Status
2022-05-28 19:45:41 +00:00
headers:
Access-Control-Allow-Origin:
type: string
schema:
$ref: "#/definitions/DeleteResponse"
InvalidDataError:
headers:
Access-Control-Allow-Origin:
type: string
description: Invalid data was sent
schema:
$ref: "#/definitions/InvalidError"
NotFound:
description: Resource was not found
headers:
Access-Control-Allow-Origin:
type: string
schema:
$ref: "#/definitions/Error"
ServerError:
description: Server Internal Error
headers:
Access-Control-Allow-Origin:
type: string
schema:
$ref: "#/definitions/Error"
Unauthorized:
description: "Access unauthorized, invalid API-KEY was used"
headers:
Access-Control-Allow-Origin:
type: string
schema:
$ref: "#/definitions/Error"
UnprocessableEntity:
description: "Unprocessable Entity, likely a bad parameter"
headers:
Access-Control-Allow-Origin:
type: string
schema:
$ref: "#/definitions/Error"
CORSResponse:
description: CORS OPTIONS response
headers:
Access-Control-Allow-Origin:
type: string
Access-Control-Allow-Headers:
type: string
Access-Control-Allow-Methods:
type: string
Access-Control-Expose-Headers:
type: string
Access-Control-Max-Age:
type: string
Access-Control-Allow-Credentials:
type: string
Cache-Control:
type: string
paths:
/topics:
get:
description: Retrieve Topic records from the datastore
operationId: getTopics
parameters:
- $ref: "#/parameters/topicIdQuery"
responses:
"200":
$ref: "#/responses/TopicResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Get Topic records
tags:
- Topic
options:
description: CORS support
operationId: topicOptions
responses:
"200":
$ref: "#/responses/CORSResponse"
tags:
- cors
post:
description: Add new companies
operationId: postTopics
parameters:
- $ref: "#/parameters/topicRequest"
responses:
"200":
$ref: "#/responses/TopicResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Add new companies
tags:
- Topic
/topics/observable:
get:
description: A list of companies in a simple JSON array
operationId: getTopicsObservable
parameters:
- $ref: "#/parameters/topicIdQuery"
responses:
"200":
$ref: "#/responses/TopicObservableResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Get Taxnexus Companies in an observable array
tags:
- Topic
options:
description: CORS support
operationId: topicObservableOptions
responses:
"200":
$ref: "#/responses/CORSResponse"
tags:
- cors
/industries:
get:
description: Retrieve Industry records from the datastore
operationId: getIndustries
parameters:
- $ref: "#/parameters/industryIdQuery"
responses:
"200":
$ref: "#/responses/IndustryResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Get Industry records
tags:
- Industry
options:
description: CORS support
operationId: industryOptions
responses:
"200":
$ref: "#/responses/CORSResponse"
tags:
- cors
post:
description: Add new companies
operationId: postIndustries
parameters:
- $ref: "#/parameters/industryRequest"
responses:
"200":
$ref: "#/responses/IndustryResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Add new companies
tags:
- Industry
/industries/observable:
get:
description: A list of companies in a simple JSON array
operationId: getIndustriesObservable
parameters:
- $ref: "#/parameters/industryIdQuery"
responses:
"200":
$ref: "#/responses/IndustryObservableResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Get Taxnexus Companies in an observable array
tags:
- Industry
options:
description: CORS support
operationId: industryObservableOptions
responses:
"200":
$ref: "#/responses/CORSResponse"
tags:
- cors
definitions:
Address:
properties:
City:
description: City
type: string
Country:
description: Country full name
type: string
CountryCode:
description: Country Code
type: string
PostalCode:
description: Postal Code
type: string
State:
description: State full name
type: string
StateCode:
description: State Code
type: string
Street:
description: Street number and name
type: string
type: object
2023-03-28 17:47:34 +00:00
CompanyProduct:
description: A software product or service vended by a Company
2022-05-28 19:45:41 +00:00
properties:
ID:
2023-03-28 17:47:34 +00:00
description: Record Id
type: string
AccountID:
description: ID of the Company that owns this Product
2022-05-28 19:45:41 +00:00
type: string
CreatedByID:
description: Created By User ID
type: string
CreatedDate:
description: Created Date
type: string
2023-03-28 17:47:34 +00:00
Description:
description: Description of product
type: string
FullDescription:
description: Full Description of product
type: string
Imagealttext:
description: Image Alt Text
type: string
ImageURL:
description: Image URL
type: string
2022-05-28 19:45:41 +00:00
LastModifiedByID:
description: Last Modified By User ID
type: string
LastModifiedDate:
description: Last Modified Date
type: string
2023-03-28 17:47:34 +00:00
Logo:
description: Logo
2022-05-28 19:45:41 +00:00
type: string
2023-03-28 17:47:34 +00:00
Name:
description: Product Name
2022-05-28 19:45:41 +00:00
type: string
2023-03-28 17:47:34 +00:00
Published:
description: Published
type: boolean
SalesforceSpecific:
description: Salesforce Specific
type: boolean
2022-05-28 19:45:41 +00:00
SiteURL:
2023-03-28 17:47:34 +00:00
description: Site URL
2022-05-28 19:45:41 +00:00
type: string
2023-03-28 17:47:34 +00:00
TagLine:
description: TagLine
2022-05-28 19:45:41 +00:00
type: string
2023-03-28 17:47:34 +00:00
URL:
description: Website
type: string
type: object
DeleteResponse:
properties:
Data:
2022-05-28 19:45:41 +00:00
items:
2023-03-28 17:47:34 +00:00
$ref: "#/definitions/Message"
type: array
Meta:
$ref: "#/definitions/ResponseMeta"
2022-05-28 19:45:41 +00:00
type: object
2023-03-28 17:47:34 +00:00
Error:
properties:
Code:
format: int64
type: integer
Fields:
type: string
Message:
type: string
type: object
Factor:
description: A Factor of analysis within a research topic
2022-05-28 19:45:41 +00:00
properties:
ID:
2023-03-28 17:47:34 +00:00
description: Record Id
2022-05-28 19:45:41 +00:00
type: string
CreatedByID:
description: Created By User ID
type: string
CreatedDate:
description: Created Date
type: string
2023-03-28 17:47:34 +00:00
Description:
description: Topic Description
type: string
2022-05-28 19:45:41 +00:00
LastModifiedByID:
description: Last Modified By User ID
type: string
LastModifiedDate:
description: Last Modified Date
type: string
2023-03-28 17:47:34 +00:00
Name:
description: Factor Name
2022-05-28 19:45:41 +00:00
type: string
2023-03-28 17:47:34 +00:00
Observations:
description: The list of Observations used to analyze this industry
items:
$ref: "#/definitions/Observation"
type: array
SiteURL:
description: The URL of the corresponding page on the CMS
2022-05-28 19:45:41 +00:00
type: string
2023-03-28 17:47:34 +00:00
Slug:
description: The slug of the corresponding page on the CMS
2022-05-28 19:45:41 +00:00
type: string
2023-03-28 17:47:34 +00:00
TopicID:
description: The ID of the Topic that owns this Factor
2022-05-28 19:45:41 +00:00
type: string
2023-03-28 17:47:34 +00:00
type: object
IndustryProduct:
description: Junction object between Industry and CompanyProduct
2022-05-28 19:45:41 +00:00
type: object
properties:
ID:
2023-03-28 17:47:34 +00:00
description: Record Id
2022-05-28 19:45:41 +00:00
type: string
CreatedByID:
description: Created By User ID
type: string
CreatedDate:
description: Created Date
type: string
LastModifiedByID:
description: Last Modified By User ID
type: string
LastModifiedDate:
description: Last Modified Date
type: string
2023-03-28 17:47:34 +00:00
IndustryID:
2022-05-28 19:45:41 +00:00
type: string
2023-03-28 17:47:34 +00:00
HTML:
2022-05-28 19:45:41 +00:00
type: string
2023-03-28 17:47:34 +00:00
CompanyProductID:
2022-05-28 19:45:41 +00:00
type: string
Industry:
description: An industry that is being researched
properties:
ID:
2023-03-28 17:47:34 +00:00
description: Record Id
2022-05-28 19:45:41 +00:00
type: string
2023-03-28 17:47:34 +00:00
Companies:
description: The AccountIDs of the Companies in this Industry
items:
type: string
type: array
CompanyProducts:
description: The list of Products in this industry
items:
$ref: "#/definitions/CompanyProduct"
type: array
2022-05-28 19:45:41 +00:00
CreatedByID:
description: Created By User ID
type: string
CreatedDate:
description: Created Date
type: string
2023-03-28 17:47:34 +00:00
Description:
description: Industry Description
type: string
Imagealttext:
description: Image Alt Text
type: string
ImageURL:
description: Image URL
type: string
2022-05-28 19:45:41 +00:00
LastModifiedByID:
description: Last Modified By User ID
type: string
LastModifiedDate:
description: Last Modified Date
type: string
2023-03-28 17:47:34 +00:00
Level:
description: The hierarchical level of this Industry
type: string
Logo:
description: Logo
type: string
2022-05-28 19:45:41 +00:00
Name:
description: Industry Name
type: string
ParentIndustryID:
description: The ID of the Parent Industry
type: string
Path:
description: The full path of this industry, including Parent
type: string
2023-03-28 17:47:34 +00:00
SiteURL:
description: The URL of the corresponding page on the CMS
type: string
2022-05-28 19:45:41 +00:00
Slug:
description: The CMS Slug for this Industry
type: string
2023-03-28 17:47:34 +00:00
TagLine:
description: TagLine
2022-05-28 19:45:41 +00:00
type: string
2023-03-28 17:47:34 +00:00
type: object
2022-05-28 19:45:41 +00:00
IndustryRequest:
description: An array of Industry objects submitted for processing
properties:
Data:
items:
$ref: "#/definitions/Industry"
type: array
type: object
IndustryResponse:
description: An array of Industry objects produced in response to a request
properties:
Data:
items:
$ref: "#/definitions/Industry"
type: array
Meta:
$ref: "#/definitions/ResponseMeta"
type: object
InvalidError:
allOf:
- $ref: "#/definitions/Error"
- properties:
details:
items:
type: string
type: array
type: object
Message:
properties:
message:
type: string
ref:
type: string
status:
format: int64
type: number
type: object
2023-03-28 17:47:34 +00:00
Observation:
description: A data point collected while analyzing a Factor
properties:
ID:
description: Record Id
type: string
AccountID:
description: The ID of the Company being analyzed
type: string
CompanyProductID:
description: The ID of the Product being analyzed
type: string
CreatedByID:
description: Created By User ID
type: string
CreatedDate:
description: Created Date
type: string
Description:
description: Notes concerning data collection
type: string
FactorID:
description: The ID of the Factor that owns this Observation
type: string
LastModifiedByID:
description: Last Modified By User ID
type: string
LastModifiedDate:
description: Last Modified Date
type: string
SubjectType:
description: Is the subject a Company or a Product?
Value:
description: The data point collected
type: string
type: object
2022-05-28 19:45:41 +00:00
Pagination:
properties:
limit:
format: int64
type: number
pagesize:
format: int64
type: number
poffset:
format: int64
type: integer
setsize:
format: int64
type: number
type: object
RequestMeta:
properties:
TaxnexusAccount:
2023-03-28 17:47:34 +00:00
description: Account Number of the Reseller or OEM
2022-05-28 19:45:41 +00:00
type: string
required:
- TaxnexusAccount
type: object
ResponseMeta:
properties:
Contact:
description: Microservice Contact Info
type: string
Copyright:
description: Copyright Info
type: string
License:
description: License Information and Restrictions
type: string
OperationID:
description: Operation ID
type: string
Pagination:
$ref: "#/definitions/Pagination"
RequestIP:
description: Request IP Address
type: string
RequestType:
description: Request Type
type: string
RequestURL:
description: Request URL
type: string
ServerInfo:
description: Data Server Info
type: string
ServerResponseTime:
description: Data Server Response Time (ms)
type: string
ServerTimestamp:
description: Backend Server Timestamp
type: string
TaxnexusAccount:
2023-03-28 17:47:34 +00:00
description: Account Number used for recording transactions
type: string
type: object
Topic:
description: A research topic that collects data
properties:
ID:
description: Record Id
type: string
CreatedByID:
description: Created By User ID
type: string
CreatedDate:
description: Created Date
type: string
Description:
description: Topic Description
type: string
Factors:
description: The list of Factors used to analyze this industry
items:
$ref: "#/definitions/Factor"
type: array
LastModifiedByID:
description: Last Modified By User ID
type: string
LastModifiedDate:
description: Last Modified Date
type: string
Name:
description: Topic Name
type: string
ParentTopicID:
description: The ID of the Parent Topic
type: string
SiteURL:
description: The URL of the corresponding page on the CMS
type: string
Slug:
description: The CMS Slug for this Topic
2022-05-28 19:45:41 +00:00
type: string
type: object
2023-03-28 17:47:34 +00:00
TopicRequest:
description: An array of Topic objects submitted for processing
properties:
Data:
items:
$ref: "#/definitions/Topic"
type: array
type: object
TopicResponse:
description: An array of Topic objects produced in response to a request
properties:
Data:
items:
$ref: "#/definitions/Topic"
type: array
Meta:
$ref: "#/definitions/ResponseMeta"
type: object