lib/swagger/crm-work.yaml

823 lines
22 KiB
YAML

swagger: "2.0"
info:
version: 0.3.4
title: "crm"
description: "Customer Information Microservice"
termsOfService: "https://WorkDifferentWithAI.com/terms/"
contact:
email: "vern@vernonkeenan.com"
license:
name: "Proprietary - Copyright (c) 2018-2023 by Vernon Keenan"
securityDefinitions:
ApiKeyAuth:
type: "apiKey"
in: "header"
name: "X-API-Key"
schemes:
- "http"
basePath: "/v1"
host: "crm.work.tnxs.net:8080"
consumes:
- "application/json"
produces:
- "application/json"
parameters:
accountIdQuery:
description: Record Id of an Account
in: query
name: accountId
required: false
type: string
assetIdQuery:
description: Record Id of an Asset
in: query
name: assetId
required: false
type: string
accountRequest:
description: An array of new Account records
in: body
name: accountRequest
required: true
schema:
$ref: "#/definitions/AccountRequest"
assetRequest:
description: An array of new Asset records
in: body
name: assetRequest
required: true
schema:
$ref: "#/definitions/AssetRequest"
activeQuery:
description: Only retrieve active records?
in: query
name: active
required: false
type: boolean
companyIdQuery:
description: Company record ID
in: query
name: companyId
required: false
type: string
leadIdQuery:
description: Lead record ID
in: query
name: leadId
required: false
type: string
contactIdQuery:
description: Contact record ID
in: query
name: contactId
required: false
type: string
contractIdQuery:
description: Contact record ID
in: query
name: contractId
required: false
type: string
emailQuery:
description: Email address used for identity lookup
in: query
name: email
required: false
type: string
contactRequest:
description: An array of new Contact records
in: body
name: contactsRequest
required: true
schema:
$ref: "#/definitions/ContactRequest"
contractRequest:
description: An array of new Contract records
in: body
name: contractsRequest
required: true
schema:
$ref: "#/definitions/ContractRequest"
leadRequest:
description: An array of new Lead records
in: body
name: leadRequest
required: true
schema:
$ref: "#/definitions/LeadRequest"
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
slugQuery:
description: The Slug of this Object
in: query
name: slug
required: false
type: string
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"
AccountResponse:
description: Response with Account objects with Contacts
headers:
Access-Control-Allow-Origin:
type: string
Cache-Control:
type: string
schema:
$ref: "#/definitions/AccountResponse"
AssetResponse:
description: Response with Asset objects with Contacts
headers:
Access-Control-Allow-Origin:
type: string
Cache-Control:
type: string
schema:
$ref: "#/definitions/AssetResponse"
Conflict:
description: Conflict
headers:
Access-Control-Allow-Origin:
type: string
schema:
$ref: "#/definitions/Error"
ContactResponse:
description: Response with an array of Contact objects
headers:
Access-Control-Allow-Origin:
type: string
Cache-Control:
type: string
schema:
$ref: "#/definitions/ContactResponse"
ContractResponse:
description: Response with an array of Contract objects
headers:
Access-Control-Allow-Origin:
type: string
Cache-Control:
type: string
schema:
$ref: "#/definitions/ContractResponse"
LeadResponse:
description: Response with an array of Lead objects
headers:
Access-Control-Allow-Origin:
type: string
Cache-Control:
type: string
schema:
$ref: "#/definitions/LeadResponse"
DeleteResponse:
description: Response with Message Objects with Delete Status
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"
paths:
/accounts:
delete:
description: Delete WorkDifferentWithAI.com Account record
operationId: deleteAccount
parameters:
- $ref: "#/parameters/accountIdQuery"
responses:
"200":
$ref: "#/responses/DeleteResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Delete An Account
tags:
- Accounts
get:
description: Return a list of all available Accounts
operationId: getAccounts
parameters:
- $ref: "#/parameters/limitQuery"
- $ref: "#/parameters/nameQuery"
- $ref: "#/parameters/offsetQuery"
- $ref: "#/parameters/activeQuery"
- $ref: "#/parameters/accountIdQuery"
- $ref: "#/parameters/slugQuery"
responses:
"200":
$ref: "#/responses/AccountResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Get a list of accounts
tags:
- Accounts
post:
description: Account record to be added
operationId: postAccounts
parameters:
- $ref: "#/parameters/accountRequest"
responses:
"200":
$ref: "#/responses/AccountResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Add a new account to WorkDifferentWithAI.com
tags:
- Accounts
put:
description: Update one or more accounts
operationId: putAccounts
parameters:
- $ref: "#/parameters/accountRequest"
responses:
"200":
$ref: "#/responses/AccountResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Update a single account
tags:
- Accounts
/assets:
delete:
description: Delete WorkDifferentWithAI.com Asset record
operationId: deleteAsset
parameters:
- $ref: "#/parameters/assetIdQuery"
responses:
"200":
$ref: "#/responses/DeleteResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Delete An Asset
tags:
- Assets
get:
description: Return a list of all available Assets
operationId: getAssets
parameters:
- $ref: "#/parameters/limitQuery"
- $ref: "#/parameters/offsetQuery"
- $ref: "#/parameters/accountIdQuery"
- $ref: "#/parameters/assetIdQuery"
responses:
"200":
$ref: "#/responses/AssetResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Get a list of assets
tags:
- Assets
post:
description: Asset record to be added
operationId: postAssets
parameters:
- $ref: "#/parameters/assetRequest"
responses:
"200":
$ref: "#/responses/AssetResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Add a new asset to WorkDifferentWithAI.com
tags:
- Assets
put:
description: Update a single asset specified by assetId
operationId: putAsset
parameters:
- $ref: "#/parameters/assetRequest"
responses:
"200":
$ref: "#/responses/AssetResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Update a single asset
tags:
- Assets
/contracts:
delete:
description: Delete WorkDifferentWithAI.com Contract record
operationId: deleteContract
parameters:
- $ref: "#/parameters/contractIdQuery"
responses:
"200":
$ref: "#/responses/DeleteResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Delete An Contract
tags:
- Contracts
get:
description: Return a list of all available Contracts
operationId: getContracts
parameters:
- $ref: "#/parameters/limitQuery"
- $ref: "#/parameters/offsetQuery"
- $ref: "#/parameters/activeQuery"
- $ref: "#/parameters/contractIdQuery"
responses:
"200":
$ref: "#/responses/ContractResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Get a list of contracts
tags:
- Contracts
post:
description: Contract record to be added
operationId: postContracts
parameters:
- $ref: "#/parameters/contractRequest"
responses:
"200":
$ref: "#/responses/ContractResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Add a new contract to WorkDifferentWithAI.com
tags:
- Contracts
put:
description: Update a single contract specified by contractId
operationId: putContract
parameters:
- $ref: "#/parameters/contractRequest"
responses:
"200":
$ref: "#/responses/ContractResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Update a single contract
tags:
- Contracts
/contacts:
delete:
description: Delete WorkDifferentWithAI.com Contact record
operationId: deleteContact
parameters:
- $ref: "#/parameters/contactIdQuery"
responses:
"200":
$ref: "#/responses/DeleteResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Delete a Contact
tags:
- Contacts
get:
description: Return a list of all available Contacts
operationId: getContacts
parameters:
- $ref: "#/parameters/limitQuery"
- $ref: "#/parameters/offsetQuery"
- $ref: "#/parameters/contactIdQuery"
- $ref: "#/parameters/activeQuery"
- $ref: "#/parameters/slugQuery"
- $ref: "#/parameters/emailQuery"
responses:
"200":
$ref: "#/responses/ContactResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Get a list of contacts
tags:
- Contacts
post:
description: Contact record to be added
operationId: postContacts
parameters:
- $ref: "#/parameters/contactRequest"
responses:
"200":
$ref: "#/responses/ContactResponse"
"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 contacts
tags:
- Contacts
put:
description: Update Contact records
operationId: putContacts
parameters:
- $ref: "#/parameters/contactRequest"
responses:
"200":
$ref: "#/responses/ContactResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Update Contact
tags:
- Contacts
/leads:
delete:
description: Delete WorkDifferentWithAI.com Lead record
operationId: deleteLead
parameters:
- $ref: "#/parameters/leadIdQuery"
responses:
"200":
$ref: "#/responses/DeleteResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Delete a Contact
tags:
- Leads
get:
description: Return a list of all available Leads
operationId: getLeads
parameters:
- $ref: "#/parameters/limitQuery"
- $ref: "#/parameters/offsetQuery"
- $ref: "#/parameters/leadIdQuery"
- $ref: "#/parameters/emailQuery"
- $ref: "#/parameters/nameQuery"
responses:
"200":
$ref: "#/responses/LeadResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Get a list of contacts
tags:
- Leads
post:
description: Lead records to be added
operationId: postLeads
parameters:
- $ref: "#/parameters/leadRequest"
responses:
"200":
$ref: "#/responses/LeadResponse"
"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 Leads
tags:
- Leads
put:
description: Update Lead records
operationId: putLeads
parameters:
- $ref: "#/parameters/leadRequest"
responses:
"200":
$ref: "#/responses/LeadResponse"
"401":
$ref: "#/responses/Unauthorized"
"403":
$ref: "#/responses/AccessForbidden"
"404":
$ref: "#/responses/NotFound"
"422":
$ref: "#/responses/UnprocessableEntity"
"500":
$ref: "#/responses/ServerError"
security:
- ApiKeyAuth: []
summary: Update Leads
tags:
- Leads
definitions:
AccountRequest:
description: An array of Account objects with Contacts
properties:
Data:
items:
$ref: "../../lib/swagger/defs/account.yaml#/Account"
type: array
type: object
AccountResponse:
description: An array of Account objects with Contacts
properties:
Data:
items:
$ref: "../../lib/swagger/defs/account.yaml#/Account"
type: array
Meta:
$ref: "../../lib/swagger/defs/response-meta.yaml#/ResponseMeta"
type: object
AssetRequest:
description: An array of Asset objects with Contacts
properties:
Data:
items:
$ref: "../../lib/swagger/defs/asset.yaml#/Asset"
type: array
type: object
AssetResponse:
description: An array of Asset objects with Contacts
properties:
Data:
items:
$ref: "../../lib/swagger/defs/asset.yaml#/Asset"
type: array
Meta:
$ref: "../../lib/swagger/defs/response-meta.yaml#/ResponseMeta"
type: object
ContactRequest:
properties:
Data:
items:
$ref: "../../lib/swagger/defs/contact.yaml#/Contact"
type: array
type: object
ContactResponse:
properties:
Data:
items:
$ref: "../../lib/swagger/defs/contact.yaml#/Contact"
type: array
Meta:
$ref: "../../lib/swagger/defs/response-meta.yaml#/ResponseMeta"
type: object
ContractRequest:
properties:
Data:
items:
$ref: "../../lib/swagger/defs/contract.yaml#/Contract"
type: array
type: object
ContractResponse:
properties:
Data:
items:
$ref: "../../lib/swagger/defs/contract.yaml#/Contract"
type: array
Meta:
$ref: "../../lib/swagger/defs/response-meta.yaml#/ResponseMeta"
type: object
DeleteResponse:
$ref: "../../lib/swagger/defs/delete-response.yaml#/DeleteResponse"
Error:
$ref: "../../lib/swagger/defs/error.yaml#/Error"
InvalidError:
$ref: "../../lib/swagger/defs/invalid-error.yaml#/InvalidError"
LeadRequest:
properties:
Data:
items:
$ref: "../../lib/swagger/defs/lead.yaml#/Lead"
type: array
type: object
LeadResponse:
properties:
Data:
items:
$ref: "../../lib/swagger/defs/lead.yaml#/Lead"
type: array
Meta:
$ref: "../../lib/swagger/defs/response-meta.yaml#/ResponseMeta"
type: object
Message:
$ref: "../../lib/swagger/defs/message.yaml#/Message"
RequestMeta:
$ref: "../../lib/swagger/defs/request-meta.yaml#/RequestMeta"