commit
e2d3ad3a4e
|
@ -0,0 +1,20 @@
|
|||
# Binaries for programs and plugins
|
||||
*.exe
|
||||
*.exe~
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
|
||||
# Test binary, build with `go test -c`
|
||||
*.test
|
||||
|
||||
# Output of the go coverage tool, specifically when used with LiteIDE
|
||||
*.out
|
||||
*.log
|
||||
/swagger/docs/*
|
||||
/.sfdx/*
|
||||
/swagger/apex/*
|
||||
/swagger/mysql/*
|
||||
/swagger/logs/*
|
||||
/swagger/graphql/*
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"cSpell.words": ["Gitea", "taxnexus"]
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
Copyright (c) 2012-2022, Taxnexus, Inc. All rights reserved.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -0,0 +1,52 @@
|
|||
|
||||
.PHONY: swagger
|
||||
|
||||
swagger:
|
||||
cp ../auth/swagger/auth-work.yaml ./swagger
|
||||
cp ../auth/swagger/auth-work.yaml ./swagger/external
|
||||
cp ../workflow/swagger/workflow-work.yaml ./swagger
|
||||
cp ../workflow/swagger/workflow-work.yaml ./swagger/external
|
||||
#
|
||||
rm -rf api
|
||||
#
|
||||
# generate auth client
|
||||
#
|
||||
mkdir -p api/auth
|
||||
swagger generate client \
|
||||
--log-output=./swagger/logs/generate-auth-client.log \
|
||||
--copyright-file=./build/COPYRIGHT \
|
||||
--name=auth \
|
||||
--spec=./swagger/auth-work.yaml \
|
||||
--target=./api/auth \
|
||||
--client-package=auth-client \
|
||||
--model-package=auth-models \
|
||||
--principal=app.User
|
||||
#
|
||||
# update external auth client
|
||||
#
|
||||
sed -i 's|"http"|"https"|g' ./swagger/external/auth-work.yaml
|
||||
sed -i 's|auth.work.com:8080|gw.tnxs.net|g' ./swagger/external/auth-work.yaml
|
||||
sed -i 's|"/v1"|"/vk/auth/v1"|g' ./swagger/external/auth-work.yaml
|
||||
#
|
||||
# generate workflow client
|
||||
#
|
||||
mkdir api/workflow
|
||||
swagger generate client \
|
||||
--log-output=./swagger/logs/generate-workflow-client.log \
|
||||
--copyright-file=./build/COPYRIGHT \
|
||||
--name=workflow \
|
||||
--spec=./swagger/workflow-work.yaml \
|
||||
--target=./api/workflow \
|
||||
--client-package=workflow-client \
|
||||
--model-package=workflow-models \
|
||||
--principal=app.User
|
||||
#
|
||||
# update external workflow client
|
||||
#
|
||||
sed -i 's|"http"|"https"|g' ./swagger/external/workflow-work.yaml
|
||||
sed -i 's|workflow.work.com:8080|gw.tnxs.net|g' ./swagger/external/workflow-work.yaml
|
||||
sed -i 's|"/v1"|"/vk/workflow/v1"|g' ./swagger/external/workflow-work.yaml
|
||||
#
|
||||
# copy external swagger files
|
||||
#
|
||||
scp ./swagger/external/*.yaml root@whm.noc.tnxs.net:/home/taxassets/www/swagger/external
|
|
@ -0,0 +1,27 @@
|
|||
# lib
|
||||
|
||||
vernonkeenan Shared Libraries (go)
|
||||
|
||||
## Dependent Systems
|
||||
|
||||
The Gitea server <https://code.tnxs.net> must be up and running with admin access.
|
||||
|
||||
## Update Procedure
|
||||
|
||||
Prerequisite: All the other repos are cloned locally in adjacent directories.
|
||||
|
||||
* Increment branch number in local repo
|
||||
|
||||
* Generate all OpenAPI libraries and then cleanup modules
|
||||
|
||||
```bash
|
||||
make swagger
|
||||
go get -u -f ./...
|
||||
go mod tidy
|
||||
```
|
||||
|
||||
* Commit and push new branch to GitHub
|
||||
* On GitHub goto <https://github.com/vernonkeenan/lib/settings/branches> set the new branch to default.
|
||||
* On GitHub goto <https://github.com/vernonkeenan/lib/releases> and publish a new release for the new branch. Make the new tag the branch name.
|
||||
* On Gitea goto <https://code.tnxs.net/vernonkeenan/lib/settings> and click Synchronize Now.
|
||||
* Update the ``go.mod`` line with ``code.tnxs.net/vernonkeenan/lib`` in each project to match the latest version.
|
|
@ -0,0 +1,116 @@
|
|||
// Code generated by go-swagger; DO NOT EDIT.
|
||||
|
||||
// (c) 2012-2020 by Taxnexus, Inc.
|
||||
// All rights reserved worldwide.
|
||||
// Proprietary product; unlicensed use is not allowed
|
||||
|
||||
package auth_client
|
||||
|
||||
// This file was generated by the swagger tool.
|
||||
// Editing this file might prove futile when you re-run the swagger generate command
|
||||
|
||||
import (
|
||||
"github.com/go-openapi/runtime"
|
||||
httptransport "github.com/go-openapi/runtime/client"
|
||||
"github.com/go-openapi/strfmt"
|
||||
|
||||
"code.tnxs.net/vernonkeenan/lib/api/auth/auth_client/user"
|
||||
)
|
||||
|
||||
// Default auth HTTP client.
|
||||
var Default = NewHTTPClient(nil)
|
||||
|
||||
const (
|
||||
// DefaultHost is the default Host
|
||||
// found in Meta (info) section of spec file
|
||||
DefaultHost string = "auth.vernonkeenan.com:8080"
|
||||
// DefaultBasePath is the default BasePath
|
||||
// found in Meta (info) section of spec file
|
||||
DefaultBasePath string = "/v1"
|
||||
)
|
||||
|
||||
// DefaultSchemes are the default schemes found in Meta (info) section of spec file
|
||||
var DefaultSchemes = []string{"http"}
|
||||
|
||||
// NewHTTPClient creates a new auth HTTP client.
|
||||
func NewHTTPClient(formats strfmt.Registry) *Auth {
|
||||
return NewHTTPClientWithConfig(formats, nil)
|
||||
}
|
||||
|
||||
// NewHTTPClientWithConfig creates a new auth HTTP client,
|
||||
// using a customizable transport config.
|
||||
func NewHTTPClientWithConfig(formats strfmt.Registry, cfg *TransportConfig) *Auth {
|
||||
// ensure nullable parameters have default
|
||||
if cfg == nil {
|
||||
cfg = DefaultTransportConfig()
|
||||
}
|
||||
|
||||
// create transport and client
|
||||
transport := httptransport.New(cfg.Host, cfg.BasePath, cfg.Schemes)
|
||||
return New(transport, formats)
|
||||
}
|
||||
|
||||
// New creates a new auth client
|
||||
func New(transport runtime.ClientTransport, formats strfmt.Registry) *Auth {
|
||||
// ensure nullable parameters have default
|
||||
if formats == nil {
|
||||
formats = strfmt.Default
|
||||
}
|
||||
|
||||
cli := new(Auth)
|
||||
cli.Transport = transport
|
||||
cli.User = user.New(transport, formats)
|
||||
return cli
|
||||
}
|
||||
|
||||
// DefaultTransportConfig creates a TransportConfig with the
|
||||
// default settings taken from the meta section of the spec file.
|
||||
func DefaultTransportConfig() *TransportConfig {
|
||||
return &TransportConfig{
|
||||
Host: DefaultHost,
|
||||
BasePath: DefaultBasePath,
|
||||
Schemes: DefaultSchemes,
|
||||
}
|
||||
}
|
||||
|
||||
// TransportConfig contains the transport related info,
|
||||
// found in the meta section of the spec file.
|
||||
type TransportConfig struct {
|
||||
Host string
|
||||
BasePath string
|
||||
Schemes []string
|
||||
}
|
||||
|
||||
// WithHost overrides the default host,
|
||||
// provided by the meta section of the spec file.
|
||||
func (cfg *TransportConfig) WithHost(host string) *TransportConfig {
|
||||
cfg.Host = host
|
||||
return cfg
|
||||
}
|
||||
|
||||
// WithBasePath overrides the default basePath,
|
||||
// provided by the meta section of the spec file.
|
||||
func (cfg *TransportConfig) WithBasePath(basePath string) *TransportConfig {
|
||||
cfg.BasePath = basePath
|
||||
return cfg
|
||||
}
|
||||
|
||||
// WithSchemes overrides the default schemes,
|
||||
// provided by the meta section of the spec file.
|
||||
func (cfg *TransportConfig) WithSchemes(schemes []string) *TransportConfig {
|
||||
cfg.Schemes = schemes
|
||||
return cfg
|
||||
}
|
||||
|
||||
// Auth is a client for auth
|
||||
type Auth struct {
|
||||
User user.ClientService
|
||||
|
||||
Transport runtime.ClientTransport
|
||||
}
|
||||
|
||||
// SetTransport changes the transport on the client and all its subresources
|
||||
func (c *Auth) SetTransport(transport runtime.ClientTransport) {
|
||||
c.Transport = transport
|
||||
c.User.SetTransport(transport)
|
||||
}
|
|
@ -0,0 +1,167 @@
|
|||
// Code generated by go-swagger; DO NOT EDIT.
|
||||
|
||||
// (c) 2012-2020 by Taxnexus, Inc.
|
||||
// All rights reserved worldwide.
|
||||
// Proprietary product; unlicensed use is not allowed
|
||||
|
||||
package user
|
||||
|
||||
// This file was generated by the swagger tool.
|
||||
// Editing this file might prove futile when you re-run the swagger generate command
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/go-openapi/errors"
|
||||
"github.com/go-openapi/runtime"
|
||||
cr "github.com/go-openapi/runtime/client"
|
||||
"github.com/go-openapi/strfmt"
|
||||
)
|
||||
|
||||
// NewGetUsersParams creates a new GetUsersParams object,
|
||||
// with the default timeout for this client.
|
||||
//
|
||||
// Default values are not hydrated, since defaults are normally applied by the API server side.
|
||||
//
|
||||
// To enforce default values in parameter, use SetDefaults or WithDefaults.
|
||||
func NewGetUsersParams() *GetUsersParams {
|
||||
return &GetUsersParams{
|
||||
timeout: cr.DefaultTimeout,
|
||||
}
|
||||
}
|
||||
|
||||
// NewGetUsersParamsWithTimeout creates a new GetUsersParams object
|
||||
// with the ability to set a timeout on a request.
|
||||
func NewGetUsersParamsWithTimeout(timeout time.Duration) *GetUsersParams {
|
||||
return &GetUsersParams{
|
||||
timeout: timeout,
|
||||
}
|
||||
}
|
||||
|
||||
// NewGetUsersParamsWithContext creates a new GetUsersParams object
|
||||
// with the ability to set a context for a request.
|
||||
func NewGetUsersParamsWithContext(ctx context.Context) *GetUsersParams {
|
||||
return &GetUsersParams{
|
||||
Context: ctx,
|
||||
}
|
||||
}
|
||||
|
||||
// NewGetUsersParamsWithHTTPClient creates a new GetUsersParams object
|
||||
// with the ability to set a custom HTTPClient for a request.
|
||||
func NewGetUsersParamsWithHTTPClient(client *http.Client) *GetUsersParams {
|
||||
return &GetUsersParams{
|
||||
HTTPClient: client,
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
GetUsersParams contains all the parameters to send to the API endpoint
|
||||
|
||||
for the get users operation.
|
||||
|
||||
Typically these are written to a http.Request.
|
||||
*/
|
||||
type GetUsersParams struct {
|
||||
|
||||
/* Apikey.
|
||||
|
||||
Service account or developer API key
|
||||
*/
|
||||
Apikey *string
|
||||
|
||||
timeout time.Duration
|
||||
Context context.Context
|
||||
HTTPClient *http.Client
|
||||
}
|
||||
|
||||
// WithDefaults hydrates default values in the get users params (not the query body).
|
||||
//
|
||||
// All values with no default are reset to their zero value.
|
||||
func (o *GetUsersParams) WithDefaults() *GetUsersParams {
|
||||
o.SetDefaults()
|
||||
return o
|
||||
}
|
||||
|
||||
// SetDefaults hydrates default values in the get users params (not the query body).
|
||||
//
|
||||
// All values with no default are reset to their zero value.
|
||||
func (o *GetUsersParams) SetDefaults() {
|
||||
// no default values defined for this parameter
|
||||
}
|
||||
|
||||
// WithTimeout adds the timeout to the get users params
|
||||
func (o *GetUsersParams) WithTimeout(timeout time.Duration) *GetUsersParams {
|
||||
o.SetTimeout(timeout)
|
||||
return o
|
||||
}
|
||||
|
||||
// SetTimeout adds the timeout to the get users params
|
||||
func (o *GetUsersParams) SetTimeout(timeout time.Duration) {
|
||||
o.timeout = timeout
|
||||
}
|
||||
|
||||
// WithContext adds the context to the get users params
|
||||
func (o *GetUsersParams) WithContext(ctx context.Context) *GetUsersParams {
|
||||
o.SetContext(ctx)
|
||||
return o
|
||||
}
|
||||
|
||||
// SetContext adds the context to the get users params
|
||||
func (o *GetUsersParams) SetContext(ctx context.Context) {
|
||||
o.Context = ctx
|
||||
}
|
||||
|
||||
// WithHTTPClient adds the HTTPClient to the get users params
|
||||
func (o *GetUsersParams) WithHTTPClient(client *http.Client) *GetUsersParams {
|
||||
o.SetHTTPClient(client)
|
||||
return o
|
||||
}
|
||||
|
||||
// SetHTTPClient adds the HTTPClient to the get users params
|
||||
func (o *GetUsersParams) SetHTTPClient(client *http.Client) {
|
||||
o.HTTPClient = client
|
||||
}
|
||||
|
||||
// WithApikey adds the apikey to the get users params
|
||||
func (o *GetUsersParams) WithApikey(apikey *string) *GetUsersParams {
|
||||
o.SetApikey(apikey)
|
||||
return o
|
||||
}
|
||||
|
||||
// SetApikey adds the apikey to the get users params
|
||||
func (o *GetUsersParams) SetApikey(apikey *string) {
|
||||
o.Apikey = apikey
|
||||
}
|
||||
|
||||
// WriteToRequest writes these params to a swagger request
|
||||
func (o *GetUsersParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error {
|
||||
|
||||
if err := r.SetTimeout(o.timeout); err != nil {
|
||||
return err
|
||||
}
|
||||
var res []error
|
||||
|
||||
if o.Apikey != nil {
|
||||
|
||||
// query param apikey
|
||||
var qrApikey string
|
||||
|
||||
if o.Apikey != nil {
|
||||
qrApikey = *o.Apikey
|
||||
}
|
||||
qApikey := qrApikey
|
||||
if qApikey != "" {
|
||||
|
||||
if err := r.SetQueryParam("apikey", qApikey); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if len(res) > 0 {
|
||||
return errors.CompositeValidationError(res...)
|
||||
}
|
||||
return nil
|
||||
}
|
|
@ -0,0 +1,477 @@
|
|||
// Code generated by go-swagger; DO NOT EDIT.
|
||||
|
||||
// (c) 2012-2020 by Taxnexus, Inc.
|
||||
// All rights reserved worldwide.
|
||||
// Proprietary product; unlicensed use is not allowed
|
||||
|
||||
package user
|
||||
|
||||
// This file was generated by the swagger tool.
|
||||
// Editing this file might prove futile when you re-run the swagger generate command
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"github.com/go-openapi/runtime"
|
||||
"github.com/go-openapi/strfmt"
|
||||
|
||||
"code.tnxs.net/vernonkeenan/lib/api/auth/auth_models"
|
||||
)
|
||||
|
||||
// GetUsersReader is a Reader for the GetUsers structure.
|
||||
type GetUsersReader struct {
|
||||
formats strfmt.Registry
|
||||
}
|
||||
|
||||
// ReadResponse reads a server response into the received o.
|
||||
func (o *GetUsersReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) {
|
||||
switch response.Code() {
|
||||
case 200:
|
||||
result := NewGetUsersOK()
|
||||
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return result, nil
|
||||
case 401:
|
||||
result := NewGetUsersUnauthorized()
|
||||
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return nil, result
|
||||
case 403:
|
||||
result := NewGetUsersForbidden()
|
||||
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return nil, result
|
||||
case 404:
|
||||
result := NewGetUsersNotFound()
|
||||
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return nil, result
|
||||
case 422:
|
||||
result := NewGetUsersUnprocessableEntity()
|
||||
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return nil, result
|
||||
case 500:
|
||||
result := NewGetUsersInternalServerError()
|
||||
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return nil, result
|
||||
default:
|
||||
return nil, runtime.NewAPIError("response status code does not match any response statuses defined for this endpoint in the swagger spec", response, response.Code())
|
||||
}
|
||||
}
|
||||
|
||||
// NewGetUsersOK creates a GetUsersOK with default headers values
|
||||
func NewGetUsersOK() *GetUsersOK {
|
||||
return &GetUsersOK{}
|
||||
}
|
||||
|
||||
/*
|
||||
GetUsersOK describes a response with status code 200, with default header values.
|
||||
|
||||
Response with User objects
|
||||
*/
|
||||
type GetUsersOK struct {
|
||||
Payload *auth_models.UserResponse
|
||||
}
|
||||
|
||||
// IsSuccess returns true when this get users o k response has a 2xx status code
|
||||
func (o *GetUsersOK) IsSuccess() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// IsRedirect returns true when this get users o k response has a 3xx status code
|
||||
func (o *GetUsersOK) IsRedirect() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsClientError returns true when this get users o k response has a 4xx status code
|
||||
func (o *GetUsersOK) IsClientError() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsServerError returns true when this get users o k response has a 5xx status code
|
||||
func (o *GetUsersOK) IsServerError() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsCode returns true when this get users o k response a status code equal to that given
|
||||
func (o *GetUsersOK) IsCode(code int) bool {
|
||||
return code == 200
|
||||
}
|
||||
|
||||
// Code gets the status code for the get users o k response
|
||||
func (o *GetUsersOK) Code() int {
|
||||
return 200
|
||||
}
|
||||
|
||||
func (o *GetUsersOK) Error() string {
|
||||
return fmt.Sprintf("[GET /users][%d] getUsersOK %+v", 200, o.Payload)
|
||||
}
|
||||
|
||||
func (o *GetUsersOK) String() string {
|
||||
return fmt.Sprintf("[GET /users][%d] getUsersOK %+v", 200, o.Payload)
|
||||
}
|
||||
|
||||
func (o *GetUsersOK) GetPayload() *auth_models.UserResponse {
|
||||
return o.Payload
|
||||
}
|
||||
|
||||
func (o *GetUsersOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||
|
||||
o.Payload = new(auth_models.UserResponse)
|
||||
|
||||
// response payload
|
||||
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// NewGetUsersUnauthorized creates a GetUsersUnauthorized with default headers values
|
||||
func NewGetUsersUnauthorized() *GetUsersUnauthorized {
|
||||
return &GetUsersUnauthorized{}
|
||||
}
|
||||
|
||||
/*
|
||||
GetUsersUnauthorized describes a response with status code 401, with default header values.
|
||||
|
||||
Access Unauthorized, invalid API-KEY was used
|
||||
*/
|
||||
type GetUsersUnauthorized struct {
|
||||
Payload *auth_models.Error
|
||||
}
|
||||
|
||||
// IsSuccess returns true when this get users unauthorized response has a 2xx status code
|
||||
func (o *GetUsersUnauthorized) IsSuccess() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsRedirect returns true when this get users unauthorized response has a 3xx status code
|
||||
func (o *GetUsersUnauthorized) IsRedirect() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsClientError returns true when this get users unauthorized response has a 4xx status code
|
||||
func (o *GetUsersUnauthorized) IsClientError() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// IsServerError returns true when this get users unauthorized response has a 5xx status code
|
||||
func (o *GetUsersUnauthorized) IsServerError() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsCode returns true when this get users unauthorized response a status code equal to that given
|
||||
func (o *GetUsersUnauthorized) IsCode(code int) bool {
|
||||
return code == 401
|
||||
}
|
||||
|
||||
// Code gets the status code for the get users unauthorized response
|
||||
func (o *GetUsersUnauthorized) Code() int {
|
||||
return 401
|
||||
}
|
||||
|
||||
func (o *GetUsersUnauthorized) Error() string {
|
||||
return fmt.Sprintf("[GET /users][%d] getUsersUnauthorized %+v", 401, o.Payload)
|
||||
}
|
||||
|
||||
func (o *GetUsersUnauthorized) String() string {
|
||||
return fmt.Sprintf("[GET /users][%d] getUsersUnauthorized %+v", 401, o.Payload)
|
||||
}
|
||||
|
||||
func (o *GetUsersUnauthorized) GetPayload() *auth_models.Error {
|
||||
return o.Payload
|
||||
}
|
||||
|
||||
func (o *GetUsersUnauthorized) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||
|
||||
o.Payload = new(auth_models.Error)
|
||||
|
||||
// response payload
|
||||
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// NewGetUsersForbidden creates a GetUsersForbidden with default headers values
|
||||
func NewGetUsersForbidden() *GetUsersForbidden {
|
||||
return &GetUsersForbidden{}
|
||||
}
|
||||
|
||||
/*
|
||||
GetUsersForbidden describes a response with status code 403, with default header values.
|
||||
|
||||
Access forbidden, account lacks access
|
||||
*/
|
||||
type GetUsersForbidden struct {
|
||||
Payload *auth_models.Error
|
||||
}
|
||||
|
||||
// IsSuccess returns true when this get users forbidden response has a 2xx status code
|
||||
func (o *GetUsersForbidden) IsSuccess() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsRedirect returns true when this get users forbidden response has a 3xx status code
|
||||
func (o *GetUsersForbidden) IsRedirect() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsClientError returns true when this get users forbidden response has a 4xx status code
|
||||
func (o *GetUsersForbidden) IsClientError() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// IsServerError returns true when this get users forbidden response has a 5xx status code
|
||||
func (o *GetUsersForbidden) IsServerError() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsCode returns true when this get users forbidden response a status code equal to that given
|
||||
func (o *GetUsersForbidden) IsCode(code int) bool {
|
||||
return code == 403
|
||||
}
|
||||
|
||||
// Code gets the status code for the get users forbidden response
|
||||
func (o *GetUsersForbidden) Code() int {
|
||||
return 403
|
||||
}
|
||||
|
||||
func (o *GetUsersForbidden) Error() string {
|
||||
return fmt.Sprintf("[GET /users][%d] getUsersForbidden %+v", 403, o.Payload)
|
||||
}
|
||||
|
||||
func (o *GetUsersForbidden) String() string {
|
||||
return fmt.Sprintf("[GET /users][%d] getUsersForbidden %+v", 403, o.Payload)
|
||||
}
|
||||
|
||||
func (o *GetUsersForbidden) GetPayload() *auth_models.Error {
|
||||
return o.Payload
|
||||
}
|
||||
|
||||
func (o *GetUsersForbidden) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||
|
||||
o.Payload = new(auth_models.Error)
|
||||
|
||||
// response payload
|
||||
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// NewGetUsersNotFound creates a GetUsersNotFound with default headers values
|
||||
func NewGetUsersNotFound() *GetUsersNotFound {
|
||||
return &GetUsersNotFound{}
|
||||
}
|
||||
|
||||
/*
|
||||
GetUsersNotFound describes a response with status code 404, with default header values.
|
||||
|
||||
Resource was not found
|
||||
*/
|
||||
type GetUsersNotFound struct {
|
||||
Payload *auth_models.Error
|
||||
}
|
||||
|
||||
// IsSuccess returns true when this get users not found response has a 2xx status code
|
||||
func (o *GetUsersNotFound) IsSuccess() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsRedirect returns true when this get users not found response has a 3xx status code
|
||||
func (o *GetUsersNotFound) IsRedirect() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsClientError returns true when this get users not found response has a 4xx status code
|
||||
func (o *GetUsersNotFound) IsClientError() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// IsServerError returns true when this get users not found response has a 5xx status code
|
||||
func (o *GetUsersNotFound) IsServerError() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsCode returns true when this get users not found response a status code equal to that given
|
||||
func (o *GetUsersNotFound) IsCode(code int) bool {
|
||||
return code == 404
|
||||
}
|
||||
|
||||
// Code gets the status code for the get users not found response
|
||||
func (o *GetUsersNotFound) Code() int {
|
||||
return 404
|
||||
}
|
||||
|
||||
func (o *GetUsersNotFound) Error() string {
|
||||
return fmt.Sprintf("[GET /users][%d] getUsersNotFound %+v", 404, o.Payload)
|
||||
}
|
||||
|
||||
func (o *GetUsersNotFound) String() string {
|
||||
return fmt.Sprintf("[GET /users][%d] getUsersNotFound %+v", 404, o.Payload)
|
||||
}
|
||||
|
||||
func (o *GetUsersNotFound) GetPayload() *auth_models.Error {
|
||||
return o.Payload
|
||||
}
|
||||
|
||||
func (o *GetUsersNotFound) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||
|
||||
o.Payload = new(auth_models.Error)
|
||||
|
||||
// response payload
|
||||
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// NewGetUsersUnprocessableEntity creates a GetUsersUnprocessableEntity with default headers values
|
||||
func NewGetUsersUnprocessableEntity() *GetUsersUnprocessableEntity {
|
||||
return &GetUsersUnprocessableEntity{}
|
||||
}
|
||||
|
||||
/*
|
||||
GetUsersUnprocessableEntity describes a response with status code 422, with default header values.
|
||||
|
||||
Unprocessable Entity, likely a bad parameter
|
||||
*/
|
||||
type GetUsersUnprocessableEntity struct {
|
||||
Payload *auth_models.Error
|
||||
}
|
||||
|
||||
// IsSuccess returns true when this get users unprocessable entity response has a 2xx status code
|
||||
func (o *GetUsersUnprocessableEntity) IsSuccess() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsRedirect returns true when this get users unprocessable entity response has a 3xx status code
|
||||
func (o *GetUsersUnprocessableEntity) IsRedirect() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsClientError returns true when this get users unprocessable entity response has a 4xx status code
|
||||
func (o *GetUsersUnprocessableEntity) IsClientError() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// IsServerError returns true when this get users unprocessable entity response has a 5xx status code
|
||||
func (o *GetUsersUnprocessableEntity) IsServerError() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsCode returns true when this get users unprocessable entity response a status code equal to that given
|
||||
func (o *GetUsersUnprocessableEntity) IsCode(code int) bool {
|
||||
return code == 422
|
||||
}
|
||||
|
||||
// Code gets the status code for the get users unprocessable entity response
|
||||
func (o *GetUsersUnprocessableEntity) Code() int {
|
||||
return 422
|
||||
}
|
||||
|
||||
func (o *GetUsersUnprocessableEntity) Error() string {
|
||||
return fmt.Sprintf("[GET /users][%d] getUsersUnprocessableEntity %+v", 422, o.Payload)
|
||||
}
|
||||
|
||||
func (o *GetUsersUnprocessableEntity) String() string {
|
||||
return fmt.Sprintf("[GET /users][%d] getUsersUnprocessableEntity %+v", 422, o.Payload)
|
||||
}
|
||||
|
||||
func (o *GetUsersUnprocessableEntity) GetPayload() *auth_models.Error {
|
||||
return o.Payload
|
||||
}
|
||||
|
||||
func (o *GetUsersUnprocessableEntity) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||
|
||||
o.Payload = new(auth_models.Error)
|
||||
|
||||
// response payload
|
||||
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// NewGetUsersInternalServerError creates a GetUsersInternalServerError with default headers values
|
||||
func NewGetUsersInternalServerError() *GetUsersInternalServerError {
|
||||
return &GetUsersInternalServerError{}
|
||||
}
|
||||
|
||||
/*
|
||||
GetUsersInternalServerError describes a response with status code 500, with default header values.
|
||||
|
||||
Server Internal Error
|
||||
*/
|
||||
type GetUsersInternalServerError struct {
|
||||
Payload *auth_models.Error
|
||||
}
|
||||
|
||||
// IsSuccess returns true when this get users internal server error response has a 2xx status code
|
||||
func (o *GetUsersInternalServerError) IsSuccess() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsRedirect returns true when this get users internal server error response has a 3xx status code
|
||||
func (o *GetUsersInternalServerError) IsRedirect() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsClientError returns true when this get users internal server error response has a 4xx status code
|
||||
func (o *GetUsersInternalServerError) IsClientError() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IsServerError returns true when this get users internal server error response has a 5xx status code
|
||||
func (o *GetUsersInternalServerError) IsServerError() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// IsCode returns true when this get users internal server error response a status code equal to that given
|
||||
func (o *GetUsersInternalServerError) IsCode(code int) bool {
|
||||
return code == 500
|
||||
}
|
||||
|
||||
// Code gets the status code for the get users internal server error response
|
||||
func (o *GetUsersInternalServerError) Code() int {
|
||||
return 500
|
||||
}
|
||||
|
||||
func (o *GetUsersInternalServerError) Error() string {
|
||||
return fmt.Sprintf("[GET /users][%d] getUsersInternalServerError %+v", 500, o.Payload)
|
||||
}
|
||||
|
||||
func (o *GetUsersInternalServerError) String() string {
|
||||
return fmt.Sprintf("[GET /users][%d] getUsersInternalServerError %+v", 500, o.Payload)
|
||||
}
|
||||
|
||||
func (o *GetUsersInternalServerError) GetPayload() *auth_models.Error {
|
||||
return o.Payload
|
||||
}
|
||||
|
||||
func (o *GetUsersInternalServerError) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||
|
||||
o.Payload = new(auth_models.Error)
|
||||
|
||||
// response payload
|
||||
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
// Code generated by go-swagger; DO NOT EDIT.
|
||||
|
||||
// (c) 2012-2020 by Taxnexus, Inc.
|
||||
// All rights reserved worldwide.
|
||||
// Proprietary product; unlicensed use is not allowed
|
||||
|
||||
package user
|
||||
|
||||
// This file was generated by the swagger tool.
|
||||
// Editing this file might prove futile when you re-run the swagger generate command
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/go-openapi/runtime"
|
||||
"github.com/go-openapi/strfmt"
|
||||
)
|
||||
|
||||
// New creates a new user API client.
|
||||
func New(transport runtime.ClientTransport, formats strfmt.Registry) ClientService {
|
||||
return &Client{transport: transport, formats: formats}
|
||||
}
|
||||
|
||||
/*
|
||||
Client for user API
|
||||
*/
|
||||
type Client struct {
|
||||
transport runtime.ClientTransport
|
||||
formats strfmt.Registry
|
||||
}
|
||||
|
||||
// ClientOption is the option for Client methods
|
||||
type ClientOption func(*runtime.ClientOperation)
|
||||
|
||||
// ClientService is the interface for Client methods
|
||||
type ClientService interface {
|
||||
GetUsers(params *GetUsersParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*GetUsersOK, error)
|
||||
|
||||
SetTransport(transport runtime.ClientTransport)
|
||||
}
|
||||
|
||||
/*
|
||||
GetUsers checks API key
|
||||
|
||||
Checks for a valid API key, and returns full user record
|
||||
*/
|
||||
func (a *Client) GetUsers(params *GetUsersParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*GetUsersOK, error) {
|
||||
// TODO: Validate the params before sending
|
||||
if params == nil {
|
||||
params = NewGetUsersParams()
|
||||
}
|
||||
op := &runtime.ClientOperation{
|
||||
ID: "getUsers",
|
||||
Method: "GET",
|
||||
PathPattern: "/users",
|
||||
ProducesMediaTypes: []string{"application/json"},
|
||||
ConsumesMediaTypes: []string{"application/json"},
|
||||
Schemes: []string{"http"},
|
||||
Params: params,
|
||||
Reader: &GetUsersReader{formats: a.formats},
|
||||
AuthInfo: authInfo,
|
||||
Context: params.Context,
|
||||
Client: params.HTTPClient,
|
||||
}
|
||||
for _, opt := range opts {
|
||||
opt(op)
|
||||
}
|
||||
|
||||
result, err := a.transport.Submit(op)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
success, ok := result.(*GetUsersOK)
|
||||
if ok {
|
||||
return success, nil
|
||||
}
|
||||
// unexpected success response
|
||||
// safeguard: normally, absent a default response, unknown success responses return an error above: so this is a codegen issue
|
||||
msg := fmt.Sprintf("unexpected success response for getUsers: API contract not enforced by server. Client expected to get an error, but got: %T", result)
|
||||
panic(msg)
|
||||
}
|
||||
|
||||
// SetTransport changes the transport on the client
|
||||
func (a *Client) SetTransport(transport runtime.ClientTransport) {
|
||||
a.transport = transport
|
||||
}
|
|
@ -0,0 +1,72 @@
|
|||
// Code generated by go-swagger; DO NOT EDIT.
|
||||
|
||||
// (c) 2012-2020 by Taxnexus, Inc.
|
||||
// All rights reserved worldwide.
|
||||
// Proprietary product; unlicensed use is not allowed
|
||||
|
||||
package auth_models
|
||||
|
||||
// This file was generated by the swagger tool.
|
||||
// Editing this file might prove futile when you re-run the swagger generate command
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/go-openapi/strfmt"
|
||||
"github.com/go-openapi/swag"
|
||||
)
|
||||
|
||||
// Address address
|
||||
//
|
||||
// swagger:model Address
|
||||
type Address struct {
|
||||
|
||||
// City
|
||||
City string `json:"City,omitempty"`
|
||||
|
||||
// Country full name
|
||||
Country string `json:"Country,omitempty"`
|
||||
|
||||
// Country Code
|
||||
CountryCode string `json:"CountryCode,omitempty"`
|
||||
|
||||
// Postal Code
|
||||
PostalCode string `json:"PostalCode,omitempty"`
|
||||
|
||||
// State full name
|
||||
State string `json:"State,omitempty"`
|
||||
|
||||
// State Code
|
||||
StateCode string `json:"StateCode,omitempty"`
|
||||
|
||||
// Street number and name
|
||||
Street string `json:"Street,omitempty"`
|
||||
}
|
||||
|
||||
// Validate validates this address
|
||||
func (m *Address) Validate(formats strfmt.Registry) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// ContextValidate validates this address based on context it is used
|
||||
func (m *Address) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// MarshalBinary interface implementation
|
||||
func (m *Address) MarshalBinary() ([]byte, error) {
|
||||
if m == nil {
|
||||
return nil, nil
|
||||
}
|
||||
return swag.WriteJSON(m)
|
||||
}
|
||||
|
||||
// UnmarshalBinary interface implementation
|
||||
func (m *Address) UnmarshalBinary(b []byte) error {
|
||||
var res Address
|
||||
if err := swag.ReadJSON(b, &res); err != nil {
|
||||
return err
|
||||
}
|
||||
*m = res
|
||||
return nil
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
// Code generated by go-swagger; DO NOT EDIT.
|
||||
|
||||
// (c) 2012-2020 by Taxnexus, Inc.
|
||||
// All rights reserved worldwide.
|
||||
// Proprietary product; unlicensed use is not allowed
|
||||
|
||||
package auth_models
|
||||
|
||||
// This file was generated by the swagger tool.
|
||||
// Editing this file might prove futile when you re-run the swagger generate command
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/go-openapi/strfmt"
|
||||
"github.com/go-openapi/swag"
|
||||
)
|
||||
|
||||
// Error error
|
||||
//
|
||||
// swagger:model Error
|
||||
type Error struct {
|
||||
|
||||
// code
|
||||
Code int32 `json:"Code,omitempty"`
|
||||
|
||||
// fields
|
||||
Fields string `json:"Fields,omitempty"`
|
||||
|
||||
// message
|
||||
Message string `json:"Message,omitempty"`
|
||||
}
|
||||
|
||||
// Validate validates this error
|
||||
func (m *Error) Validate(formats strfmt.Registry) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// ContextValidate validates this error based on context it is used
|
||||
func (m *Error) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// MarshalBinary interface implementation
|
||||
func (m *Error) MarshalBinary() ([]byte, error) {
|
||||
if m == nil {
|
||||
return nil, nil
|
||||
}
|
||||
return swag.WriteJSON(m)
|
||||
}
|
||||
|
||||
// UnmarshalBinary interface implementation
|
||||
func (m *Error) UnmarshalBinary(b []byte) error {
|
||||
var res Error
|
||||
if err := swag.ReadJSON(b, &res); err != nil {
|
||||
return err
|
||||
}
|
||||
*m = res
|
||||
return nil
|
||||
}
|
|
@ -0,0 +1,84 @@
|
|||
// Code generated by go-swagger; DO NOT EDIT.
|
||||
|
||||
// (c) 2012-2020 by Taxnexus, Inc.
|
||||
// All rights reserved worldwide.
|
||||
// Proprietary product; unlicensed use is not allowed
|
||||
|
||||
package auth_models
|
||||
|
||||
// This file was generated by the swagger tool.
|
||||
// Editing this file might prove futile when you re-run the swagger generate command
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/go-openapi/strfmt"
|
||||
"github.com/go-openapi/swag"
|
||||
)
|
||||
|
||||
// ResponseMeta response meta
|
||||
//
|
||||
// swagger:model ResponseMeta
|
||||
type ResponseMeta struct {
|
||||
|
||||
// Microservice Contact Info
|
||||
Contact string `json:"Contact,omitempty"`
|
||||
|
||||
// Copyright Info
|
||||
Copyright string `json:"Copyright,omitempty"`
|
||||
|
||||
// Account Number used for recording transactions
|
||||
ExternalAccount string `json:"ExternalAccount,omitempty"`
|
||||
|
||||
// License Information and Restrictions
|
||||
License string `json:"License,omitempty"`
|
||||
|
||||
// Operation ID
|
||||
OperationID string `json:"OperationID,omitempty"`
|
||||
|
||||
// Request IP Address
|
||||
RequestIP string `json:"RequestIP,omitempty"`
|
||||
|
||||
// Request Type
|
||||
RequestType string `json:"RequestType,omitempty"`
|
||||
|
||||
// Request URL
|
||||
RequestURL string `json:"RequestURL,omitempty"`
|
||||
|
||||
// Data Server Info
|
||||
ServerInfo string `json:"ServerInfo,omitempty"`
|
||||
|
||||
// Data Server Response Time (ms)
|
||||
ServerResponseTime string `json:"ServerResponseTime,omitempty"`
|
||||
|
||||
// Backend Server Timestamp
|
||||
ServerTimestamp string `json:"ServerTimestamp,omitempty"`
|
||||
}
|
||||
|
||||
// Validate validates this response meta
|
||||
func (m *ResponseMeta) Validate(formats strfmt.Registry) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// ContextValidate validates this response meta based on context it is used
|
||||
func (m *ResponseMeta) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// MarshalBinary interface implementation
|
||||
func (m *ResponseMeta) MarshalBinary() ([]byte, error) {
|
||||
if m == nil {
|
||||
return nil, nil
|
||||
}
|
||||
return swag.WriteJSON(m)
|
||||
}
|
||||
|
||||
// UnmarshalBinary interface implementation
|
||||
func (m *ResponseMeta) UnmarshalBinary(b []byte) error {
|
||||
var res ResponseMeta
|
||||
if err := swag.ReadJSON(b, &res); err != nil {
|
||||
return err
|
||||
}
|
||||
*m = res
|
||||
return nil
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
// Code generated by go-swagger; DO NOT EDIT.
|
||||
|
||||
// (c) 2012-2020 by Taxnexus, Inc.
|
||||
// All rights reserved worldwide.
|
||||
// Proprietary product; unlicensed use is not allowed
|
||||
|
||||
package auth_models
|
||||
|
||||
// This file was generated by the swagger tool.
|
||||
// Editing this file might prove futile when you re-run the swagger generate command
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/go-openapi/strfmt"
|
||||
"github.com/go-openapi/swag"
|
||||
)
|
||||
|
||||
// TenantUser Relationship object that connects users to a tenant
|
||||
//
|
||||
// swagger:model TenantUser
|
||||
type TenantUser struct {
|
||||
|
||||
// The makeTenantUser access level for this User
|
||||
AccessLevel string `json:"AccessLevel,omitempty"`
|
||||
|
||||
// Account ID
|
||||
AccountID string `json:"AccountID,omitempty"`
|
||||
|
||||
// Auth0 User ID
|
||||
Auth0UserID string `json:"Auth0UserID,omitempty"`
|
||||
|
||||
// Account Name
|
||||
CompanyName string `json:"CompanyName,omitempty"`
|
||||
|
||||
// Contact ID
|
||||
ContactID string `json:"ContactID,omitempty"`
|
||||
|
||||
// Account
|
||||
ExternalAccount string `json:"ExternalAccount,omitempty"`
|
||||
|
||||
// Tenant active?
|
||||
TenantActive bool `json:"TenantActive,omitempty"`
|
||||
|
||||
// The Tenant ID
|
||||
TenantID string `json:"TenantID,omitempty"`
|
||||
|
||||
// Tenant Name
|
||||
TenantName string `json:"TenantName,omitempty"`
|
||||
|
||||
// Tenant Status
|
||||
TenantStatus string `json:"TenantStatus,omitempty"`
|
||||
|
||||
// Tenant type
|
||||
TenantType string `json:"TenantType,omitempty"`
|
||||
|
||||
// Tenant Version
|
||||
TenantVersion string `json:"TenantVersion,omitempty"`
|
||||
|
||||
// User Email Address
|
||||
UserEmail string `json:"UserEmail,omitempty"`
|
||||
|
||||
// User Full Name
|
||||
UserFullName string `json:"UserFullName,omitempty"`
|
||||
|
||||
// The User ID
|
||||
UserID string `json:"UserID,omitempty"`
|
||||
|
||||
// Username
|
||||
Username string `json:"Username,omitempty"`
|
||||
}
|
||||
|
||||
// Validate validates this tenant user
|
||||
func (m *TenantUser) Validate(formats strfmt.Registry) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// ContextValidate validates this tenant user based on context it is used
|
||||
func (m *TenantUser) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// MarshalBinary interface implementation
|
||||
func (m *TenantUser) MarshalBinary() ([]byte, error) {
|
||||
if m == nil {
|
||||
return nil, nil
|
||||
}
|
||||
return swag.WriteJSON(m)
|
||||
}
|
||||
|
||||
// UnmarshalBinary interface implementation
|
||||
func (m *TenantUser) UnmarshalBinary(b []byte) error {
|
||||
var res TenantUser
|
||||
if err := swag.ReadJSON(b, &res); err != nil {
|
||||
return err
|
||||
}
|
||||
*m = res
|
||||
return nil
|
||||
}
|
|
@ -0,0 +1,388 @@
|
|||
// Code generated by go-swagger; DO NOT EDIT.
|
||||
|
||||
// (c) 2012-2020 by Taxnexus, Inc.
|
||||
// All rights reserved worldwide.
|
||||
// Proprietary product; unlicensed use is not allowed
|
||||
|
||||
package auth_models
|
||||
|
||||
// This file was generated by the swagger tool.
|
||||
// Editing this file might prove futile when you re-run the swagger generate command
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strconv"
|
||||
|
||||
"github.com/go-openapi/errors"
|
||||
"github.com/go-openapi/strfmt"
|
||||
"github.com/go-openapi/swag"
|
||||
)
|
||||
|
||||
// User user
|
||||
//
|
||||
// swagger:model User
|
||||
type User struct {
|
||||
|
||||
// API Key
|
||||
APIKey string `json:"APIKey,omitempty"`
|
||||
|
||||
// About Me
|
||||
AboutMe string `json:"AboutMe,omitempty"`
|
||||
|
||||
// Account ID
|
||||
AccountID string `json:"AccountID,omitempty"`
|
||||
|
||||
// address
|
||||
Address *Address `json:"Address,omitempty"`
|
||||
|
||||
// Alias
|
||||
Alias string `json:"Alias,omitempty"`
|
||||
|
||||
// Auth0 User Id
|
||||
Auth0UserID string `json:"Auth0UserID,omitempty"`
|
||||
|
||||
// Nickname
|
||||
CommunityNickname string `json:"CommunityNickname,omitempty"`
|
||||
|
||||
// Company Name
|
||||
CompanyName string `json:"CompanyName,omitempty"`
|
||||
|
||||
// Contact
|
||||
ContactID string `json:"ContactID,omitempty"`
|
||||
|
||||
// Created User ID
|
||||
CreatedByID string `json:"CreatedByID,omitempty"`
|
||||
|
||||
// Date Created
|
||||
CreatedDate string `json:"CreatedDate,omitempty"`
|
||||
|
||||
// Delegated Approver
|
||||
DelegatedApproverID string `json:"DelegatedApproverID,omitempty"`
|
||||
|
||||
// Department
|
||||
Department string `json:"Department,omitempty"`
|
||||
|
||||
// Division
|
||||
Division string `json:"Division,omitempty"`
|
||||
|
||||
// Email address
|
||||
Email string `json:"Email,omitempty"`
|
||||
|
||||
// Employee Number
|
||||
EmployeeNumber string `json:"EmployeeNumber,omitempty"`
|
||||
|
||||
// Time day ends
|
||||
EndOfDay string `json:"EndOfDay,omitempty"`
|
||||
|
||||
// Environment
|
||||
Environment string `json:"Environment,omitempty"`
|
||||
|
||||
// Extension
|
||||
Extension string `json:"Extension,omitempty"`
|
||||
|
||||
// Account
|
||||
ExternalAccount string `json:"ExternalAccount,omitempty"`
|
||||
|
||||
// Fabric API Key
|
||||
FabricAPIKey string `json:"FabricAPIKey,omitempty"`
|
||||
|
||||
// Fax
|
||||
Fax string `json:"Fax,omitempty"`
|
||||
|
||||
// The first name
|
||||
FirstName string `json:"FirstName,omitempty"`
|
||||
|
||||
// Allow Forecasting
|
||||
ForecastEnabled bool `json:"ForecastEnabled,omitempty"`
|
||||
|
||||
// Full Photo URL
|
||||
FullPhotoURL string `json:"FullPhotoURL,omitempty"`
|
||||
|
||||
// ID
|
||||
ID string `json:"ID,omitempty"`
|
||||
|
||||
// Active
|
||||
IsActive bool `json:"IsActive,omitempty"`
|
||||
|
||||
// Is the user enabled for Communities?
|
||||
IsPortalEnabled bool `json:"IsPortalEnabled,omitempty"`
|
||||
|
||||
// Has Profile Photo
|
||||
IsProphilePhotoActive bool `json:"IsProphilePhotoActive,omitempty"`
|
||||
|
||||
// is system controlled
|
||||
IsSystemControlled bool `json:"IsSystemControlled,omitempty"`
|
||||
|
||||
// IP address of last login
|
||||
LastIP string `json:"LastIP,omitempty"`
|
||||
|
||||
// Last login time
|
||||
LastLogin string `json:"LastLogin,omitempty"`
|
||||
|
||||
// Last Modified User ID
|
||||
LastModifiedByID string `json:"LastModifiedByID,omitempty"`
|
||||
|
||||
// Last Modified Date
|
||||
LastModifiedDate string `json:"LastModifiedDate,omitempty"`
|
||||
|
||||
// The Last Name
|
||||
LastName string `json:"LastName,omitempty"`
|
||||
|
||||
// Number of times user has logged in
|
||||
LoginCount int64 `json:"LoginCount,omitempty"`
|
||||
|
||||
// Manager
|
||||
ManagerID string `json:"ManagerID,omitempty"`
|
||||
|
||||
// Mobile
|
||||
MobilePhone string `json:"MobilePhone,omitempty"`
|
||||
|
||||
// Name
|
||||
Name string `json:"Name,omitempty"`
|
||||
|
||||
// Out of office message
|
||||
OutOfOfficeMessage string `json:"OutOfOfficeMessage,omitempty"`
|
||||
|
||||
// Phone
|
||||
Phone string `json:"Phone,omitempty"`
|
||||
|
||||
// Portal Role Level
|
||||
PortalRole string `json:"PortalRole,omitempty"`
|
||||
|
||||
// Profile
|
||||
ProfileID string `json:"ProfileID,omitempty"`
|
||||
|
||||
// Info Emails
|
||||
ReceivesAdminEmails bool `json:"ReceivesAdminEmails,omitempty"`
|
||||
|
||||
// Admin Info Emails
|
||||
ReceivesAdminInfoEmails bool `json:"ReceivesAdminInfoEmails,omitempty"`
|
||||
|
||||
// Email Sender Address
|
||||
SenderEmail string `json:"SenderEmail,omitempty"`
|
||||
|
||||
// Email Sender Name
|
||||
SenderName string `json:"SenderName,omitempty"`
|
||||
|
||||
// Email Signature
|
||||
Signature string `json:"Signature,omitempty"`
|
||||
|
||||
// Small Photo URL
|
||||
SmallPhotoURL string `json:"SmallPhotoURL,omitempty"`
|
||||
|
||||
// The time day starts
|
||||
StartOfDay string `json:"StartOfDay,omitempty"`
|
||||
|
||||
// Tenant ID associated with this user
|
||||
TenantID string `json:"TenantID,omitempty"`
|
||||
|
||||
// tenant users
|
||||
TenantUsers []*TenantUser `json:"TenantUsers"`
|
||||
|
||||
// Time Zone
|
||||
TimeZone string `json:"TimeZone,omitempty"`
|
||||
|
||||
// Title
|
||||
Title string `json:"Title,omitempty"`
|
||||
|
||||
// Role
|
||||
UserRoleID string `json:"UserRoleID,omitempty"`
|
||||
|
||||
// user roles
|
||||
UserRoles []*UserRole `json:"UserRoles"`
|
||||
|
||||
// User Type
|
||||
UserType string `json:"UserType,omitempty"`
|
||||
|
||||
// Username
|
||||
Username string `json:"Username,omitempty"`
|
||||
}
|
||||
|
||||
// Validate validates this user
|
||||
func (m *User) Validate(formats strfmt.Registry) error {
|
||||
var res []error
|
||||
|
||||
if err := m.validateAddress(formats); err != nil {
|
||||
res = append(res, err)
|
||||
}
|
||||
|
||||
if err := m.validateTenantUsers(formats); err != nil {
|
||||
res = append(res, err)
|
||||
}
|
||||
|
||||
if err := m.validateUserRoles(formats); err != nil {
|
||||
res = append(res, err)
|
||||
}
|
||||
|
||||
if len(res) > 0 {
|
||||
return errors.CompositeValidationError(res...)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *User) validateAddress(formats strfmt.Registry) error {
|
||||
if swag.IsZero(m.Address) { // not required
|
||||
return nil
|
||||
}
|
||||
|
||||
if m.Address != nil {
|
||||
if err := m.Address.Validate(formats); err != nil {
|
||||
if ve, ok := err.(*errors.Validation); ok {
|
||||
return ve.ValidateName("Address")
|
||||
} else if ce, ok := err.(*errors.CompositeError); ok {
|
||||
return ce.ValidateName("Address")
|
||||
}
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *User) validateTenantUsers(formats strfmt.Registry) error {
|
||||
if swag.IsZero(m.TenantUsers) { // not required
|
||||
return nil
|
||||
}
|
||||
|
||||
for i := 0; i < len(m.TenantUsers); i++ {
|
||||
if swag.IsZero(m.TenantUsers[i]) { // not required
|
||||
continue
|
||||
}
|
||||
|
||||
if m.TenantUsers[i] != nil {
|
||||
if err := m.TenantUsers[i].Validate(formats); err != nil {
|
||||
if ve, ok := err.(*errors.Validation); ok {
|
||||
return ve.ValidateName("TenantUsers" + "." + strconv.Itoa(i))
|
||||
} else if ce, ok := err.(*errors.CompositeError); ok {
|
||||
return ce.ValidateName("TenantUsers" + "." + strconv.Itoa(i))
|
||||
}
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *User) validateUserRoles(formats strfmt.Registry) error {
|
||||
if swag.IsZero(m.UserRoles) { // not required
|
||||
return nil
|
||||
}
|
||||
|
||||
for i := 0; i < len(m.UserRoles); i++ {
|
||||
if swag.IsZero(m.UserRoles[i]) { // not required
|
||||
continue
|
||||
}
|
||||
|
||||
if m.UserRoles[i] != nil {
|
||||
if err := m.UserRoles[i].Validate(formats); err != nil {
|
||||
if ve, ok := err.(*errors.Validation); ok {
|
||||
return ve.ValidateName("UserRoles" + "." + strconv.Itoa(i))
|
||||
} else if ce, ok := err.(*errors.CompositeError); ok {
|
||||
return ce.ValidateName("UserRoles" + "." + strconv.Itoa(i))
|
||||
}
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// ContextValidate validate this user based on the context it is used
|
||||
func (m *User) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||
var res []error
|
||||
|
||||
if err := m.contextValidateAddress(ctx, formats); err != nil {
|
||||
res = append(res, err)
|
||||
}
|
||||
|
||||
if err := m.contextValidateTenantUsers(ctx, formats); err != nil {
|
||||
res = append(res, err)
|
||||
}
|
||||
|
||||
if err := m.contextValidateUserRoles(ctx, formats); err != nil {
|
||||
res = append(res, err)
|
||||
}
|
||||
|
||||
if len(res) > 0 {
|
||||
return errors.CompositeValidationError(res...)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *User) contextValidateAddress(ctx context.Context, formats strfmt.Registry) error {
|
||||
|
||||
if m.Address != nil {
|
||||
if err := m.Address.ContextValidate(ctx, formats); err != nil {
|
||||
if ve, ok := err.(*errors.Validation); ok {
|
||||
return ve.ValidateName("Address")
|
||||
} else if ce, ok := err.(*errors.CompositeError); ok {
|
||||
return ce.ValidateName("Address")
|
||||
}
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *User) contextValidateTenantUsers(ctx context.Context, formats strfmt.Registry) error {
|
||||
|
||||
for i := 0; i < len(m.TenantUsers); i++ {
|
||||
|
||||
if m.TenantUsers[i] != nil {
|
||||
if err := m.TenantUsers[i].ContextValidate(ctx, formats); err != nil {
|
||||
if ve, ok := err.(*errors.Validation); ok {
|
||||
return ve.ValidateName("TenantUsers" + "." + strconv.Itoa(i))
|
||||
} else if ce, ok := err.(*errors.CompositeError); ok {
|
||||
return ce.ValidateName("TenantUsers" + "." + strconv.Itoa(i))
|
||||
}
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *User) contextValidateUserRoles(ctx context.Context, formats strfmt.Registry) error {
|
||||
|
||||
for i := 0; i < len(m.UserRoles); i++ {
|
||||
|
||||
if m.UserRoles[i] != nil {
|
||||
if err := m.UserRoles[i].ContextValidate(ctx, formats); err != nil {
|
||||
if ve, ok := err.(*errors.Validation); ok {
|
||||
return ve.ValidateName("UserRoles" + "." + strconv.Itoa(i))
|
||||
} else if ce, ok := err.(*errors.CompositeError); ok {
|
||||
return ce.ValidateName("UserRoles" + "." + strconv.Itoa(i))
|
||||
}
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// MarshalBinary interface implementation
|
||||
func (m *User) MarshalBinary() ([]byte, error) {
|
||||
if m == nil {
|
||||
return nil, nil
|
||||
}
|
||||
return swag.WriteJSON(m)
|
||||
}
|
||||
|
||||
// UnmarshalBinary interface implementation
|
||||
func (m *User) UnmarshalBinary(b []byte) error {
|
||||
var res User
|
||||
if err := swag.ReadJSON(b, &res); err != nil {
|
||||
return err
|
||||
}
|
||||
*m = res
|
||||
return nil
|
||||
}
|
|
@ -0,0 +1,166 @@
|
|||
// Code generated by go-swagger; DO NOT EDIT.
|
||||
|
||||
// (c) 2012-2020 by Taxnexus, Inc.
|
||||
// All rights reserved worldwide.
|
||||
// Proprietary product; unlicensed use is not allowed
|
||||
|
||||
package auth_models
|
||||
|
||||
// This file was generated by the swagger tool.
|
||||
// Editing this file might prove futile when you re-run the swagger generate command
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strconv"
|
||||
|
||||
"github.com/go-openapi/errors"
|
||||
"github.com/go-openapi/strfmt"
|
||||
"github.com/go-openapi/swag"
|
||||
)
|
||||
|
||||
// UserResponse An array Taxnexus user objects
|
||||
//
|
||||
// swagger:model UserResponse
|
||||
type UserResponse struct {
|
||||
|
||||
// data
|
||||
Data []*User `json:"Data"`
|
||||
|
||||
// meta
|
||||
Meta *ResponseMeta `json:"Meta,omitempty"`
|
||||
}
|
||||
|
||||
// Validate validates this user response
|
||||
func (m *UserResponse) Validate(formats strfmt.Registry) error {
|
||||
var res []error
|
||||
|
||||
if err := m.validateData(formats); err != nil {
|
||||
res = append(res, err)
|
||||
}
|
||||
|
||||
if err := m.validateMeta(formats); err != nil {
|
||||
res = append(res, err)
|
||||
}
|
||||
|
||||
if len(res) > 0 {
|
||||
return errors.CompositeValidationError(res...)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *UserResponse) validateData(formats strfmt.Registry) error {
|
||||
if swag.IsZero(m.Data) { // not required
|
||||
return nil
|
||||
}
|
||||
|
||||
for i := 0; i < len(m.Data); i++ {
|
||||
if swag.IsZero(m.Data[i]) { // not required
|
||||
continue
|
||||
}
|
||||
|
||||
if m.Data[i] != nil {
|
||||
if err := m.Data[i].Validate(formats); err != nil {
|
||||
if ve, ok := err.(*errors.Validation); ok {
|
||||
return ve.ValidateName("Data" + "." + strconv.Itoa(i))
|
||||
} else if ce, ok := err.(*errors.CompositeError); ok {
|
||||
return ce.ValidateName("Data" + "." + strconv.Itoa(i))
|
||||
}
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *UserResponse) validateMeta(formats strfmt.Registry) error {
|
||||
if swag.IsZero(m.Meta) { // not required
|
||||
return nil
|
||||
}
|
||||
|
||||
if m.Meta != nil {
|
||||
if err := m.Meta.Validate(formats); err != nil {
|
||||
if ve, ok := err.(*errors.Validation); ok {
|
||||
return ve.ValidateName("Meta")
|
||||
} else if ce, ok := err.(*errors.CompositeError); ok {
|
||||
return ce.ValidateName("Meta")
|
||||
}
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// ContextValidate validate this user response based on the context it is used
|
||||
func (m *UserResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||
var res []error
|
||||
|
||||
if err := m.contextValidateData(ctx, formats); err != nil {
|
||||
res = append(res, err)
|
||||
}
|
||||
|
||||
if err := m.contextValidateMeta(ctx, formats); err != nil {
|
||||
res = append(res, err)
|
||||
}
|
||||
|
||||
if len(res) > 0 {
|
||||
return errors.CompositeValidationError(res...)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *UserResponse) contextValidateData(ctx context.Context, formats strfmt.Registry) error {
|
||||
|
||||
for i := 0; i < len(m.Data); i++ {
|
||||
|
||||
if m.Data[i] != nil {
|
||||
if err := m.Data[i].ContextValidate(ctx, formats); err != nil {
|
||||
if ve, ok := err.(*errors.Validation); ok {
|
||||
return ve.ValidateName("Data" + "." + strconv.Itoa(i))
|
||||
} else if ce, ok := err.(*errors.CompositeError); ok {
|
||||
return ce.ValidateName("Data" + "." + strconv.Itoa(i))
|
||||
}
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *UserResponse) contextValidateMeta(ctx context.Context, formats strfmt.Registry) error {
|
||||
|
||||
if m.Meta != nil {
|
||||
if err := m.Meta.ContextValidate(ctx, formats); err != nil {
|
||||
if ve, ok := err.(*errors.Validation); ok {
|
||||
return ve.ValidateName("Meta")
|
||||
} else if ce, ok := err.(*errors.CompositeError); ok {
|
||||
return ce.ValidateName("Meta")
|
||||
}
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// MarshalBinary interface implementation
|
||||
func (m *UserResponse) MarshalBinary() ([]byte, error) {
|
||||
if m == nil {
|
||||
return nil, nil
|
||||
}
|
||||
return swag.WriteJSON(m)
|
||||
}
|
||||
|
||||
// UnmarshalBinary interface implementation
|
||||
func (m *UserResponse) UnmarshalBinary(b []byte) error {
|
||||
var res UserResponse
|
||||
if err := swag.ReadJSON(b, &res); err != nil {
|
||||
return err
|
||||
}
|
||||
*m = res
|
||||
return nil
|
||||
}
|
|
@ -0,0 +1,90 @@
|
|||
// Code generated by go-swagger; DO NOT EDIT.
|
||||
|
||||
// (c) 2012-2020 by Taxnexus, Inc.
|
||||
// All rights reserved worldwide.
|
||||
// Proprietary product; unlicensed use is not allowed
|
||||
|
||||
package auth_models
|
||||
|
||||
// This file was generated by the swagger tool.
|
||||
// Editing this file might prove futile when you re-run the swagger generate command
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/go-openapi/strfmt"
|
||||
"github.com/go-openapi/swag"
|
||||
)
|
||||
|
||||
// UserRole Relationship object that connects user to a role
|
||||
//
|
||||
// swagger:model UserRole
|
||||
type UserRole struct {
|
||||
|
||||
// Account Id
|
||||
AccountID string `json:"AccountID,omitempty"`
|
||||
|
||||
// Linked role ID
|
||||
Auth0RoleID string `json:"Auth0RoleID,omitempty"`
|
||||
|
||||
// Auth0 User ID
|
||||
Auth0UserID string `json:"Auth0UserID,omitempty"`
|
||||
|
||||
// Company Name
|
||||
CompanyName string `json:"CompanyName,omitempty"`
|
||||
|
||||
// Contact ID
|
||||
ContactID string `json:"ContactID,omitempty"`
|
||||
|
||||
// Account Number
|
||||
ExternalAccount string `json:"ExternalAccount,omitempty"`
|
||||
|
||||
// Role description
|
||||
RoleDescription string `json:"RoleDescription,omitempty"`
|
||||
|
||||
// The Role ID
|
||||
RoleID string `json:"RoleID,omitempty"`
|
||||
|
||||
// Role Name
|
||||
RoleName string `json:"RoleName,omitempty"`
|
||||
|
||||
// User Email Address
|
||||
UserEmail string `json:"UserEmail,omitempty"`
|
||||
|
||||
// User Full Name
|
||||
UserFullName string `json:"UserFullName,omitempty"`
|
||||
|
||||
// The User ID
|
||||
UserID string `json:"UserID,omitempty"`
|
||||
|
||||
// Username
|
||||
Username string `json:"Username,omitempty"`
|
||||
}
|
||||
|
||||
// Validate validates this user role
|
||||
func (m *UserRole) Validate(formats strfmt.Registry) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// ContextValidate validates this user role based on context it is used
|
||||
func (m *UserRole) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// MarshalBinary interface implementation
|
||||
func (m *UserRole) MarshalBinary() ([]byte, error) {
|
||||
if m == nil {
|
||||
return nil, nil
|
||||
}
|
||||
return swag.WriteJSON(m)
|
||||
}
|
||||
|
||||
// UnmarshalBinary interface implementation
|
||||
func (m *UserRole) UnmarshalBinary(b []byte) error {
|
||||
var res UserRole
|
||||
if err := swag.ReadJSON(b, &res); err != nil {
|
||||
return err
|
||||
}
|
||||
*m = res
|
||||
return nil
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package app
|
||||
|
||||
// Address address struct
|
||||
type Address struct {
|
||||
City string
|
||||
Country string
|
||||
CountryCode string
|
||||
PostalCode string
|
||||
State string
|
||||
StateCode string
|
||||
Street string
|
||||
}
|
||||
|
||||
// ToString returns the full address in a string
|
||||
func (obj *Address) ToString() string {
|
||||
return obj.Street + " " +
|
||||
obj.City + " " +
|
||||
obj.State + " " +
|
||||
obj.PostalCode
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package app
|
||||
|
||||
import (
|
||||
"code.tnxs.net/vernonkeenan/lib/api/auth/auth_client/user"
|
||||
"code.tnxs.net/vernonkeenan/lib/api/auth/auth_models"
|
||||
httptransport "github.com/go-openapi/runtime/client"
|
||||
)
|
||||
|
||||
// CheckAPIUser authenticates a User with the auth service
|
||||
//
|
||||
// When called, ChechAPIUser assumes there is an "auth" service account in the
|
||||
// app configuration file.
|
||||
//
|
||||
func CheckAPIUser(token *string) (*User, error) {
|
||||
sugar.Debug("app.CheckAPIUser: 📥")
|
||||
if authUser == nil {
|
||||
authUser = &User{
|
||||
APIKey: GetServiceAccount("auth").APIKey,
|
||||
Auth: httptransport.APIKeyAuth(
|
||||
"X-API-Key",
|
||||
"header",
|
||||
GetServiceAccount("auth").APIKey,
|
||||
),
|
||||
}
|
||||
}
|
||||
params := user.NewGetUsersParams()
|
||||
params.Apikey = token
|
||||
response, err := authClient.User.GetUsers(params, authUser.Auth)
|
||||
if err != nil {
|
||||
sugar.Warnf("app.CheckAPIUser: ❗ Access attempt with invalid API key: %s", *token)
|
||||
return nil, err
|
||||
}
|
||||
var obj *auth_models.User
|
||||
for _, itm := range response.Payload.Data { // single iteration execution
|
||||
obj = itm
|
||||
}
|
||||
sugar.Debugf("app.CheckAPIUser: 📤 👍 ID = %s, Name = %s", obj.ID, obj.Name)
|
||||
return MarshalAuthUserToSwagger(obj), nil
|
||||
}
|
|
@ -0,0 +1,237 @@
|
|||
package app
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"code.tnxs.net/vernonkeenan/lib/app/logger"
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
// Worker describes how many service workers to launch
|
||||
type Worker struct {
|
||||
ChannelSize int64 `mapstructure:"channel_size,omitempty"`
|
||||
WorkerCount int `mapstructure:"worker_count,omitempty"`
|
||||
}
|
||||
|
||||
// CacheSize describes how to chunkify resources
|
||||
type CacheSize struct {
|
||||
Increment int64
|
||||
}
|
||||
|
||||
// Metrics defines the if and where to collect data
|
||||
type Metrics struct {
|
||||
Address string `mapstructure:"address,omitempty"`
|
||||
Enabled bool `mapstructure:"enabled,omitempty"`
|
||||
}
|
||||
|
||||
// Endpoint describes a web URL as a service endpoint
|
||||
type Endpoint struct {
|
||||
BasePath string `mapstructure:"base_path,omitempty"`
|
||||
Host string `mapstructure:"host,omitempty"`
|
||||
Scheme string `mapstructure:"scheme,omitempty"`
|
||||
}
|
||||
|
||||
type Email struct {
|
||||
FromAddress string `mapstructure:"from_address,omitempty"`
|
||||
FromName string `mapstructure:"from_name,omitempty"`
|
||||
ServiceProvider string `mapstructure:"service_provider,omitempty"`
|
||||
SMTPHost string `mapstructure:"smtp_host,omitempty"`
|
||||
SMTPPort string `mapstructure:"smtp_port,omitempty"`
|
||||
SMTPPassword string `mapstructure:"smtp_password,omitempty"`
|
||||
SMTPUsername string `mapstructure:"smtp_username,omitempty"`
|
||||
}
|
||||
|
||||
// Chunk defines cache chunk size
|
||||
type Chunk struct {
|
||||
size int32 `mapstructure:"size,omitempty"`
|
||||
}
|
||||
|
||||
// ServiceAccount defines and external service
|
||||
type ServiceAccount struct {
|
||||
APIKey string `mapstructure:"api_key,omitempty"`
|
||||
ApplicationName string `mapstructure:"application_name,omitempty"`
|
||||
AuthenticationType string `mapstructure:"authentication_type,omitempty"`
|
||||
BackendID string `mapstructure:"backend_id,omitempty"`
|
||||
ClientID string `mapstructure:"client_id,omitempty"`
|
||||
ClientSecret string `mapstructure:"client_secret,omitempty"`
|
||||
DSN string `mapstructure:"dsn,omitempty"`
|
||||
Endpoint Endpoint `mapstructure:"endpoint,omitempty"`
|
||||
Password string `mapstructure:"password,omitempty"`
|
||||
Production bool `mapstructure:"production,omitempty"`
|
||||
SecurityToken string `mapstructure:"security_token,omitempty"`
|
||||
Credentials string `mapstructure:"credentials,omitempty"`
|
||||
Timeout time.Duration `mapstructure:"timeout,omitempty"`
|
||||
Type string `mapstructure:"type,omitempty"`
|
||||
Username string `mapstructure:"username,omitempty"`
|
||||
Vendor string `mapstructure:"vendor,omitempty"`
|
||||
}
|
||||
|
||||
// Configuration defines the config struct
|
||||
type Configuration struct {
|
||||
AppName string `mapstructure:"app_name,omitempty"`
|
||||
BackendID string `mapstructure:"backend_id,omitempty"`
|
||||
BuildEnv string `mapstructure:"build_env,omitempty"`
|
||||
CacheSizes map[string]CacheSize `mapstructure:"cache_sizes,omitempty"`
|
||||
ClusterID string `mapstructure:"cluster_id,omitempty"`
|
||||
Chunks map[string]Chunk `mapstructure:"chunks,omitempty"`
|
||||
DBMS string `mapstructure:"dbms,omitempty"`
|
||||
DBMSHost string `mapstructure:"dbms_host,omitempty"`
|
||||
DBMSName string `mapstructure:"dbms_name,omitempty"`
|
||||
DBMSPassword string `mapstructure:"dbms_password,omitempty"`
|
||||
DBMSUsername string `mapstructure:"dbms_username,omitempty"`
|
||||
DSN string `mapstructure:"dsn,omitempty"`
|
||||
Email map[string]Email `mapstructure:"email,omitempty"`
|
||||
Endpoint Endpoint `mapstructure:"endpoint,omitempty"`
|
||||
Environment string `mapstructure:"environment,omitempty"`
|
||||
GelfURI string `mapstructure:"gelf_uri,omitempty"`
|
||||
GitHubOrgName string `mapstructure:"git_hub_org_name,omitempty"`
|
||||
LogLevel int `mapstructure:"log_level,omitempty"`
|
||||
Metrics Metrics `mapstructure:"metrics,omitempty"`
|
||||
KafkaServer string `mapstructure:"kafka_server,omitempty"`
|
||||
PDFRenderEngine string `mapstructure:"pdf_render_engine,omitempty"`
|
||||
RegistryPriv string `mapstructure:"registry_priv,omitempty"`
|
||||
RegistryPublic string `mapstructure:"registry_public,omitempty"`
|
||||
RepoName string `mapstructure:"repo_name,omitempty"`
|
||||
ServiceAccounts map[string]ServiceAccount `mapstructure:"service_accounts,omitempty"`
|
||||
ShutdownTimeout time.Duration `mapstructure:"shutdown_timeout,omitempty"`
|
||||
Version string `mapstructure:"version,omitempty"`
|
||||
Workers map[string]Worker `mapstructure:"workers,omitempty"`
|
||||
}
|
||||
|
||||
// GetCacheSize returns the named cache size
|
||||
func GetCacheSize(name string) int64 {
|
||||
obj, ok := config.CacheSizes[name]
|
||||
if ok {
|
||||
return obj.Increment
|
||||
}
|
||||
sugar.Warnf("app.GetCacheSize: unknown cache size identifier: %s", name)
|
||||
return 0
|
||||
}
|
||||
|
||||
// GetPDFRenderEngine returns a config file parameter
|
||||
func GetPDFRenderEngine() string {
|
||||
return config.PDFRenderEngine
|
||||
}
|
||||
|
||||
// GetKafkaServer returns a config file parameter
|
||||
func GetKafkaServer() string {
|
||||
if config.KafkaServer != "" {
|
||||
return config.KafkaServer
|
||||
}
|
||||
return "nats.fabric.tnxs.net"
|
||||
}
|
||||
|
||||
// GetChunkSize returns a config file parameter
|
||||
func GetChunkSize(chunkName string) int {
|
||||
obj, ok := config.Chunks[chunkName]
|
||||
if ok {
|
||||
return int(obj.size)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// GetMetricsAddress return the metrics Address value
|
||||
func GetMetricsAddress() string {
|
||||
return config.Metrics.Address
|
||||
}
|
||||
|
||||
// IsMetrics returns TRUE if metrics enabled
|
||||
func IsMetrics() bool {
|
||||
return config.Metrics.Enabled
|
||||
}
|
||||
|
||||
// GetWorker returns the named worker record
|
||||
func GetWorker(name string) *Worker {
|
||||
worker, ok := config.Workers[name]
|
||||
if ok {
|
||||
return &worker
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetEmail returns the named email record
|
||||
func GetEmail(name string) *Email {
|
||||
email, ok := config.Email[name]
|
||||
if ok {
|
||||
return &email
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetServiceAccount returns the named service account struct
|
||||
func GetServiceAccount(name string) *ServiceAccount {
|
||||
serviceaccount, ok := config.ServiceAccounts[name]
|
||||
if ok {
|
||||
return &serviceaccount
|
||||
}
|
||||
sugar.Errorf("app.config: 💣⛔ unknown service account: %s", name)
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetDBMSHost returns the parameter
|
||||
func GetDBMSHost() string {
|
||||
return config.DBMSHost
|
||||
}
|
||||
|
||||
// GetDBMSName returns the parameter
|
||||
func GetDBMSName() string {
|
||||
return config.DBMSName
|
||||
}
|
||||
|
||||
// GetDBMSPassword returns the parameter
|
||||
func GetDBMSPassword() string {
|
||||
return config.DBMSPassword
|
||||
}
|
||||
|
||||
// GetDBMSUsername returns the parameter
|
||||
func GetDBMSUsername() string {
|
||||
return config.DBMSUsername
|
||||
}
|
||||
|
||||
// GetAppName retrieves the Taxnexus App Name for this microservice
|
||||
func GetAppName() string {
|
||||
return config.AppName
|
||||
}
|
||||
|
||||
// GetEnvironment retrieves the current runtime environment
|
||||
func GetEnvironment() string {
|
||||
return config.Environment
|
||||
}
|
||||
|
||||
// GetBackendID retrieves the backend ID
|
||||
func GetBackendID() string {
|
||||
return config.BackendID
|
||||
}
|
||||
|
||||
// GetClusterID retrieves the cluster ID
|
||||
func GetClusterID() string {
|
||||
return config.ClusterID
|
||||
}
|
||||
|
||||
// GetDSN retrieves the Taxnexus database DSN for this microservice
|
||||
func GetDSN() string {
|
||||
return config.DSN
|
||||
}
|
||||
|
||||
// GetDBMS retrieves the DBMS string
|
||||
func GetDBMS() string {
|
||||
return config.DBMS
|
||||
}
|
||||
|
||||
// GetLogLevel returns the Log Level
|
||||
func GetLogLevel() zapcore.Level {
|
||||
switch config.LogLevel {
|
||||
case int(logger.DebugLevel):
|
||||
return logger.DebugLevel
|
||||
case int(logger.InfoLevel):
|
||||
return logger.InfoLevel
|
||||
case int(logger.WarnLevel):
|
||||
return logger.WarnLevel
|
||||
case int(logger.ErrorLevel):
|
||||
return logger.ErrorLevel
|
||||
case int(logger.PanicLevel):
|
||||
return logger.PanicLevel
|
||||
default:
|
||||
return logger.DebugLevel
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package app
|
||||
|
||||
import (
|
||||
"github.com/taxnexus/go-force/force"
|
||||
)
|
||||
|
||||
// InitForce creates a salesforce connection using serviceAccountName
|
||||
func InitForce(serviceAccountName string) *force.API {
|
||||
sugar.Infof("app.initForce: 📥 %s", serviceAccountName)
|
||||
acct := GetServiceAccount(serviceAccountName)
|
||||
theForce, err := force.Create(
|
||||
"v45.0",
|
||||
acct.ClientID,
|
||||
acct.ClientSecret,
|
||||
acct.Username,
|
||||
acct.Password,
|
||||
acct.SecurityToken,
|
||||
"production",
|
||||
)
|
||||
if err != nil {
|
||||
sugar.Errorf("app.InitForce: salesforce error: %s", err.Error())
|
||||
return nil
|
||||
}
|
||||
sugar.Info("app.InitForce: 👍 📤")
|
||||
return theForce
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
// Package logger wraps an external logging package
|
||||
package logger
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
type logger = zap.SugaredLogger
|
||||
|
||||
// DebugLevel is exported (5)
|
||||
var DebugLevel = zapcore.DebugLevel
|
||||
|
||||
// InfoLevel is exported (4)
|
||||
var InfoLevel = zapcore.InfoLevel
|
||||
|
||||
// WarnLevel is exported (3)
|
||||
var WarnLevel = zapcore.WarnLevel
|
||||
|
||||
// ErrorLevel is exported (2)
|
||||
var ErrorLevel = zapcore.ErrorLevel
|
||||
|
||||
// PanicLevel is exported (1)
|
||||
var PanicLevel = zapcore.PanicLevel
|
||||
|
||||
// New creates a new logger and returns it
|
||||
func New(level zapcore.Level) *logger {
|
||||
var theLogger *zap.Logger
|
||||
var err error
|
||||
if level == zapcore.DebugLevel {
|
||||
theLogger, err = zap.NewDevelopment()
|
||||
} else {
|
||||
theLogger, err = zap.NewProduction()
|
||||
}
|
||||
if err != nil {
|
||||
log.Fatal("logger.New: 💣 ⛔ zap logger init fail")
|
||||
}
|
||||
// theLogger.SetLevel
|
||||
defer theLogger.Sync() //nolint:errcheck // it's defered
|
||||
return theLogger.Sugar()
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package app
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
|
||||
// need this for SQL
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
)
|
||||
|
||||
// MyDB is the MySQL handler variable
|
||||
var MyDB *sql.DB
|
||||
|
||||
// InitDB initializes the MySQL database using DSN information from the config file
|
||||
//
|
||||
func InitDB() {
|
||||
var db *sql.DB
|
||||
var err error
|
||||
if GetDBMS() != "mysql" {
|
||||
sugar.Fatalf("app.InitDB: 💣 ⛔ unknown DBMS: %s", GetDBMS())
|
||||
return
|
||||
}
|
||||
db, err = sql.Open("mysql", GetDSN())
|
||||
if err != nil {
|
||||
sugar.Fatalf("app.InitDB: 💣 ⛔ Can't log on to DBMS host: %w", err)
|
||||
return
|
||||
}
|
||||
MyDB = db
|
||||
sugar.Debugf("app.InitDB: 👍 📤 %s", GetDBMS())
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
package app
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"github.com/rs/cors"
|
||||
)
|
||||
|
||||
var (
|
||||
namespace = "collage"
|
||||
|
||||
counter = prometheus.NewCounterVec(prometheus.CounterOpts{
|
||||
Namespace: namespace,
|
||||
Name: "endpoint_request_count",
|
||||
Help: "collage request count.",
|
||||
}, []string{"app", "name", "method", "state"})
|
||||
|
||||
histogram = prometheus.NewHistogramVec(prometheus.HistogramOpts{
|
||||
Namespace: namespace,
|
||||
Name: "endpoint_duration_seconds",
|
||||
Help: "Time taken to execute endpoint.",
|
||||
}, []string{"app", "name", "method", "status"})
|
||||
)
|
||||
|
||||
type metricResponseWriter struct {
|
||||
http.ResponseWriter
|
||||
statusCode int
|
||||
}
|
||||
|
||||
func newMetricResponseWriter(w http.ResponseWriter) *metricResponseWriter {
|
||||
return &metricResponseWriter{w, http.StatusOK}
|
||||
}
|
||||
|
||||
func (lrw *metricResponseWriter) WriteHeader(code int) {
|
||||
lrw.statusCode = code
|
||||
lrw.ResponseWriter.WriteHeader(code)
|
||||
}
|
||||
|
||||
// SetupPrometheusHandler enable CORS, handler metrics
|
||||
func SetupPrometheusHandler(handler http.Handler, app string) http.Handler {
|
||||
sugar.Debug("app.SetupPrometheusHandler: 📥")
|
||||
handleCORS := cors.AllowAll().Handler
|
||||
h := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
start := time.Now()
|
||||
lrw := newMetricResponseWriter(w)
|
||||
handler.ServeHTTP(lrw, r)
|
||||
statusCode := lrw.statusCode
|
||||
duration := time.Since(start)
|
||||
histogram.WithLabelValues(app, r.URL.String(), r.Method, fmt.Sprintf("%d", statusCode)).Observe(duration.Seconds())
|
||||
counter.WithLabelValues(app, r.URL.String(), r.Method, fmt.Sprintf("%d", statusCode)).Inc()
|
||||
})
|
||||
err := prometheus.Register(histogram)
|
||||
if err != nil {
|
||||
sugar.Errorf("app.SetupPrometheusHandler: 💣 ⛔ %s", err.Error())
|
||||
return nil
|
||||
}
|
||||
err = prometheus.Register(counter)
|
||||
if err != nil {
|
||||
sugar.Errorf("app.SetupPrometheusHandler: 💣 ⛔ %s", err.Error())
|
||||
return nil
|
||||
}
|
||||
sugar.Info("app.SetupPrometheusHandler: 👍 📤")
|
||||
return handleCORS(h)
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
// Package app is a utility package
|
||||
package app
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"code.tnxs.net/vernonkeenan/lib/api/auth/auth_client"
|
||||
"code.tnxs.net/vernonkeenan/lib/app/logger"
|
||||
"github.com/spf13/viper"
|
||||
"github.com/taxnexus/go-force/force"
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
// const dateTimeFormat = "2006-01-02T15:04:05-0800"
|
||||
var sugar *zap.SugaredLogger
|
||||
var config = Configuration{}
|
||||
var appViper = viper.New()
|
||||
var configured = false
|
||||
var authClient = auth_client.Default
|
||||
var authUser *User
|
||||
|
||||
// TheForce exports the salesforce interface
|
||||
var TheForce *force.API
|
||||
|
||||
// InitConfig exports the config initialization func
|
||||
func InitConfig(systemName string, initalLogLevel zapcore.Level) {
|
||||
if configured {
|
||||
return
|
||||
}
|
||||
sugar = logger.New(initalLogLevel)
|
||||
sugar.Infof("app.InitConfig: 📥 %s", systemName)
|
||||
appViper.SetConfigType("yaml")
|
||||
appViper.SetConfigName(systemName)
|
||||
appViper.AddConfigPath("/etc/vernonkeenan")
|
||||
appViper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
|
||||
appViper.SetEnvPrefix("vernonkeenan")
|
||||
appViper.AutomaticEnv() // read in environment variables that match
|
||||
err := appViper.ReadInConfig()
|
||||
if err != nil {
|
||||
sugar.Fatalf("app.InitConfig: 💣 ⛔ can't read system config: %w", err)
|
||||
}
|
||||
err = appViper.Unmarshal(&config)
|
||||
if err != nil {
|
||||
sugar.Fatalf("app.InitConfig: 💣 ⛔ can't unmarshal system config: %w", err)
|
||||
}
|
||||
sugar = logger.New(GetLogLevel())
|
||||
sugar.Debugf("app.InitConfig: 👍 📤 serviceAccounts: %d", len(config.ServiceAccounts))
|
||||
configured = true
|
||||
}
|
|
@ -0,0 +1,157 @@
|
|||
package app
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"time"
|
||||
)
|
||||
|
||||
const dateFormat = "2006-01-02"
|
||||
const dateTimeFormat = "2006-01-02T15:04:05-0800"
|
||||
|
||||
// String takes a string and returns a pointer to the string.
|
||||
func String(s string) *string {
|
||||
return &s
|
||||
}
|
||||
|
||||
// Bool takes a bool and returns a pointer to the bool.
|
||||
func Bool(b bool) *bool {
|
||||
return &b
|
||||
}
|
||||
|
||||
// Int64 takes an int64 and returns a pointer to the int64.
|
||||
func Int64(i int64) *int64 {
|
||||
return &i
|
||||
}
|
||||
|
||||
// Int takes an int and returns a pointer to the int.
|
||||
func Int(i int) *int {
|
||||
return &i
|
||||
}
|
||||
|
||||
// Time takes a time.Time and returns a pointer to the time.Time.
|
||||
func Time(t time.Time) *time.Time {
|
||||
return &t
|
||||
}
|
||||
|
||||
// Float64 takes a float64 and returns a pointer to the float64.
|
||||
func Float64(f float64) *float64 {
|
||||
return &f
|
||||
}
|
||||
|
||||
// FieldsAndValues is a struct that holds field names and corresponding values for an object.
|
||||
type FieldsAndValues struct {
|
||||
fieldNames []string
|
||||
fieldValues []interface{}
|
||||
}
|
||||
|
||||
// GetFieldsAndValues takes an object and returns a pointer to a FieldsAndValues struct
|
||||
// containing the field names and corresponding values for each non-zero field,
|
||||
// excluding the "ID" field.
|
||||
func GetFieldsAndValues(obj interface{}) *FieldsAndValues {
|
||||
result := &FieldsAndValues{
|
||||
fieldNames: []string{},
|
||||
fieldValues: []interface{}{},
|
||||
}
|
||||
|
||||
v := reflect.ValueOf(obj).Elem()
|
||||
t := v.Type()
|
||||
|
||||
for i := 0; i < t.NumField(); i++ {
|
||||
field := t.Field(i)
|
||||
fieldValue := v.Field(i)
|
||||
|
||||
if field.Name != "ID" {
|
||||
if !IsZero(fieldValue) {
|
||||
fmt.Printf("DEBUG: Adding field %s with value %v\n", field.Name, fieldValue.Interface())
|
||||
result.fieldNames = append(result.fieldNames, field.Name)
|
||||
result.fieldValues = append(result.fieldValues, fieldValue.Interface())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// IsZero checks if a value is zero or considered zero-like (e.g., empty arrays or slices, nil pointers).
|
||||
// Note that strings, including empty strings, are treated as non-zero values.
|
||||
func IsZero(v reflect.Value) bool {
|
||||
switch v.Kind() {
|
||||
case reflect.String:
|
||||
return false // Treat strings, including empty strings, as non-zero values
|
||||
case reflect.Struct:
|
||||
for i := 0; i < v.NumField(); i++ {
|
||||
if !IsZero(v.Field(i)) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
case reflect.Ptr, reflect.Interface:
|
||||
if v.IsNil() {
|
||||
return true
|
||||
}
|
||||
return IsZero(v.Elem())
|
||||
case reflect.Array, reflect.Slice:
|
||||
return v.Len() == 0
|
||||
default:
|
||||
z := reflect.Zero(v.Type())
|
||||
return v.Interface() == z.Interface()
|
||||
}
|
||||
}
|
||||
|
||||
// SqlDateToString takes a pointer to a sql.NullTime object and returns a pointer to a string
|
||||
// representing the date in dateTimeFormat if the sql.NullTime object is valid, otherwise returns nil.
|
||||
func SqlDateToString(d *sql.NullTime) *string {
|
||||
if d == nil || !d.Valid {
|
||||
return nil
|
||||
}
|
||||
|
||||
dateStr := d.Time.Format(dateTimeFormat)
|
||||
return &dateStr
|
||||
}
|
||||
|
||||
// StringToSqlDate takes a pointer to a string representing a date and returns a pointer to
|
||||
// a sql.NullTime object containing the parsed date if the string is not nil, otherwise returns nil.
|
||||
func StringToSqlDate(s *string) *sql.NullTime {
|
||||
if s == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
parsedTime, err := ParseDateTime(s)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &sql.NullTime{
|
||||
Time: *parsedTime,
|
||||
Valid: true,
|
||||
}
|
||||
}
|
||||
|
||||
// ParseDateTime takes a pointer to a string representing a date and returns a pointer to
|
||||
// a time.Time object containing the parsed date if the string is in one of the supported formats.
|
||||
// If the string is nil or not in a supported format, returns an error.
|
||||
func ParseDateTime(dateStr *string) (*time.Time, error) {
|
||||
if dateStr == nil {
|
||||
return nil, fmt.Errorf("✋members.parseDateTime: dateStr is null")
|
||||
}
|
||||
loc, _ := time.LoadLocation("Local")
|
||||
//
|
||||
formats := []string{dateFormat, dateTimeFormat, time.RFC1123, time.RFC3339}
|
||||
|
||||
var parsedTime *time.Time
|
||||
for _, format := range formats {
|
||||
tm, err := time.ParseInLocation(format, *dateStr, loc)
|
||||
if err == nil {
|
||||
parsedTime = &tm
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if parsedTime == nil {
|
||||
return nil, fmt.Errorf("✋parseDateTime: input string doesn't match any of the expected formats")
|
||||
}
|
||||
|
||||
return parsedTime, nil
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package app
|
||||
|
||||
import "code.tnxs.net/vernonkeenan/lib/api/members/members_models"
|
||||
|
||||
// TenantUserActivityWrapper wraps the object with workflow params
|
||||
type TenantUserActivityWrapper struct {
|
||||
Obj members_models.TenantUser
|
||||
APIKey string
|
||||
SagaID string
|
||||
SagaType string
|
||||
}
|
||||
|
||||
// TenantUser is a first class object type
|
||||
type TenantUser struct {
|
||||
AccessLevel string
|
||||
AccountID string
|
||||
Auth0UserID string
|
||||
CompanyName string
|
||||
ContactID string
|
||||
ExternalAccount string
|
||||
TenantActive bool
|
||||
TenantID string
|
||||
TenantName string
|
||||
TenantStatus string
|
||||
TenantType string
|
||||
TenantVersion string
|
||||
UserEmail string
|
||||
UserFullName string
|
||||
UserID string
|
||||
Username string
|
||||
}
|
|
@ -0,0 +1,134 @@
|
|||
package app
|
||||
|
||||
import (
|
||||
"code.tnxs.net/vernonkeenan/lib/api/auth/auth_models"
|
||||
httptransport "github.com/go-openapi/runtime/client"
|
||||
)
|
||||
|
||||
// MarshalAuthUserToSwagger is a helper function
|
||||
func MarshalAuthUserToSwagger(obj *auth_models.User) *User {
|
||||
var address *Address
|
||||
if obj.Address != nil {
|
||||
address = &Address{
|
||||
City: obj.Address.City,
|
||||
Country: obj.Address.Country,
|
||||
CountryCode: obj.Address.CountryCode,
|
||||
PostalCode: obj.Address.PostalCode,
|
||||
State: obj.Address.State,
|
||||
StateCode: obj.Address.StateCode,
|
||||
Street: obj.Address.Street,
|
||||
}
|
||||
}
|
||||
var userRoles []*UserRole
|
||||
if obj.UserRoles != nil {
|
||||
userRoles = []*UserRole{}
|
||||
for _, itm := range obj.UserRoles {
|
||||
userRoles = append(userRoles, reMarshalUserRole(itm))
|
||||
}
|
||||
}
|
||||
var tenantUsers []*TenantUser
|
||||
if obj.TenantUsers != nil {
|
||||
tenantUsers = []*TenantUser{}
|
||||
for _, itm := range obj.TenantUsers {
|
||||
tenantUsers = append(tenantUsers, reMarshalTenantUser(itm))
|
||||
}
|
||||
}
|
||||
return &User{
|
||||
ID: obj.ID,
|
||||
AboutMe: obj.AboutMe,
|
||||
AccountID: obj.AccountID,
|
||||
Address: address,
|
||||
Alias: obj.Alias,
|
||||
APIKey: obj.APIKey,
|
||||
Auth: httptransport.APIKeyAuth("X-API-Key", "header", obj.APIKey),
|
||||
Auth0UserID: obj.Auth0UserID,
|
||||
CommunityNickname: obj.CommunityNickname,
|
||||
CompanyName: obj.CompanyName,
|
||||
ContactID: obj.ContactID,
|
||||
CreatedByID: obj.CreatedByID,
|
||||
CreatedDate: obj.CreatedDate,
|
||||
DelegatedApproverID: obj.DelegatedApproverID,
|
||||
Department: obj.Department,
|
||||
Division: obj.Division,
|
||||
Email: obj.Email,
|
||||
EmployeeNumber: obj.EmployeeNumber,
|
||||
EndOfDay: obj.EndOfDay,
|
||||
Environment: obj.Environment,
|
||||
Extension: obj.Extension,
|
||||
FabricAPIKey: obj.FabricAPIKey,
|
||||
Fax: obj.Fax,
|
||||
FirstName: obj.FirstName,
|
||||
ForecastEnabled: obj.ForecastEnabled,
|
||||
FullPhotoURL: obj.FullPhotoURL,
|
||||
IsActive: obj.IsActive,
|
||||
IsPortalEnabled: obj.IsPortalEnabled,
|
||||
IsProfilePhotoActive: obj.IsProphilePhotoActive,
|
||||
IsSystemControlled: obj.IsSystemControlled,
|
||||
LastIP: obj.LastIP,
|
||||
LastLogin: obj.LastLogin,
|
||||
LastModifiedByID: obj.LastModifiedByID,
|
||||
LastModifiedDate: obj.LastModifiedDate,
|
||||
LastName: obj.LastName,
|
||||
LoginCount: obj.LoginCount,
|
||||
ManagerID: obj.ManagerID,
|
||||
MobilePhone: obj.MobilePhone,
|
||||
Name: obj.Name,
|
||||
OutOfOfficeMessage: obj.OutOfOfficeMessage,
|
||||
Phone: obj.Phone,
|
||||
PortalRole: obj.PortalRole,
|
||||
ProfileID: obj.ProfileID,
|
||||
ReceivesAdminEmails: obj.ReceivesAdminEmails,
|
||||
ReceivesAdminInfoEmails: obj.ReceivesAdminInfoEmails,
|
||||
SenderEmail: obj.SenderEmail,
|
||||
SenderName: obj.SenderName,
|
||||
Signature: obj.Signature,
|
||||
SmallPhotoURL: obj.SmallPhotoURL,
|
||||
StartOfDay: obj.StartOfDay,
|
||||
ExternalAccount: obj.ExternalAccount,
|
||||
TenantID: obj.TenantID,
|
||||
TenantUsers: tenantUsers,
|
||||
TimeZone: obj.TimeZone,
|
||||
Title: obj.Title,
|
||||
Username: obj.Username,
|
||||
UserRoleID: obj.UserRoleID,
|
||||
UserRoles: userRoles,
|
||||
UserType: obj.UserType,
|
||||
}
|
||||
}
|
||||
func reMarshalUserRole(s *auth_models.UserRole) *UserRole {
|
||||
return &UserRole{
|
||||
AccountID: s.AccountID,
|
||||
Auth0RoleID: s.Auth0RoleID,
|
||||
Auth0UserID: s.Auth0UserID,
|
||||
CompanyName: s.CompanyName,
|
||||
ContactID: s.ContactID,
|
||||
RoleDescription: s.RoleDescription,
|
||||
RoleID: s.RoleID,
|
||||
RoleName: s.RoleName,
|
||||
ExternalAccount: s.ExternalAccount,
|
||||
UserEmail: s.UserEmail,
|
||||
UserFullName: s.UserFullName,
|
||||
UserID: s.UserID,
|
||||
Username: s.Username,
|
||||
}
|
||||
}
|
||||
func reMarshalTenantUser(s *auth_models.TenantUser) *TenantUser {
|
||||
return &TenantUser{
|
||||
AccessLevel: s.AccessLevel,
|
||||
AccountID: s.AccountID,
|
||||
Auth0UserID: s.Auth0UserID,
|
||||
CompanyName: s.CompanyName,
|
||||
ContactID: s.ContactID,
|
||||
ExternalAccount: s.ExternalAccount,
|
||||
TenantActive: s.TenantActive,
|
||||
TenantID: s.TenantID,
|
||||
TenantName: s.TenantName,
|
||||
TenantStatus: s.TenantStatus,
|
||||
TenantType: s.TenantType,
|
||||
TenantVersion: s.TenantVersion,
|
||||
UserEmail: s.UserEmail,
|
||||
UserFullName: s.UserFullName,
|
||||
UserID: s.UserID,
|
||||
Username: s.Username,
|
||||
}
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
package app
|
||||
|
||||
import (
|
||||
"code.tnxs.net/vernonkeenan/lib/api/members/members_models"
|
||||
"github.com/go-openapi/runtime"
|
||||
)
|
||||
|
||||
// UserActivityWrapper wraps the object with workflow params
|
||||
type UserActivityWrapper struct {
|
||||
Obj members_models.User
|
||||
APIKey string
|
||||
SagaID string
|
||||
SagaType string
|
||||
}
|
||||
|
||||
// User is a first class object type
|
||||
type User struct {
|
||||
ID string
|
||||
AboutMe string
|
||||
AccountID string
|
||||
Address *Address
|
||||
Alias string
|
||||
APIKey string
|
||||
Auth runtime.ClientAuthInfoWriter
|
||||
Auth0UserID string
|
||||
CommunityNickname string
|
||||
CompanyName string
|
||||
ContactID string
|
||||
CreatedByID string
|
||||
CreatedDate string
|
||||
DelegatedApproverID string
|
||||
Department string
|
||||
Division string
|
||||
Email string
|
||||
EmployeeNumber string
|
||||
EndOfDay string
|
||||
Environment string
|
||||
Extension string
|
||||
FabricAPIKey string
|
||||
Fax string
|
||||
FirstName string
|
||||
ForecastEnabled bool
|
||||
FullPhotoURL string
|
||||
IsActive bool
|
||||
IsPortalEnabled bool
|
||||
IsProfilePhotoActive bool
|
||||
IsSystemControlled bool
|
||||
LastIP string
|
||||
LastLogin string
|
||||
LastModifiedByID string
|
||||
LastModifiedDate string
|
||||
LastName string
|
||||
LoginCount int64
|
||||
ManagerID string
|
||||
MobilePhone string
|
||||
Name string
|
||||
OutOfOfficeMessage string
|
||||
Phone string
|
||||
PortalRole string
|
||||
ProfileID string
|
||||
ReceivesAdminEmails bool
|
||||
ReceivesAdminInfoEmails bool
|
||||
ReceivesInfoEmails bool
|
||||
SenderEmail string
|
||||
SenderName string
|
||||
Signature string
|
||||
SmallPhotoURL string
|
||||
StartOfDay string
|
||||
ExternalAccount string
|
||||
TenantID string
|
||||
TenantUsers []*TenantUser
|
||||
TimeZone string
|
||||
Title string
|
||||
Username string
|
||||
UserRoles []*UserRole
|
||||
UserRoleID string
|
||||
UserType string
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package app
|
||||
|
||||
import "code.tnxs.net/vernonkeenan/lib/api/members/members_models"
|
||||
|
||||
// UserRoleActivityWrapper wraps the object with workflow params
|
||||
type UserRoleActivityWrapper struct {
|
||||
Obj members_models.UserRole
|
||||
APIKey string
|
||||
SagaID string
|
||||
SagaType string
|
||||
}
|
||||
|
||||
// UserRole is a first class object type
|
||||
type UserRole struct {
|
||||
RoleID string
|
||||
UserID string
|
||||
Auth0RoleID string
|
||||
RoleDescription string
|
||||
RoleName string
|
||||
AccountID string
|
||||
CompanyName string
|
||||
ContactID string
|
||||
UserEmail string
|
||||
UserFullName string
|
||||
ExternalAccount string
|
||||
Username string
|
||||
Auth0UserID string
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
(c) 2012-2020 by Taxnexus, Inc.
|
||||
All rights reserved worldwide.
|
||||
Proprietary product; unlicensed use is not allowed
|
|
@ -0,0 +1,32 @@
|
|||
module code.tnxs.net/vernonkeenan/lib
|
||||
|
||||
go 1.15
|
||||
|
||||
require (
|
||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||
github.com/go-openapi/errors v0.20.3
|
||||
github.com/go-openapi/jsonreference v0.20.2 // indirect
|
||||
github.com/go-openapi/loads v0.21.2 // indirect
|
||||
github.com/go-openapi/runtime v0.25.0
|
||||
github.com/go-openapi/spec v0.20.8 // indirect
|
||||
github.com/go-openapi/strfmt v0.21.7
|
||||
github.com/go-openapi/swag v0.22.3
|
||||
github.com/go-openapi/validate v0.22.1
|
||||
github.com/go-sql-driver/mysql v1.7.0
|
||||
github.com/golang/protobuf v1.5.3 // indirect
|
||||
github.com/pelletier/go-toml v1.9.5 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.0.7 // indirect
|
||||
github.com/prometheus/client_golang v1.14.0
|
||||
github.com/prometheus/common v0.42.0 // indirect
|
||||
github.com/prometheus/procfs v0.9.0 // indirect
|
||||
github.com/rs/cors v1.8.3
|
||||
github.com/spf13/afero v1.9.5 // indirect
|
||||
github.com/spf13/viper v1.15.0
|
||||
github.com/taxnexus/go-force v1.0.7
|
||||
go.opentelemetry.io/otel v1.14.0 // indirect
|
||||
go.uber.org/atomic v1.10.0 // indirect
|
||||
go.uber.org/multierr v1.10.0 // indirect
|
||||
go.uber.org/zap v1.24.0
|
||||
golang.org/x/net v0.8.0 // indirect
|
||||
google.golang.org/protobuf v1.30.0 // indirect
|
||||
)
|
|
@ -0,0 +1,433 @@
|
|||
swagger: "2.0"
|
||||
info:
|
||||
version: 0.3.0
|
||||
title: "auth"
|
||||
description: "Authentication Microservice"
|
||||
termsOfService: "https://salesforcedevops.net/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"
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
schemes:
|
||||
- "http"
|
||||
basePath: "/v1"
|
||||
host: "auth.vernonkeenan.com:8080"
|
||||
consumes:
|
||||
- "application/json"
|
||||
produces:
|
||||
- "application/json"
|
||||
parameters:
|
||||
apiKeyQuery:
|
||||
description: Service account or developer API key
|
||||
in: query
|
||||
name: apikey
|
||||
type: string
|
||||
responses:
|
||||
AccessForbidden:
|
||||
description: "Access forbidden, account lacks access"
|
||||
schema:
|
||||
$ref: "#/definitions/Error"
|
||||
NotFound:
|
||||
description: Resource was not found
|
||||
schema:
|
||||
$ref: "#/definitions/Error"
|
||||
ServerError:
|
||||
description: Server Internal Error
|
||||
schema:
|
||||
$ref: "#/definitions/Error"
|
||||
Unauthorized:
|
||||
description: "Access Unauthorized, invalid API-KEY was used"
|
||||
schema:
|
||||
$ref: "#/definitions/Error"
|
||||
UnprocessableEntity:
|
||||
description: "Unprocessable Entity, likely a bad parameter"
|
||||
schema:
|
||||
$ref: "#/definitions/Error"
|
||||
UserResponse:
|
||||
description: Response with User objects
|
||||
schema:
|
||||
$ref: "#/definitions/UserResponse"
|
||||
paths:
|
||||
/users:
|
||||
get:
|
||||
summary: "Check API Key"
|
||||
operationId: "getUsers"
|
||||
description: "Checks for a valid API key, and returns full user record"
|
||||
parameters:
|
||||
- $ref: "#/parameters/apiKeyQuery"
|
||||
tags:
|
||||
- "User"
|
||||
responses:
|
||||
"200":
|
||||
$ref: "#/responses/UserResponse"
|
||||
"401":
|
||||
$ref: "#/responses/Unauthorized"
|
||||
"403":
|
||||
$ref: "#/responses/AccessForbidden"
|
||||
"404":
|
||||
$ref: "#/responses/NotFound"
|
||||
"422":
|
||||
$ref: "#/responses/UnprocessableEntity"
|
||||
"500":
|
||||
$ref: "#/responses/ServerError"
|
||||
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
|
||||
Error:
|
||||
properties:
|
||||
Code:
|
||||
format: int32
|
||||
type: integer
|
||||
Fields:
|
||||
type: string
|
||||
Message:
|
||||
type: string
|
||||
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
|
||||
RequestIP:
|
||||
description: Request IP Address
|
||||
type: string
|
||||
RequestType:
|
||||
description: Request Type
|
||||
type: string
|
||||
RequestURL:
|
||||
description: Request URL
|
||||
type: string
|
||||
ServerInfo:
|
||||
description: Data Server Info
|
||||
type: string
|
||||
ServerResponseTime:
|
||||
description: Data Server Response Time (ms)
|
||||
type: string
|
||||
ServerTimestamp:
|
||||
description: Backend Server Timestamp
|
||||
type: string
|
||||
ExternalAccount:
|
||||
description: Account Number used for recording transactions
|
||||
type: string
|
||||
type: object
|
||||
User:
|
||||
properties:
|
||||
AboutMe:
|
||||
description: About Me
|
||||
type: string
|
||||
AccountID:
|
||||
description: Account ID
|
||||
type: string
|
||||
Address:
|
||||
$ref: "#/definitions/Address"
|
||||
Alias:
|
||||
description: Alias
|
||||
type: string
|
||||
APIKey:
|
||||
description: API Key
|
||||
type: string
|
||||
Auth0UserID:
|
||||
description: Auth0 User Id
|
||||
type: string
|
||||
CommunityNickname:
|
||||
description: Nickname
|
||||
type: string
|
||||
CompanyName:
|
||||
description: Company Name
|
||||
type: string
|
||||
ContactID:
|
||||
description: Contact
|
||||
type: string
|
||||
CreatedByID:
|
||||
description: Created User ID
|
||||
type: string
|
||||
CreatedDate:
|
||||
description: Date Created
|
||||
type: string
|
||||
DelegatedApproverID:
|
||||
description: Delegated Approver
|
||||
type: string
|
||||
Department:
|
||||
description: Department
|
||||
type: string
|
||||
Division:
|
||||
description: Division
|
||||
type: string
|
||||
Email:
|
||||
description: Email address
|
||||
type: string
|
||||
EmployeeNumber:
|
||||
description: Employee Number
|
||||
type: string
|
||||
EndOfDay:
|
||||
description: Time day ends
|
||||
type: string
|
||||
Environment:
|
||||
description: Environment
|
||||
type: string
|
||||
Extension:
|
||||
description: Extension
|
||||
type: string
|
||||
FabricAPIKey:
|
||||
description: Fabric API Key
|
||||
type: string
|
||||
Fax:
|
||||
description: Fax
|
||||
type: string
|
||||
FirstName:
|
||||
description: The first name
|
||||
type: string
|
||||
ForecastEnabled:
|
||||
description: Allow Forecasting
|
||||
type: boolean
|
||||
FullPhotoURL:
|
||||
description: Full Photo URL
|
||||
type: string
|
||||
ID:
|
||||
description: ID
|
||||
type: string
|
||||
IsActive:
|
||||
description: Active
|
||||
type: boolean
|
||||
IsPortalEnabled:
|
||||
description: Is the user enabled for Communities?
|
||||
type: boolean
|
||||
IsProphilePhotoActive:
|
||||
description: Has Profile Photo
|
||||
type: boolean
|
||||
IsSystemControlled:
|
||||
type: boolean
|
||||
LastModifiedByID:
|
||||
description: Last Modified User ID
|
||||
type: string
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
LastLogin:
|
||||
description: Last login time
|
||||
type: string
|
||||
LastIP:
|
||||
description: IP address of last login
|
||||
type: string
|
||||
LoginCount:
|
||||
description: Number of times user has logged in
|
||||
type: number
|
||||
format: int64
|
||||
LastName:
|
||||
description: The Last Name
|
||||
type: string
|
||||
ManagerID:
|
||||
description: Manager
|
||||
type: string
|
||||
MobilePhone:
|
||||
description: Mobile
|
||||
type: string
|
||||
Name:
|
||||
description: Name
|
||||
type: string
|
||||
OutOfOfficeMessage:
|
||||
description: Out of office message
|
||||
type: string
|
||||
Phone:
|
||||
description: Phone
|
||||
type: string
|
||||
PortalRole:
|
||||
description: Portal Role Level
|
||||
type: string
|
||||
ProfileID:
|
||||
description: Profile
|
||||
type: string
|
||||
ReceivesAdminInfoEmails:
|
||||
description: Admin Info Emails
|
||||
type: boolean
|
||||
ReceivesAdminEmails:
|
||||
description: Info Emails
|
||||
type: boolean
|
||||
SenderEmail:
|
||||
description: Email Sender Address
|
||||
type: string
|
||||
SenderName:
|
||||
description: Email Sender Name
|
||||
type: string
|
||||
Signature:
|
||||
description: Email Signature
|
||||
type: string
|
||||
SmallPhotoURL:
|
||||
description: Small Photo URL
|
||||
type: string
|
||||
StartOfDay:
|
||||
description: The time day starts
|
||||
type: string
|
||||
ExternalAccount:
|
||||
description: Account
|
||||
type: string
|
||||
TenantID:
|
||||
description: Tenant ID associated with this user
|
||||
type: string
|
||||
TimeZone:
|
||||
description: Time Zone
|
||||
type: string
|
||||
Title:
|
||||
description: Title
|
||||
type: string
|
||||
Username:
|
||||
description: Username
|
||||
type: string
|
||||
UserRoleID:
|
||||
description: Role
|
||||
type: string
|
||||
UserType:
|
||||
description: User Type
|
||||
type: string
|
||||
UserRoles:
|
||||
items:
|
||||
$ref: "#/definitions/UserRole"
|
||||
type: array
|
||||
TenantUsers:
|
||||
items:
|
||||
$ref: "#/definitions/TenantUser"
|
||||
type: array
|
||||
type: object
|
||||
UserResponse:
|
||||
description: An array Taxnexus user objects
|
||||
properties:
|
||||
Data:
|
||||
items:
|
||||
$ref: "#/definitions/User"
|
||||
type: array
|
||||
Meta:
|
||||
$ref: "#/definitions/ResponseMeta"
|
||||
type: object
|
||||
UserRole:
|
||||
description: Relationship object that connects user to a role
|
||||
type: object
|
||||
properties:
|
||||
AccountID:
|
||||
description: Account Id
|
||||
type: string
|
||||
Auth0RoleID:
|
||||
description: Linked role ID
|
||||
type: string
|
||||
Auth0UserID:
|
||||
description: Auth0 User ID
|
||||
type: string
|
||||
CompanyName:
|
||||
description: Company Name
|
||||
type: string
|
||||
ContactID:
|
||||
description: Contact ID
|
||||
type: string
|
||||
RoleDescription:
|
||||
description: Role description
|
||||
type: string
|
||||
RoleID:
|
||||
description: The Role ID
|
||||
type: string
|
||||
RoleName:
|
||||
description: Role Name
|
||||
type: string
|
||||
ExternalAccount:
|
||||
description: Account Number
|
||||
type: string
|
||||
UserEmail:
|
||||
description: User Email Address
|
||||
type: string
|
||||
UserFullName:
|
||||
description: User Full Name
|
||||
type: string
|
||||
UserID:
|
||||
description: The User ID
|
||||
type: string
|
||||
Username:
|
||||
description: Username
|
||||
type: string
|
||||
TenantUser:
|
||||
description: Relationship object that connects users to a tenant
|
||||
type: object
|
||||
properties:
|
||||
AccessLevel:
|
||||
description: The makeTenantUser access level for this User
|
||||
type: string
|
||||
Auth0UserID:
|
||||
description: Auth0 User ID
|
||||
type: string
|
||||
AccountID:
|
||||
description: Account ID
|
||||
type: string
|
||||
ContactID:
|
||||
description: Contact ID
|
||||
type: string
|
||||
CompanyName:
|
||||
description: Account Name
|
||||
type: string
|
||||
ExternalAccount:
|
||||
description: Account
|
||||
type: string
|
||||
TenantActive:
|
||||
description: Tenant active?
|
||||
type: boolean
|
||||
TenantID:
|
||||
description: The Tenant ID
|
||||
type: string
|
||||
TenantName:
|
||||
description: Tenant Name
|
||||
type: string
|
||||
TenantStatus:
|
||||
description: Tenant Status
|
||||
type: string
|
||||
TenantType:
|
||||
description: Tenant type
|
||||
type: string
|
||||
TenantVersion:
|
||||
description: Tenant Version
|
||||
type: string
|
||||
Username:
|
||||
description: Username
|
||||
type: string
|
||||
UserEmail:
|
||||
description: User Email Address
|
||||
type: string
|
||||
UserFullName:
|
||||
description: User Full Name
|
||||
type: string
|
||||
UserID:
|
||||
description: The User ID
|
||||
type: string
|
|
@ -0,0 +1,134 @@
|
|||
Account:
|
||||
properties:
|
||||
AnnualRevenue:
|
||||
description: Annual Revenue Estimate
|
||||
format: double
|
||||
type: number
|
||||
x-nullable: true
|
||||
AppExchange:
|
||||
description: Salesforce AppExchange URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Address:
|
||||
$ref: "./address.yaml#/Address"
|
||||
x-nullable: true
|
||||
ClosedDate:
|
||||
description: Closed Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
CloudRevenueTotal:
|
||||
type: number
|
||||
x-nullable: true
|
||||
CloudType:
|
||||
description: The type of cloud company
|
||||
type: string
|
||||
x-nullable: true
|
||||
CloudYear:
|
||||
description: The year company started cloud revenue
|
||||
type: string
|
||||
x-nullable: true
|
||||
CrunchbaseURL:
|
||||
description: Crunchbase URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Description of the account
|
||||
type: string
|
||||
x-nullable: true
|
||||
EIN:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Email:
|
||||
description: Main Account Email
|
||||
type: string
|
||||
x-nullable: true
|
||||
Facebook:
|
||||
description: Company Facebook URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Fax:
|
||||
description: Fax number
|
||||
type: string
|
||||
x-nullable: true
|
||||
FoundedDate:
|
||||
description: Date company founded
|
||||
type: string
|
||||
x-nullable: true
|
||||
IPODate:
|
||||
description: IPO Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Industries:
|
||||
description: All Product and Service Industries
|
||||
type: string
|
||||
x-nullable: true
|
||||
Industry:
|
||||
description: Primary Industry
|
||||
type: string
|
||||
x-nullable: true
|
||||
LinkedIn:
|
||||
description: Company LinkedIn URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Location:
|
||||
description: Headquarters Location Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
description: Company Logo URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Account Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
NumberOfEmployees:
|
||||
description: Employee Count Estimate
|
||||
format: int64
|
||||
type: number
|
||||
x-nullable: true
|
||||
Phone:
|
||||
description: Phone
|
||||
type: string
|
||||
x-nullable: true
|
||||
SIC:
|
||||
description: SIC Code
|
||||
type: string
|
||||
x-nullable: true
|
||||
SICDesc:
|
||||
description: SIC Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
SalesforceFirst:
|
||||
description: A Salesforce-First company?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
Slug:
|
||||
description: Slug
|
||||
type: string
|
||||
x-nullable: true
|
||||
TagLine:
|
||||
description: Company tagline
|
||||
type: string
|
||||
x-nullable: true
|
||||
TickerSymbol:
|
||||
description: Ticker Symbol
|
||||
type: string
|
||||
x-nullable: true
|
||||
Twitter:
|
||||
description: Twitter URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Type:
|
||||
description: Type
|
||||
type: string
|
||||
x-nullable: true
|
||||
Website:
|
||||
description: Website
|
||||
type: string
|
||||
x-nullable: true
|
||||
YearStarted:
|
||||
description: Year Started
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,221 @@
|
|||
Account:
|
||||
properties:
|
||||
AccountNumber:
|
||||
description: Account Number
|
||||
type: string
|
||||
x-nullable: true
|
||||
AccountSource:
|
||||
description: The marketing origin of this account
|
||||
type: string
|
||||
x-nullable: true
|
||||
Active:
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
AnnualRevenue:
|
||||
description: Annual Revenue Estimate
|
||||
format: double
|
||||
type: number
|
||||
x-nullable: true
|
||||
AppExchange:
|
||||
description: Salesforce AppExchange URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
BillingAddress:
|
||||
$ref: "./address.yaml#/Address"
|
||||
x-nullable: true
|
||||
BillingContactID:
|
||||
description: Contact ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
ClosedDate:
|
||||
description: Closed Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
CloudRevenueTotal:
|
||||
type: number
|
||||
x-nullable: true
|
||||
CloudType:
|
||||
description: The type of cloud company
|
||||
type: string
|
||||
x-nullable: true
|
||||
CloudYear:
|
||||
description: The year company started cloud revenue
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
CrunchbaseURL:
|
||||
description: Crunchbase URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Description of the account
|
||||
type: string
|
||||
x-nullable: true
|
||||
EIN:
|
||||
type: string
|
||||
x-nullable: true
|
||||
EarningsCall:
|
||||
description: Earnings Call Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Email:
|
||||
description: Main Account Email
|
||||
type: string
|
||||
x-nullable: true
|
||||
EquityFunding:
|
||||
description: The amount of equity EquityFunding
|
||||
type: number
|
||||
x-nullable: true
|
||||
Facebook:
|
||||
description: Company Facebook URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Fax:
|
||||
description: Fax number
|
||||
type: string
|
||||
x-nullable: true
|
||||
FoundedDate:
|
||||
description: Date company founded
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
description: Account Id
|
||||
type: string
|
||||
IPODate:
|
||||
description: IPO Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Industries:
|
||||
description: Industries
|
||||
type: string
|
||||
x-nullable: true
|
||||
Industry:
|
||||
description: Industry
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
LinkedIn:
|
||||
description: Company LinkedIn URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Location:
|
||||
description: Headquarters Location Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
description: Company Logo URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
MarketCapitalization:
|
||||
description: Market Capitalization
|
||||
type: number
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Account Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
NumberInvestments:
|
||||
description: Number of Investments
|
||||
type: number
|
||||
x-nullable: true
|
||||
NumberOfEmployees:
|
||||
description: Employee Count Estimate
|
||||
format: int64
|
||||
type: number
|
||||
x-nullable: true
|
||||
OwnerID:
|
||||
description: Account Owner User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
Ownership:
|
||||
description: Ownership
|
||||
type: string
|
||||
x-nullable: true
|
||||
ParentID:
|
||||
description: Parent Account
|
||||
type: string
|
||||
x-nullable: true
|
||||
Phone:
|
||||
description: Phone
|
||||
type: string
|
||||
x-nullable: true
|
||||
Publish:
|
||||
description: Publish this record?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
SIC:
|
||||
description: SIC Code
|
||||
type: string
|
||||
x-nullable: true
|
||||
SICDesc:
|
||||
description: SIC Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
SalesforceFirst:
|
||||
description: A Salesforce-First company?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
ShippingAddress:
|
||||
$ref: "./address.yaml#/Address"
|
||||
x-nullable: true
|
||||
ShippingContactID:
|
||||
description: Shipping Contact ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
Site:
|
||||
description: Account Site
|
||||
type: string
|
||||
x-nullable: true
|
||||
Slug:
|
||||
description: Slug
|
||||
type: string
|
||||
x-nullable: true
|
||||
TagLine:
|
||||
description: Company tagline
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: Tenant Identifier
|
||||
type: string
|
||||
x-nullable: true
|
||||
TickerSymbol:
|
||||
description: Ticker Symbol
|
||||
type: string
|
||||
x-nullable: true
|
||||
Twitter:
|
||||
description: Twitter URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Type:
|
||||
description: Type
|
||||
type: string
|
||||
x-nullable: true
|
||||
Website:
|
||||
description: Website
|
||||
type: string
|
||||
x-nullable: true
|
||||
YearStarted:
|
||||
description: Year Started
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,31 @@
|
|||
Address:
|
||||
properties:
|
||||
City:
|
||||
description: City
|
||||
type: string
|
||||
x-nullable: true
|
||||
Country:
|
||||
description: Country full name
|
||||
type: string
|
||||
x-nullable: true
|
||||
CountryCode:
|
||||
description: Country Code
|
||||
type: string
|
||||
x-nullable: true
|
||||
PostalCode:
|
||||
description: Postal Code
|
||||
type: string
|
||||
x-nullable: true
|
||||
State:
|
||||
description: State full name
|
||||
type: string
|
||||
x-nullable: true
|
||||
StateCode:
|
||||
description: State Code
|
||||
type: string
|
||||
x-nullable: true
|
||||
Street:
|
||||
description: Street number and name
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,184 @@
|
|||
Asset:
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
AccountID:
|
||||
description: Account
|
||||
type: string
|
||||
x-nullable: true
|
||||
Address:
|
||||
$ref: "./address.yaml#/Address"
|
||||
AssetLevel:
|
||||
description: Asset Level
|
||||
type: number
|
||||
x-nullable: true
|
||||
AssetProvidedByID:
|
||||
description: Asset Provided By
|
||||
type: string
|
||||
x-nullable: true
|
||||
AssetServicedByID:
|
||||
description: Asset Serviced By
|
||||
type: string
|
||||
x-nullable: true
|
||||
CompanyProductID:
|
||||
description: Company Product
|
||||
type: string
|
||||
x-nullable: true
|
||||
ConsequenceOfFailure:
|
||||
description: Consequence Of Failure
|
||||
type: string
|
||||
x-nullable: true
|
||||
ContactID:
|
||||
description: Contact
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
CurrentAmount:
|
||||
description: Current Amount
|
||||
type: number
|
||||
x-nullable: true
|
||||
CurrentLifecycleEndDate:
|
||||
description: Current Lifecycle End Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
CurrentMrr:
|
||||
description: Current Monthly Recurring Revenue
|
||||
type: number
|
||||
x-nullable: true
|
||||
CurrentQuantity:
|
||||
description: Current Quantity
|
||||
type: number
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
DigitalAssetStatus:
|
||||
description: Digital Asset Status
|
||||
type: string
|
||||
x-nullable: true
|
||||
ExternalIdentifier:
|
||||
description: External Id
|
||||
type: string
|
||||
x-nullable: true
|
||||
HasLifecycleManagement:
|
||||
description: Has Lifecycle Management
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
InstallDate:
|
||||
description: Install Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
IsCompetitorProduct:
|
||||
description: Competitor Asset
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
IsInternal:
|
||||
description: Internal Asset
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified By
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
LocationID:
|
||||
description: Location
|
||||
type: string
|
||||
x-nullable: true
|
||||
MIMEType:
|
||||
description: MIME Type
|
||||
type: string
|
||||
x-nullable: true
|
||||
ManufactureDate:
|
||||
description: Manufacture Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Asset Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
ParentID:
|
||||
description: Parent Asset
|
||||
type: string
|
||||
x-nullable: true
|
||||
Price:
|
||||
description: Price
|
||||
type: number
|
||||
x-nullable: true
|
||||
Product2ID:
|
||||
description: Product
|
||||
type: string
|
||||
x-nullable: true
|
||||
ProductCode:
|
||||
description: Product Code
|
||||
type: string
|
||||
x-nullable: true
|
||||
ProductDescription:
|
||||
description: Product Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
ProductFamily:
|
||||
description: Product Family
|
||||
type: string
|
||||
x-nullable: true
|
||||
PurchaseDate:
|
||||
description: Purchase Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Quantity:
|
||||
description: Quantity
|
||||
type: number
|
||||
x-nullable: true
|
||||
RootAssetID:
|
||||
description: Root Asset
|
||||
type: string
|
||||
x-nullable: true
|
||||
SerialNumber:
|
||||
description: Serial Number
|
||||
type: string
|
||||
x-nullable: true
|
||||
Status:
|
||||
description: Status
|
||||
type: string
|
||||
x-nullable: true
|
||||
StatusReason:
|
||||
description: Status Reason
|
||||
type: string
|
||||
x-nullable: true
|
||||
StockKeepingUnit:
|
||||
description: Product SKU
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: Tenant ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
TotalLifecycleAmount:
|
||||
description: Total Lifecycle Amount
|
||||
type: number
|
||||
x-nullable: true
|
||||
Type:
|
||||
description: Type
|
||||
type: string
|
||||
x-nullable: true
|
||||
URL:
|
||||
description: URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
UsageEndDate:
|
||||
description: Usage End Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,22 @@
|
|||
Attendee:
|
||||
properties:
|
||||
CheckinStatus:
|
||||
type: integer
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
EventID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
type: string
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TicketID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,29 @@
|
|||
Certificate:
|
||||
properties:
|
||||
CertificateTemplate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CourseID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
type: string
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Title:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,70 @@
|
|||
Cluster:
|
||||
properties:
|
||||
CreatedByID:
|
||||
description: Created By
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
Environment:
|
||||
description: Environment
|
||||
type: string
|
||||
x-nullable: true
|
||||
Gateway:
|
||||
description: Gateway
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
IPAddress:
|
||||
description: IP Address
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified By
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Cluster Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
OwnerID:
|
||||
description: Owner
|
||||
type: string
|
||||
x-nullable: true
|
||||
Ref:
|
||||
description: External Reference
|
||||
type: string
|
||||
x-nullable: true
|
||||
Status:
|
||||
description: Status
|
||||
type: string
|
||||
x-nullable: true
|
||||
Subnet:
|
||||
description: Subnet
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: The ID of the tenant who owns this Database
|
||||
type: string
|
||||
x-nullable: true
|
||||
Type:
|
||||
description: Type
|
||||
type: string
|
||||
x-nullable: true
|
||||
Zone:
|
||||
description: Zone
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,84 @@
|
|||
CompanyProduct:
|
||||
description: A software product or service vended by a Company
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
AccountID:
|
||||
description: ID of the Company that owns this Product
|
||||
type: string
|
||||
AppExchange:
|
||||
description: Salesforce AppExchange URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Description of product
|
||||
type: string
|
||||
x-nullable: true
|
||||
FullDescription:
|
||||
description: Full Description of product
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
description: Image Alt Text
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
description: Image URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
description: Logo
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Product Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
ProductVideoID:
|
||||
description: Product Video ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
Published:
|
||||
description: Published
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
SalesforceSpecific:
|
||||
description: Salesforce Specific
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
Slug:
|
||||
description: Slug
|
||||
type: string
|
||||
x-nullable: true
|
||||
TagLine:
|
||||
description: TagLine
|
||||
type: string
|
||||
x-nullable: true
|
||||
URL:
|
||||
description: Website
|
||||
type: string
|
||||
x-nullable: true
|
||||
Industries:
|
||||
description: Industries
|
||||
items:
|
||||
$ref: "./industry.yaml#/Industry"
|
||||
type: array
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,78 @@
|
|||
CompanyService:
|
||||
description: A service performed by a Company
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
AccountID:
|
||||
description: ID of the Company that owns this Service
|
||||
type: string
|
||||
AppExchange:
|
||||
description: Salesforce AppExchange URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Description of service
|
||||
type: string
|
||||
x-nullable: true
|
||||
FullDescription:
|
||||
description: Full Description of service
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
description: Image Alt Text
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
description: Image URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
description: Logo
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Service Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
Published:
|
||||
description: Published
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
SalesforceSpecific:
|
||||
description: Salesforce Specific
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
ServiceVideoID:
|
||||
description: Service Video ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
Slug:
|
||||
description: Slug
|
||||
type: string
|
||||
x-nullable: true
|
||||
TagLine:
|
||||
description: Tag Line
|
||||
type: string
|
||||
x-nullable: true
|
||||
URL:
|
||||
description: URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,177 @@
|
|||
Company:
|
||||
properties:
|
||||
ID:
|
||||
description: Company Id
|
||||
type: string
|
||||
AccountNumber:
|
||||
description: Company Number
|
||||
type: string
|
||||
x-nullable: true
|
||||
AccountSource:
|
||||
description: The marketing origin of this Company
|
||||
type: string
|
||||
x-nullable: true
|
||||
Active:
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
AnnualRevenue:
|
||||
description: Annual Revenue Estimate
|
||||
format: double
|
||||
type: number
|
||||
x-nullable: true
|
||||
ListingAddress:
|
||||
$ref: "./address.yaml#/Address"
|
||||
x-nullable: true
|
||||
CloudRevenueTotal:
|
||||
type: number
|
||||
x-nullable: true
|
||||
CloudType:
|
||||
description: The type of cloud company
|
||||
type: string
|
||||
x-nullable: true
|
||||
CloudYear:
|
||||
description: The year company started cloud revenue
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Description of the Company
|
||||
type: string
|
||||
x-nullable: true
|
||||
EarningsCall:
|
||||
description: Earnings Call Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Email:
|
||||
description: Main Company Email
|
||||
type: string
|
||||
x-nullable: true
|
||||
EquityFunding:
|
||||
description: The amount of equity EquityFunding
|
||||
type: number
|
||||
x-nullable: true
|
||||
Facebook:
|
||||
description: Company Facebook URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Fax:
|
||||
description: Fax number
|
||||
type: string
|
||||
x-nullable: true
|
||||
FoundedDate:
|
||||
description: Date company founded
|
||||
type: string
|
||||
x-nullable: true
|
||||
IPODate:
|
||||
description: IPO Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Industries:
|
||||
description: Industries
|
||||
type: string
|
||||
x-nullable: true
|
||||
Industry:
|
||||
description: Industry
|
||||
type: string
|
||||
x-nullable: true
|
||||
LinkedIn:
|
||||
description: Company LinkedIn URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Location:
|
||||
description: Headquarters Location Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
description: Company Logo URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
MarketCapitalization:
|
||||
description: Market Capitalization
|
||||
type: number
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Company Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
NumberInvestments:
|
||||
description: Number of Investments
|
||||
type: number
|
||||
x-nullable: true
|
||||
NumberOfEmployees:
|
||||
description: Employee Count Estimate
|
||||
format: int64
|
||||
type: number
|
||||
x-nullable: true
|
||||
Ownership:
|
||||
description: Ownership
|
||||
type: string
|
||||
x-nullable: true
|
||||
ParentID:
|
||||
description: Parent Company
|
||||
type: string
|
||||
x-nullable: true
|
||||
Phone:
|
||||
description: Phone
|
||||
type: string
|
||||
x-nullable: true
|
||||
Publish:
|
||||
description: Publish this record?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
SalesforceFirst:
|
||||
description: A Salesforce-First company?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
Slug:
|
||||
description: Slug
|
||||
type: string
|
||||
x-nullable: true
|
||||
TagLine:
|
||||
description: Company tagline
|
||||
type: string
|
||||
x-nullable: true
|
||||
TickerSymbol:
|
||||
description: Ticker Symbol
|
||||
type: string
|
||||
x-nullable: true
|
||||
Twitter:
|
||||
description: Twitter URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
Type:
|
||||
description: Type
|
||||
type: string
|
||||
x-nullable: true
|
||||
Website:
|
||||
description: Website
|
||||
type: string
|
||||
x-nullable: true
|
||||
YearStarted:
|
||||
description: Year Started
|
||||
type: string
|
||||
x-nullable: true
|
||||
CompanyProducts:
|
||||
x-nullable: true
|
||||
description: Company Products
|
||||
type: array
|
||||
items:
|
||||
$ref: "./company-product.yaml#/CompanyProduct"
|
||||
FinancialStatements:
|
||||
x-nullable: true
|
||||
description: Financial Statements
|
||||
type: array
|
||||
items:
|
||||
$ref: "./financial-statement.yaml#/FinancialStatement"
|
||||
IndustryCompanies:
|
||||
x-nullable: true
|
||||
description: Similar Companies
|
||||
type: array
|
||||
items:
|
||||
$ref: "./industry-company.yaml#/IndustryCompany"
|
||||
type: object
|
|
@ -0,0 +1,165 @@
|
|||
Contact:
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
AccountID:
|
||||
description: The primary account ID of this contact
|
||||
type: string
|
||||
x-nullable: true
|
||||
AssistantName:
|
||||
description: Assistant Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
AssistantPhone:
|
||||
description: Asst. Phone
|
||||
type: string
|
||||
x-nullable: true
|
||||
BirthDate:
|
||||
description: Birthdate
|
||||
type: string
|
||||
x-nullable: true
|
||||
CrunchbaseURL:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Department:
|
||||
description: Department
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
DoNotCall:
|
||||
description: Do Not Call?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
Email:
|
||||
description: Email address
|
||||
type: string
|
||||
x-nullable: true
|
||||
EmailBounceDate:
|
||||
description: Email Bounce Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
EmailBouncedReason:
|
||||
description: Email Bounce Reason
|
||||
type: string
|
||||
x-nullable: true
|
||||
Facebook:
|
||||
description: Facebook Page
|
||||
type: string
|
||||
x-nullable: true
|
||||
Fax:
|
||||
description: Fax Number
|
||||
type: string
|
||||
x-nullable: true
|
||||
FirstName:
|
||||
description: First Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
HasOptedOutOfEmail:
|
||||
description: Email Opt Out
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
HasOptedOutOfFax:
|
||||
description: Fax Opt Out
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
HomePhone:
|
||||
description: Home Phone
|
||||
type: string
|
||||
x-nullable: true
|
||||
IsEmailBounced:
|
||||
description: Does this contact have bounced emails?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastName:
|
||||
description: Last Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
LeadSource:
|
||||
description: Lead Source
|
||||
type: string
|
||||
x-nullable: true
|
||||
LinkedIn:
|
||||
description: LinkedIn Page
|
||||
type: string
|
||||
x-nullable: true
|
||||
MailingAddress:
|
||||
$ref: "./address.yaml#/Address"
|
||||
MobilePhone:
|
||||
description: Mobile Phone
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Full Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
NumberInvestments:
|
||||
type: number
|
||||
x-nullable: true
|
||||
OtherAddress:
|
||||
$ref: "./address.yaml#/Address"
|
||||
x-nullable: true
|
||||
OtherPhone:
|
||||
description: Other Phone
|
||||
type: string
|
||||
x-nullable: true
|
||||
OwnerID:
|
||||
description: The User ID of the user who owns this Contact
|
||||
type: string
|
||||
x-nullable: true
|
||||
PersonalEmail:
|
||||
description: Personal Email Address for this Contact
|
||||
type: string
|
||||
x-nullable: true
|
||||
Phone:
|
||||
description: Phone Number
|
||||
type: string
|
||||
x-nullable: true
|
||||
PhotoURL:
|
||||
description: URL of a photograph of this User
|
||||
type: string
|
||||
x-nullable: true
|
||||
ReportsToID:
|
||||
description: Reports To
|
||||
type: string
|
||||
x-nullable: true
|
||||
Salutation:
|
||||
description: Salutation
|
||||
type: string
|
||||
x-nullable: true
|
||||
Slug:
|
||||
description: Slug
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: Tenant Identifier
|
||||
type: string
|
||||
x-nullable: true
|
||||
Title:
|
||||
description: Contact Title
|
||||
type: string
|
||||
x-nullable: true
|
||||
Twitter:
|
||||
description: Twitter URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,124 @@
|
|||
Contract:
|
||||
properties:
|
||||
AccountID:
|
||||
description: Account
|
||||
type: string
|
||||
x-nullable: true
|
||||
ActivatedByID:
|
||||
description: Activated By
|
||||
type: string
|
||||
x-nullable: true
|
||||
ActivatedDate:
|
||||
description: Activated Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
BillingAddress:
|
||||
$ref: "./address.yaml#/Address"
|
||||
description: Billing Address
|
||||
BillingContactID:
|
||||
description: Billing Contact
|
||||
type: string
|
||||
x-nullable: true
|
||||
CompanySignedDate:
|
||||
description: Company Signed Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
CompanySignedID:
|
||||
description: Company Signed By
|
||||
type: string
|
||||
x-nullable: true
|
||||
ContractNumber:
|
||||
description: Contract Number
|
||||
type: string
|
||||
x-nullable: true
|
||||
ContractTerm:
|
||||
description: Contract Term (months)
|
||||
type: number
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
CustomerSignedDate:
|
||||
description: Customer Signed Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
CustomerSignedID:
|
||||
description: Customer Signed By
|
||||
type: string
|
||||
x-nullable: true
|
||||
CustomerSignedTitle:
|
||||
description: Customer Signed Title
|
||||
type: string
|
||||
x-nullable: true
|
||||
DefaultEndUserID:
|
||||
description: End User
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
EndDate:
|
||||
description: Contract End Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
EndUserID:
|
||||
description: End User
|
||||
type: string
|
||||
x-nullable: true
|
||||
HourlyRate:
|
||||
description: Hourly Rate
|
||||
type: number
|
||||
x-nullable: true
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Contract Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
PaymentMethodID:
|
||||
description: Payment Method
|
||||
type: string
|
||||
x-nullable: true
|
||||
PaymentTerms:
|
||||
description: Payment Terms
|
||||
type: string
|
||||
x-nullable: true
|
||||
Perpetual:
|
||||
description: Perpetual Agreement?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
ShippingAddress:
|
||||
$ref: "./address.yaml#/Address"
|
||||
description: Shipping Address
|
||||
ShippingContactID:
|
||||
description: Shipping Contact
|
||||
type: string
|
||||
x-nullable: true
|
||||
StartDate:
|
||||
description: Contract Start Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Status:
|
||||
description: Status
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: Tenant Identifier
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,47 @@
|
|||
CourseLesson:
|
||||
properties:
|
||||
ID:
|
||||
type: string
|
||||
AssetID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Content:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Order:
|
||||
type: integer
|
||||
x-nullable: true
|
||||
Slug:
|
||||
type: string
|
||||
x-nullable: true
|
||||
SectionID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Title:
|
||||
type: string
|
||||
x-nullable: true
|
||||
VideoURL:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,45 @@
|
|||
CourseSection:
|
||||
properties:
|
||||
ID:
|
||||
type: string
|
||||
Content:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CourseID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Order:
|
||||
type: integer
|
||||
x-nullable: true
|
||||
Slug:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Title:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Lessons:
|
||||
items:
|
||||
$ref: "./course-lesson.yaml#/CourseLesson"
|
||||
type: array
|
||||
type: object
|
|
@ -0,0 +1,51 @@
|
|||
Course:
|
||||
properties:
|
||||
ID:
|
||||
type: string
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Fulldescription:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
type: string
|
||||
x-nullable: true
|
||||
InstructorID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Price:
|
||||
type: number
|
||||
x-nullable: true
|
||||
Slug:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TemplateID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Title:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Sections:
|
||||
items:
|
||||
$ref: "./course-section.yaml#/CourseSection"
|
||||
type: array
|
||||
type: object
|
|
@ -0,0 +1,55 @@
|
|||
Database:
|
||||
description: A Database provisioned and owned by a Tenant
|
||||
properties:
|
||||
Active:
|
||||
description: Is this database active?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
ClusterID:
|
||||
description: The ID of the Cluster in which this database is deployed
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
DSN:
|
||||
description: Database connection string
|
||||
type: string
|
||||
x-nullable: true
|
||||
DatabaseName:
|
||||
description: The name of the physical database in the cluster
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
LastModifiedByID:
|
||||
description: Last Modified By
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modifed Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Microservices:
|
||||
description: List of microservices implemented by this Database
|
||||
type: string
|
||||
x-nullable: true
|
||||
Status:
|
||||
description: The current status of this Tenant
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: The ID of the tenant who owns this Database
|
||||
type: string
|
||||
x-nullable: true
|
||||
Type:
|
||||
description: The type of Database (mysql, etc)
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,9 @@
|
|||
DeleteResponse:
|
||||
properties:
|
||||
Data:
|
||||
items:
|
||||
$ref: "./message.yaml#/Message"
|
||||
type: array
|
||||
Meta:
|
||||
$ref: "./response-meta.yaml#/ResponseMeta"
|
||||
type: object
|
|
@ -0,0 +1,90 @@
|
|||
Document:
|
||||
description: A document ingested into SalesforceDevops.net
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
AccessControlList:
|
||||
description: Who can access this document?
|
||||
type: string
|
||||
x-nullable: true
|
||||
Author:
|
||||
description: The author of the document
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
DocumentDate:
|
||||
description: The date of the document
|
||||
type: string
|
||||
x-nullable: true
|
||||
FolderID:
|
||||
description: The ID of the folder in which this document is stored
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
description: Alt text for the image
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
description: Cover image for this document
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified By
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modifed Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Language:
|
||||
description: The language of the document
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
description: Logo for this document
|
||||
type: string
|
||||
x-nullable: true
|
||||
ObjectID:
|
||||
description: The ID of the object who owns this document
|
||||
type: string
|
||||
x-nullable: true
|
||||
ObjectType:
|
||||
description: The type of object who owns this document
|
||||
type: string
|
||||
x-nullable: true
|
||||
Source:
|
||||
description: Where did the document come from?
|
||||
type: string
|
||||
x-nullable: true
|
||||
Status:
|
||||
description: Ingestion status of this document
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Title:
|
||||
description: Document Title
|
||||
type: string
|
||||
x-nullable: true
|
||||
URL:
|
||||
description: Source URL for document ingestion
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
description: The ID of the user who owns this document
|
||||
type: string
|
||||
x-nullable: true
|
||||
Version:
|
||||
description: Version of the document
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,71 @@
|
|||
EmailMessage:
|
||||
properties:
|
||||
BCCAddress:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CCAddress:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
FromAddress:
|
||||
type: string
|
||||
x-nullable: true
|
||||
FromName:
|
||||
type: string
|
||||
x-nullable: true
|
||||
HasAttachment:
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
HTML:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Headers:
|
||||
$ref: "./headers.yaml#/Headers"
|
||||
x-nullable: true
|
||||
ID:
|
||||
type: string
|
||||
Incoming:
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
MessageDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
MessageIdentifier:
|
||||
type: string
|
||||
x-nullable: true
|
||||
OutgoingEmailID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ReplyToEmailMessageID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Status:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Subject:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TextBody:
|
||||
x-nullable: true
|
||||
type: string
|
||||
ThreadIdentifier:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ToAddress:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ToName:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,29 @@
|
|||
Enrollment:
|
||||
properties:
|
||||
Completed:
|
||||
type: integer
|
||||
x-nullable: true
|
||||
CourseID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
EnrollmentDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
type: string
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,10 @@
|
|||
Error:
|
||||
properties:
|
||||
Code:
|
||||
format: int64
|
||||
type: integer
|
||||
Fields:
|
||||
type: string
|
||||
Message:
|
||||
type: string
|
||||
type: object
|
|
@ -0,0 +1,35 @@
|
|||
EventCategory:
|
||||
type: object
|
||||
properties:
|
||||
ID:
|
||||
type: string
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Slug:
|
||||
type: string
|
||||
x-nullable: true
|
|
@ -0,0 +1,64 @@
|
|||
Event:
|
||||
properties:
|
||||
ID:
|
||||
type: string
|
||||
AccountID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Capacity:
|
||||
type: integer
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
EventCategory:
|
||||
$ref: "./event-category.yaml#/EventCategory"
|
||||
EventCategoryID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
type: string
|
||||
x-nullable: true
|
||||
EndDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Location:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Online:
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
OrganizerUserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
RegURL:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Slug:
|
||||
type: string
|
||||
x-nullable: true
|
||||
StartDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Title:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,44 @@
|
|||
Factor:
|
||||
description: A Factor of analysis within a research topic
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Topic Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
Name:
|
||||
description: Factor Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
Observations:
|
||||
description: The list of Observations used to analyze this industry
|
||||
items:
|
||||
$ref: "./observation.yaml#/Observation"
|
||||
type: array
|
||||
x-nullable: true
|
||||
Slug:
|
||||
description: The slug of the corresponding page on the CMS
|
||||
type: string
|
||||
x-nullable: true
|
||||
TopicID:
|
||||
description: The ID of the Topic that owns this Factor
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,38 @@
|
|||
Favorite:
|
||||
properties:
|
||||
ID:
|
||||
type: string
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
type: string
|
||||
x-nullable: true
|
||||
FavoriteType:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Order:
|
||||
type: integer
|
||||
x-nullable: true
|
||||
Path:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,52 @@
|
|||
FinancialStatement:
|
||||
type: object
|
||||
description: A financial statement for a company
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
AccessNumber:
|
||||
description: EDGAR Access Number
|
||||
type: string
|
||||
AccountID:
|
||||
description: Account ID
|
||||
type: string
|
||||
CloudRevenue:
|
||||
description: Cloud Revenue
|
||||
type: number
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
Description:
|
||||
description: Description
|
||||
type: string
|
||||
EdgarURL:
|
||||
description: EDGAR URL
|
||||
type: string
|
||||
FilingType:
|
||||
description: Filing Type
|
||||
type: string
|
||||
GrossProfit:
|
||||
description: Gross Profit
|
||||
type: number
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
NetIncome:
|
||||
description: Net Income
|
||||
type: number
|
||||
PeriodEndDate:
|
||||
description: Period End Date
|
||||
type: string
|
||||
TotalRevenue:
|
||||
description: Total Revenue
|
||||
type: number
|
||||
Year:
|
||||
description: Year
|
||||
type: string
|
|
@ -0,0 +1,11 @@
|
|||
Headers:
|
||||
type: object
|
||||
properties:
|
||||
Key:
|
||||
type: string
|
||||
Values:
|
||||
items:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: array
|
|
@ -0,0 +1,25 @@
|
|||
IndustryCompany:
|
||||
description: Junction object between Industry and Company
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
AccountID:
|
||||
type: string
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
IndustryID:
|
||||
type: string
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
Path:
|
||||
type: string
|
||||
type: object
|
|
@ -0,0 +1,33 @@
|
|||
IndustryProduct:
|
||||
description: Junction object between Industry and CompanyProduct
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
CompanyProduct:
|
||||
$ref: "./company-product.yaml#/CompanyProduct"
|
||||
CompanyProductID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Industry:
|
||||
$ref: "./industry.yaml#/Industry"
|
||||
IndustryID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,33 @@
|
|||
IndustryService:
|
||||
description: Junction Object bewtwen Industry and CompanyService
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
CompanyService:
|
||||
$ref: "./company-service.yaml#/CompanyService"
|
||||
CompanyServiceID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Industry:
|
||||
$ref: "./industry.yaml#/Industry"
|
||||
IndustryID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,83 @@
|
|||
Industry:
|
||||
description: An industry that is being researched
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
CompanyProducts:
|
||||
description: The list of Products in this industry
|
||||
items:
|
||||
$ref: "./company-product.yaml#/CompanyProduct"
|
||||
type: array
|
||||
x-nullable: true
|
||||
CompanyServices:
|
||||
description: The list of Services in this industry
|
||||
items:
|
||||
$ref: "./company-service.yaml#/CompanyService"
|
||||
type: array
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Industry Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
description: Image Alt Text
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
description: Image URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Level:
|
||||
description: The hierarchical level of this Industry
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
description: Logo
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Industry Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
ParentIndustryID:
|
||||
description: The ID of the Parent Industry
|
||||
type: string
|
||||
x-nullable: true
|
||||
Path:
|
||||
description: The full path of this industry, including Parent
|
||||
type: string
|
||||
x-nullable: true
|
||||
ProductCategory:
|
||||
description: Is this industry a product category?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
ServiceCategory:
|
||||
description: Is this industry a service category?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
Slug:
|
||||
description: The CMS Slug for this Industry
|
||||
type: string
|
||||
x-nullable: true
|
||||
TagLine:
|
||||
description: TagLine
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,9 @@
|
|||
InvalidError:
|
||||
allOf:
|
||||
- $ref: "./error.yaml#/Error"
|
||||
- properties:
|
||||
details:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
|
@ -0,0 +1,40 @@
|
|||
Invoice:
|
||||
properties:
|
||||
Amount:
|
||||
type: number
|
||||
CourseID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Currency:
|
||||
type: string
|
||||
x-nullable: true
|
||||
DueDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
type: string
|
||||
Invoicenumber:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Status:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TransactionID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,35 @@
|
|||
IssuedCertificate:
|
||||
properties:
|
||||
CertificateID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
EnrollmentID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ExpirationDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
type: string
|
||||
IssueDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
VerificationCode:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,113 @@
|
|||
Lead:
|
||||
properties:
|
||||
Address:
|
||||
$ref: "./address.yaml#/Address"
|
||||
x-nullable: true
|
||||
Company:
|
||||
description: Company
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
Email:
|
||||
description: Email
|
||||
type: string
|
||||
x-nullable: true
|
||||
FirstName:
|
||||
description: First Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastName:
|
||||
description: Last Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
MobilePhone:
|
||||
description: Mobile
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
OwnerId:
|
||||
description: LeadBasic Owner
|
||||
type: string
|
||||
x-nullable: true
|
||||
PartnerAccountId:
|
||||
description: Partner Account
|
||||
type: string
|
||||
x-nullable: true
|
||||
Phone:
|
||||
description: Phone
|
||||
type: string
|
||||
x-nullable: true
|
||||
ProductID:
|
||||
description: Product
|
||||
type: string
|
||||
x-nullable: true
|
||||
RefererURL:
|
||||
description: referer_url
|
||||
type: string
|
||||
x-nullable: true
|
||||
Status:
|
||||
description: LeadBasic Status
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: Tenant Identifier
|
||||
type: string
|
||||
x-nullable: true
|
||||
Title:
|
||||
description: Title
|
||||
type: string
|
||||
x-nullable: true
|
||||
Type:
|
||||
description: Type
|
||||
type: string
|
||||
x-nullable: true
|
||||
UTMCampaign:
|
||||
description: utm_campaign
|
||||
type: string
|
||||
x-nullable: true
|
||||
UTMContent:
|
||||
description: utm_content
|
||||
type: string
|
||||
x-nullable: true
|
||||
UTMMedium:
|
||||
description: utm_medium
|
||||
type: string
|
||||
x-nullable: true
|
||||
UTMSource:
|
||||
description: utm_source
|
||||
type: string
|
||||
x-nullable: true
|
||||
UTMTerm:
|
||||
description: utm_term
|
||||
type: string
|
||||
x-nullable: true
|
||||
Website:
|
||||
description: Website
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,31 @@
|
|||
LessonProgress:
|
||||
properties:
|
||||
Completed:
|
||||
type: integer
|
||||
Completedat:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
EnrollmentID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
type: string
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LessonID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,10 @@
|
|||
Message:
|
||||
properties:
|
||||
message:
|
||||
type: string
|
||||
ref:
|
||||
type: string
|
||||
status:
|
||||
format: int64
|
||||
type: number
|
||||
type: object
|
|
@ -0,0 +1,47 @@
|
|||
Observation:
|
||||
description: A data point collected while analyzing a Factor
|
||||
properties:
|
||||
AccountID:
|
||||
description: The ID of the Company being analyzed
|
||||
type: string
|
||||
x-nullable: true
|
||||
CompanyProductID:
|
||||
description: The ID of the Product being analyzed
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Notes concerning data collection
|
||||
type: string
|
||||
x-nullable: true
|
||||
FactorID:
|
||||
description: The ID of the Factor that owns this Observation
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
SubjectType:
|
||||
description: Is the subject a Company or a Product?
|
||||
type: string
|
||||
x-nullable: true
|
||||
Value:
|
||||
description: The data point collected
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,29 @@
|
|||
Order:
|
||||
properties:
|
||||
AmountpaID:
|
||||
type: number
|
||||
x-nullable: true
|
||||
Createdat:
|
||||
type: string
|
||||
x-nullable: true
|
||||
EventID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
type: string
|
||||
OrderStatus:
|
||||
type: string
|
||||
x-nullable: true
|
||||
PaymentMethod:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TicketID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UpDatedat:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,81 @@
|
|||
OutgoingEmailMessage:
|
||||
description: A new email message to be sent
|
||||
properties:
|
||||
ID:
|
||||
type: string
|
||||
BCCAddress:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Bounced:
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
CCAddress:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
EmailMessageID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ExternalID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
FromAddress:
|
||||
type: string
|
||||
x-nullable: true
|
||||
FromContactID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
FromName:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Headers:
|
||||
$ref: "./headers.yaml#/Headers"
|
||||
x-nullable: true
|
||||
HTML:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ObjectID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ObjectType:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Queued:
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
QueuedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Sent:
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
SentDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Subject:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TemplateID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TextBody:
|
||||
x-nullable: true
|
||||
type: string
|
||||
ToAddress:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ToName:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,15 @@
|
|||
Pagination:
|
||||
properties:
|
||||
limit:
|
||||
format: int64
|
||||
type: number
|
||||
pagesize:
|
||||
format: int64
|
||||
type: number
|
||||
poffset:
|
||||
format: int64
|
||||
type: integer
|
||||
setsize:
|
||||
format: int64
|
||||
type: number
|
||||
type: object
|
|
@ -0,0 +1,35 @@
|
|||
PaymentMethod:
|
||||
properties:
|
||||
CardHolderName:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CardNumber:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CardType:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ExpirationMonth:
|
||||
type: integer
|
||||
ExpirationYear:
|
||||
type: integer
|
||||
ID:
|
||||
type: string
|
||||
Isdefault:
|
||||
type: integer
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,67 @@
|
|||
PromptAnswer:
|
||||
description: A prompt response/answer
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
Answer:
|
||||
description: The answer to the prompt
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: The date the prompt tag was created
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: The ID of the user who created the prompt tag
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: The date the prompt tag was last modified
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: The ID of the user who last modified the prompt tag
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: The name of the Answer
|
||||
type: string
|
||||
x-nullable: true
|
||||
ParameterValues:
|
||||
description: The prompt tag name
|
||||
type: string
|
||||
x-nullable: true
|
||||
PromptID:
|
||||
description: The ID of the prompt
|
||||
type: string
|
||||
x-nullable: true
|
||||
PromptUsed:
|
||||
description: The prompt used
|
||||
type: string
|
||||
x-nullable: true
|
||||
SystemUsed:
|
||||
description: The system used
|
||||
type: string
|
||||
x-nullable: true
|
||||
Temperature:
|
||||
description: The temperature used
|
||||
type: number
|
||||
x-nullable: true
|
||||
TokensUsed:
|
||||
description: The tokens used
|
||||
type: number
|
||||
x-nullable: true
|
||||
Type:
|
||||
description: The type of answer to the prompt
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: The ID of the tenant
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
description: The ID of the user
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,27 @@
|
|||
PromptCategory:
|
||||
description: A prompt category
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
Name:
|
||||
description: The prompt category name
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: The date the prompt category was created
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: The ID of the user who created the prompt category
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: The date the prompt category was last modified
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
x-nullable: true
|
||||
description: The ID of the user who last modified the prompt category
|
||||
type: string
|
||||
type: object
|
|
@ -0,0 +1,27 @@
|
|||
PromptTag:
|
||||
description: A prompt tag
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
Name:
|
||||
description: The prompt tag name
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: The date the prompt tag was created
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: The ID of the user who created the prompt tag
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: The date the prompt tag was last modified
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: The ID of the user who last modified the prompt tag
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,107 @@
|
|||
Prompt:
|
||||
description: A prompt
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
CreatedByID:
|
||||
description: The ID of the user who created the prompt
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: The date the prompt was created
|
||||
type: string
|
||||
x-nullable: true
|
||||
Icon:
|
||||
description: The icon for the prompt
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
description: The alt text for the prompt image
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
description: The URL of the prompt image
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: The ID of the user who last modified the prompt
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: The date the prompt was last modified
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
description: The logo for the prompt
|
||||
type: string
|
||||
x-nullable: true
|
||||
MaxTokens:
|
||||
description: The maximum number of tokens to generate
|
||||
type: number
|
||||
x-nullable: true
|
||||
Model:
|
||||
description: The model for the prompt
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: The name of the prompt
|
||||
type: string
|
||||
x-nullable: true
|
||||
Order:
|
||||
description: The order of the prompt
|
||||
type: number
|
||||
x-nullable: true
|
||||
Parameters:
|
||||
description: A list of parameters encoded as JSON
|
||||
type: string
|
||||
x-nullable: true
|
||||
Prompt:
|
||||
description: The prompt text
|
||||
type: string
|
||||
x-nullable: true
|
||||
PromptCategoryID:
|
||||
description: The ID of the prompt category
|
||||
type: string
|
||||
x-nullable: true
|
||||
ResearchProjectIDs:
|
||||
description: A list of research project IDs
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
x-nullable: true
|
||||
Slug:
|
||||
description: The slug for the prompt
|
||||
type: string
|
||||
x-nullable: true
|
||||
System:
|
||||
description: The System prompt to be used
|
||||
type: string
|
||||
x-nullable: true
|
||||
Tags:
|
||||
description: A list of tags
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
x-nullable: true
|
||||
Temperature:
|
||||
description: The temperature of the prompt
|
||||
type: number
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: The ID of the tenant
|
||||
type: string
|
||||
x-nullable: true
|
||||
Title:
|
||||
description: The title of the prompt
|
||||
type: string
|
||||
x-nullable: true
|
||||
UsedCount:
|
||||
description: The number of times the prompt has been used
|
||||
type: number
|
||||
x-nullable: true
|
||||
UserID:
|
||||
description: The ID of the user who created the prompt
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,8 @@
|
|||
RequestMeta:
|
||||
properties:
|
||||
ExternalAccount:
|
||||
description: Account Number of the Reseller or OEM
|
||||
type: string
|
||||
required:
|
||||
- ExternalAccount
|
||||
type: object
|
|
@ -0,0 +1,26 @@
|
|||
ResearchProjectCompany:
|
||||
properties:
|
||||
AccountID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
type: string
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ResearchProjectID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,32 @@
|
|||
ResearchProjectDocument:
|
||||
properties:
|
||||
ID:
|
||||
type: string
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
DocumentID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ResearchProjectID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Title:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,32 @@
|
|||
ResearchProjectProduct:
|
||||
properties:
|
||||
ID:
|
||||
type: string
|
||||
CompanyProductID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ProductName:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ResearchProjectID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,32 @@
|
|||
ResearchProjectService:
|
||||
properties:
|
||||
ID:
|
||||
type: string
|
||||
CompanyServiceID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ResearchProjectID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ServiceName:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,29 @@
|
|||
ResearchProjectTopic:
|
||||
properties:
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
type: string
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ResearchProjectID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TopicID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,64 @@
|
|||
ResearchProject:
|
||||
properties:
|
||||
ID:
|
||||
type: string
|
||||
AccountID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageAltText:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ImageURL:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Logo:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Slug:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Companies:
|
||||
items:
|
||||
$ref: "./research-project-company.yaml#/ResearchProjectCompany"
|
||||
type: array
|
||||
x-nullable: true
|
||||
Documents:
|
||||
items:
|
||||
$ref: "./research-project-document.yaml#/ResearchProjectDocument"
|
||||
type: array
|
||||
x-nullable: true
|
||||
Products:
|
||||
items:
|
||||
$ref: "./research-project-product.yaml#/ResearchProjectProduct"
|
||||
type: array
|
||||
x-nullable: true
|
||||
Topics:
|
||||
items:
|
||||
$ref: "./research-project-topic.yaml#/ResearchProjectTopic"
|
||||
type: array
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,38 @@
|
|||
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: "./pagination.yaml#/Pagination"
|
||||
RequestIP:
|
||||
description: Request IP Address
|
||||
type: string
|
||||
RequestType:
|
||||
description: Request Type
|
||||
type: string
|
||||
RequestURL:
|
||||
description: Request URL
|
||||
type: string
|
||||
ServerInfo:
|
||||
description: Data Server Info
|
||||
type: string
|
||||
ServerResponseTime:
|
||||
description: Data Server Response Time (ms)
|
||||
type: string
|
||||
ServerTimestamp:
|
||||
description: Backend Server Timestamp
|
||||
type: string
|
||||
ExternalAccount:
|
||||
description: Account Number used for recording transactions
|
||||
type: string
|
||||
type: object
|
|
@ -0,0 +1,39 @@
|
|||
Role:
|
||||
description: A functional role within a Tenant
|
||||
properties:
|
||||
ID:
|
||||
description: record id
|
||||
type: string
|
||||
Auth0RoleID:
|
||||
description: the corresponding auth0 role
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: created by
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: created date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: role description
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: last modified by
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: last modifed date
|
||||
type: string
|
||||
x-nullable: true
|
||||
RoleName:
|
||||
description: the name of this role
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: the id of the tenant that owns this role
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,62 @@
|
|||
Template:
|
||||
properties:
|
||||
CompanyID:
|
||||
description: Company
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
HTML:
|
||||
description: HTML Body
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
IsActive:
|
||||
description: Active?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
IsMaster:
|
||||
description: Master Template?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Template Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
ObjectType:
|
||||
description: Object
|
||||
type: string
|
||||
x-nullable: true
|
||||
RecordTypeName:
|
||||
description: Record Type Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: Tenant that owns this object instance
|
||||
type: string
|
||||
x-nullable: true
|
||||
Type:
|
||||
description: Type
|
||||
type: string
|
||||
x-nullable: true
|
||||
URL:
|
||||
description: URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,68 @@
|
|||
TenantUser:
|
||||
description: Relationship object that connects users to a tenant
|
||||
properties:
|
||||
AccessLevel:
|
||||
description: The makeTenantUser access level for this User
|
||||
type: string
|
||||
x-nullable: true
|
||||
AccountID:
|
||||
description: Account ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
Auth0UserID:
|
||||
description: Auth0 User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CompanyName:
|
||||
description: Account Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
ContactID:
|
||||
description: Contact ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
ExternalAccount:
|
||||
description: Account
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantActive:
|
||||
description: Tenant active?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: The Tenant ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantName:
|
||||
description: Tenant Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantStatus:
|
||||
description: Tenant Status
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantType:
|
||||
description: Tenant type
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantVersion:
|
||||
description: Tenant Version
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserEmail:
|
||||
description: User Email Address
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserFullName:
|
||||
description: User Full Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
description: The User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
Username:
|
||||
description: Username
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,62 @@
|
|||
Tenant:
|
||||
description: Account Tenant
|
||||
properties:
|
||||
AccountID:
|
||||
description: The Account that owns this Tenant
|
||||
type: string
|
||||
x-nullable: true
|
||||
Active:
|
||||
description: Is this Tenant currently active?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created By
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Databases:
|
||||
items:
|
||||
$ref: "./database.yaml#/Database"
|
||||
type: array
|
||||
x-nullable: true
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
LastModifiedByID:
|
||||
description: Last Modified By
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modifed Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Roles:
|
||||
items:
|
||||
$ref: "./role.yaml#/Role"
|
||||
type: array
|
||||
x-nullable: true
|
||||
Status:
|
||||
description: The current status of this Tenant
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantName:
|
||||
description: Name of the Tenant Resource
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantUsers:
|
||||
items:
|
||||
$ref: "./tenant-user.yaml#/TenantUser"
|
||||
type: array
|
||||
x-nullable: true
|
||||
Type:
|
||||
description: The type of Tenant
|
||||
type: string
|
||||
x-nullable: true
|
||||
Version:
|
||||
description: The version number of the Tenant Onboarding system used to create this tenant
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,22 @@
|
|||
Ticket:
|
||||
properties:
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
EventID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
type: string
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Price:
|
||||
type: number
|
||||
x-nullable: true
|
||||
Quantity:
|
||||
type: integer
|
||||
Tickettype:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,45 @@
|
|||
Topic:
|
||||
description: A research topic that collects data
|
||||
properties:
|
||||
ID:
|
||||
description: Record Id
|
||||
type: string
|
||||
CreatedByID:
|
||||
description: Created By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Created Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Description:
|
||||
description: Topic Description
|
||||
type: string
|
||||
x-nullable: true
|
||||
Factors:
|
||||
description: The list of Factors used to analyze this industry
|
||||
items:
|
||||
$ref: "./factor.yaml#/Factor"
|
||||
type: array
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified By User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Topic Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
ParentTopicID:
|
||||
description: The ID of the Parent Topic
|
||||
type: string
|
||||
x-nullable: true
|
||||
Slug:
|
||||
description: The CMS Slug for this Topic
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,40 @@
|
|||
Transaction:
|
||||
properties:
|
||||
Amount:
|
||||
type: number
|
||||
CourseID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Currency:
|
||||
type: string
|
||||
x-nullable: true
|
||||
EnrollmentID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
type: string
|
||||
LastModifiedByID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
PaymentMethodID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
Status:
|
||||
type: string
|
||||
x-nullable: true
|
||||
TransactionDate:
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,56 @@
|
|||
UserRole:
|
||||
description: Relationship object that connects user to a role
|
||||
properties:
|
||||
AccountID:
|
||||
description: Account Id
|
||||
type: string
|
||||
x-nullable: true
|
||||
Auth0RoleID:
|
||||
description: Linked role ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
Auth0UserID:
|
||||
description: Auth0 User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CompanyName:
|
||||
description: Company Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
ContactID:
|
||||
description: Contact ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
RoleDescription:
|
||||
description: Role description
|
||||
type: string
|
||||
x-nullable: true
|
||||
RoleID:
|
||||
description: The Role ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
RoleName:
|
||||
description: Role Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
ExternalAccount:
|
||||
description: Account Number
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserEmail:
|
||||
description: User Email Address
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserFullName:
|
||||
description: User Full Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserID:
|
||||
description: The User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
Username:
|
||||
description: Username
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,243 @@
|
|||
User:
|
||||
properties:
|
||||
APIGatewayURL:
|
||||
description: API Gateway URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
APIGatewayUser:
|
||||
description: API Gateway User
|
||||
type: string
|
||||
x-nullable: true
|
||||
APIKey:
|
||||
description: API Key
|
||||
type: string
|
||||
x-nullable: true
|
||||
AboutMe:
|
||||
description: About Me
|
||||
type: string
|
||||
x-nullable: true
|
||||
AccountID:
|
||||
description: Account ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
Address:
|
||||
$ref: "./address.yaml#/Address"
|
||||
x-nullable: true
|
||||
Alias:
|
||||
description: Alias
|
||||
type: string
|
||||
x-nullable: true
|
||||
Auth0UserID:
|
||||
description: Auth0 User Id
|
||||
type: string
|
||||
x-nullable: true
|
||||
CommunityNickname:
|
||||
description: Nickname
|
||||
type: string
|
||||
x-nullable: true
|
||||
CompanyName:
|
||||
description: Company Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
ContactID:
|
||||
description: Contact
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedByID:
|
||||
description: Created User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
CreatedDate:
|
||||
description: Date Created
|
||||
type: string
|
||||
x-nullable: true
|
||||
DelegatedApproverID:
|
||||
description: Delegated Approver
|
||||
type: string
|
||||
x-nullable: true
|
||||
Department:
|
||||
description: Department
|
||||
type: string
|
||||
x-nullable: true
|
||||
Division:
|
||||
description: Division
|
||||
type: string
|
||||
x-nullable: true
|
||||
Email:
|
||||
description: Email address
|
||||
type: string
|
||||
x-nullable: true
|
||||
EmployeeNumber:
|
||||
description: Employee Number
|
||||
type: string
|
||||
x-nullable: true
|
||||
EndOfDay:
|
||||
description: Time day ends
|
||||
type: string
|
||||
x-nullable: true
|
||||
Environment:
|
||||
description: Environment
|
||||
type: string
|
||||
x-nullable: true
|
||||
Extension:
|
||||
description: Extension
|
||||
type: string
|
||||
x-nullable: true
|
||||
Fax:
|
||||
description: Fax
|
||||
type: string
|
||||
x-nullable: true
|
||||
FirstName:
|
||||
description: The first name
|
||||
type: string
|
||||
x-nullable: true
|
||||
ForecastEnabled:
|
||||
description: Allow Forecasting
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
FullPhotoURL:
|
||||
description: Full Photo URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
GitHub:
|
||||
description: GitHub
|
||||
type: string
|
||||
x-nullable: true
|
||||
ID:
|
||||
description: Record ID
|
||||
type: string
|
||||
IsActive:
|
||||
description: Active
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
IsPortalEnabled:
|
||||
description: Is the user enabled for Communities?
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
IsSystemControlled:
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
LastIP:
|
||||
description: IP address of last login
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastLogin:
|
||||
description: Last login time
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedByID:
|
||||
description: Last Modified User ID
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
x-nullable: true
|
||||
LastName:
|
||||
description: The Last Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
LinkedIn:
|
||||
description: LinkedIn
|
||||
type: string
|
||||
x-nullable: true
|
||||
LoginCount:
|
||||
description: Number of times user has logged in
|
||||
format: int64
|
||||
type: number
|
||||
x-nullable: true
|
||||
ManagerID:
|
||||
description: Manager
|
||||
type: string
|
||||
x-nullable: true
|
||||
MobilePhone:
|
||||
description: Mobile
|
||||
type: string
|
||||
x-nullable: true
|
||||
Name:
|
||||
description: Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
OutOfOfficeMessage:
|
||||
description: Out of office message
|
||||
type: string
|
||||
x-nullable: true
|
||||
Phone:
|
||||
description: Phone
|
||||
type: string
|
||||
x-nullable: true
|
||||
PortalRole:
|
||||
description: Portal Role Level
|
||||
type: string
|
||||
x-nullable: true
|
||||
ProfileID:
|
||||
description: Profile
|
||||
type: string
|
||||
x-nullable: true
|
||||
ReceivesAdminEmails:
|
||||
description: Info Emails
|
||||
type: boolean
|
||||
x-nullable: true
|
||||
SenderEmail:
|
||||
description: Email Sender Address
|
||||
type: string
|
||||
x-nullable: true
|
||||
SenderName:
|
||||
description: Email Sender Name
|
||||
type: string
|
||||
x-nullable: true
|
||||
SmallPhotoURL:
|
||||
description: Small Photo URL
|
||||
type: string
|
||||
x-nullable: true
|
||||
StartOfDay:
|
||||
description: The time day starts
|
||||
type: string
|
||||
x-nullable: true
|
||||
Status:
|
||||
description: Onboarding Status
|
||||
type: string
|
||||
x-nullable: true
|
||||
ExternalAccount:
|
||||
description: Account
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantID:
|
||||
description: Tenant ID associated with this user
|
||||
type: string
|
||||
x-nullable: true
|
||||
TenantUsers:
|
||||
items:
|
||||
$ref: "./tenant-user.yaml#/TenantUser"
|
||||
type: array
|
||||
x-nullable: true
|
||||
TimeZone:
|
||||
description: Time Zone
|
||||
type: string
|
||||
x-nullable: true
|
||||
Title:
|
||||
description: Title
|
||||
type: string
|
||||
x-nullable: true
|
||||
Twitter:
|
||||
description: Twitter
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserRoleID:
|
||||
description: Role
|
||||
type: string
|
||||
x-nullable: true
|
||||
UserRoles:
|
||||
items:
|
||||
$ref: "./user-role.yaml#/UserRole"
|
||||
type: array
|
||||
x-nullable: true
|
||||
UserType:
|
||||
description: User Type
|
||||
type: string
|
||||
x-nullable: true
|
||||
Username:
|
||||
description: Username
|
||||
type: string
|
||||
x-nullable: true
|
||||
type: object
|
|
@ -0,0 +1,433 @@
|
|||
swagger: "2.0"
|
||||
info:
|
||||
version: 0.3.0
|
||||
title: "auth"
|
||||
description: "Authentication Microservice"
|
||||
termsOfService: "https://salesforcedevops.net/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"
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
schemes:
|
||||
- "https"
|
||||
basePath: "/vk/auth/v1"
|
||||
host: "gw.tnxs.net"
|
||||
consumes:
|
||||
- "application/json"
|
||||
produces:
|
||||
- "application/json"
|
||||
parameters:
|
||||
apiKeyQuery:
|
||||
description: Service account or developer API key
|
||||
in: query
|
||||
name: apikey
|
||||
type: string
|
||||
responses:
|
||||
AccessForbidden:
|
||||
description: "Access forbidden, account lacks access"
|
||||
schema:
|
||||
$ref: "#/definitions/Error"
|
||||
NotFound:
|
||||
description: Resource was not found
|
||||
schema:
|
||||
$ref: "#/definitions/Error"
|
||||
ServerError:
|
||||
description: Server Internal Error
|
||||
schema:
|
||||
$ref: "#/definitions/Error"
|
||||
Unauthorized:
|
||||
description: "Access Unauthorized, invalid API-KEY was used"
|
||||
schema:
|
||||
$ref: "#/definitions/Error"
|
||||
UnprocessableEntity:
|
||||
description: "Unprocessable Entity, likely a bad parameter"
|
||||
schema:
|
||||
$ref: "#/definitions/Error"
|
||||
UserResponse:
|
||||
description: Response with User objects
|
||||
schema:
|
||||
$ref: "#/definitions/UserResponse"
|
||||
paths:
|
||||
/users:
|
||||
get:
|
||||
summary: "Check API Key"
|
||||
operationId: "getUsers"
|
||||
description: "Checks for a valid API key, and returns full user record"
|
||||
parameters:
|
||||
- $ref: "#/parameters/apiKeyQuery"
|
||||
tags:
|
||||
- "User"
|
||||
responses:
|
||||
"200":
|
||||
$ref: "#/responses/UserResponse"
|
||||
"401":
|
||||
$ref: "#/responses/Unauthorized"
|
||||
"403":
|
||||
$ref: "#/responses/AccessForbidden"
|
||||
"404":
|
||||
$ref: "#/responses/NotFound"
|
||||
"422":
|
||||
$ref: "#/responses/UnprocessableEntity"
|
||||
"500":
|
||||
$ref: "#/responses/ServerError"
|
||||
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
|
||||
Error:
|
||||
properties:
|
||||
Code:
|
||||
format: int32
|
||||
type: integer
|
||||
Fields:
|
||||
type: string
|
||||
Message:
|
||||
type: string
|
||||
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
|
||||
RequestIP:
|
||||
description: Request IP Address
|
||||
type: string
|
||||
RequestType:
|
||||
description: Request Type
|
||||
type: string
|
||||
RequestURL:
|
||||
description: Request URL
|
||||
type: string
|
||||
ServerInfo:
|
||||
description: Data Server Info
|
||||
type: string
|
||||
ServerResponseTime:
|
||||
description: Data Server Response Time (ms)
|
||||
type: string
|
||||
ServerTimestamp:
|
||||
description: Backend Server Timestamp
|
||||
type: string
|
||||
ExternalAccount:
|
||||
description: Account Number used for recording transactions
|
||||
type: string
|
||||
type: object
|
||||
User:
|
||||
properties:
|
||||
AboutMe:
|
||||
description: About Me
|
||||
type: string
|
||||
AccountID:
|
||||
description: Account ID
|
||||
type: string
|
||||
Address:
|
||||
$ref: "#/definitions/Address"
|
||||
Alias:
|
||||
description: Alias
|
||||
type: string
|
||||
APIKey:
|
||||
description: API Key
|
||||
type: string
|
||||
Auth0UserID:
|
||||
description: Auth0 User Id
|
||||
type: string
|
||||
CommunityNickname:
|
||||
description: Nickname
|
||||
type: string
|
||||
CompanyName:
|
||||
description: Company Name
|
||||
type: string
|
||||
ContactID:
|
||||
description: Contact
|
||||
type: string
|
||||
CreatedByID:
|
||||
description: Created User ID
|
||||
type: string
|
||||
CreatedDate:
|
||||
description: Date Created
|
||||
type: string
|
||||
DelegatedApproverID:
|
||||
description: Delegated Approver
|
||||
type: string
|
||||
Department:
|
||||
description: Department
|
||||
type: string
|
||||
Division:
|
||||
description: Division
|
||||
type: string
|
||||
Email:
|
||||
description: Email address
|
||||
type: string
|
||||
EmployeeNumber:
|
||||
description: Employee Number
|
||||
type: string
|
||||
EndOfDay:
|
||||
description: Time day ends
|
||||
type: string
|
||||
Environment:
|
||||
description: Environment
|
||||
type: string
|
||||
Extension:
|
||||
description: Extension
|
||||
type: string
|
||||
FabricAPIKey:
|
||||
description: Fabric API Key
|
||||
type: string
|
||||
Fax:
|
||||
description: Fax
|
||||
type: string
|
||||
FirstName:
|
||||
description: The first name
|
||||
type: string
|
||||
ForecastEnabled:
|
||||
description: Allow Forecasting
|
||||
type: boolean
|
||||
FullPhotoURL:
|
||||
description: Full Photo URL
|
||||
type: string
|
||||
ID:
|
||||
description: ID
|
||||
type: string
|
||||
IsActive:
|
||||
description: Active
|
||||
type: boolean
|
||||
IsPortalEnabled:
|
||||
description: Is the user enabled for Communities?
|
||||
type: boolean
|
||||
IsProphilePhotoActive:
|
||||
description: Has Profile Photo
|
||||
type: boolean
|
||||
IsSystemControlled:
|
||||
type: boolean
|
||||
LastModifiedByID:
|
||||
description: Last Modified User ID
|
||||
type: string
|
||||
LastModifiedDate:
|
||||
description: Last Modified Date
|
||||
type: string
|
||||
LastLogin:
|
||||
description: Last login time
|
||||
type: string
|
||||
LastIP:
|
||||
description: IP address of last login
|
||||
type: string
|
||||
LoginCount:
|
||||
description: Number of times user has logged in
|
||||
type: number
|
||||
format: int64
|
||||
LastName:
|
||||
description: The Last Name
|
||||
type: string
|
||||
ManagerID:
|
||||
description: Manager
|
||||
type: string
|
||||
MobilePhone:
|
||||
description: Mobile
|
||||
type: string
|
||||
Name:
|
||||
description: Name
|
||||
type: string
|
||||
OutOfOfficeMessage:
|
||||
description: Out of office message
|
||||
type: string
|
||||
Phone:
|
||||
description: Phone
|
||||
type: string
|
||||
PortalRole:
|
||||
description: Portal Role Level
|
||||
type: string
|
||||
ProfileID:
|
||||
description: Profile
|
||||
type: string
|
||||
ReceivesAdminInfoEmails:
|
||||
description: Admin Info Emails
|
||||
type: boolean
|
||||
ReceivesAdminEmails:
|
||||
description: Info Emails
|
||||
type: boolean
|
||||
SenderEmail:
|
||||
description: Email Sender Address
|
||||
type: string
|
||||
SenderName:
|
||||
description: Email Sender Name
|
||||
type: string
|
||||
Signature:
|
||||
description: Email Signature
|
||||
type: string
|
||||
SmallPhotoURL:
|
||||
description: Small Photo URL
|
||||
type: string
|
||||
StartOfDay:
|
||||
description: The time day starts
|
||||
type: string
|
||||
ExternalAccount:
|
||||
description: Account
|
||||
type: string
|
||||
TenantID:
|
||||
description: Tenant ID associated with this user
|
||||
type: string
|
||||
TimeZone:
|
||||
description: Time Zone
|
||||
type: string
|
||||
Title:
|
||||
description: Title
|
||||
type: string
|
||||
Username:
|
||||
description: Username
|
||||
type: string
|
||||
UserRoleID:
|
||||
description: Role
|
||||
type: string
|
||||
UserType:
|
||||
description: User Type
|
||||
type: string
|
||||
UserRoles:
|
||||
items:
|
||||
$ref: "#/definitions/UserRole"
|
||||
type: array
|
||||
TenantUsers:
|
||||
items:
|
||||
$ref: "#/definitions/TenantUser"
|
||||
type: array
|
||||
type: object
|
||||
UserResponse:
|
||||
description: An array Taxnexus user objects
|
||||
properties:
|
||||
Data:
|
||||
items:
|
||||
$ref: "#/definitions/User"
|
||||
type: array
|
||||
Meta:
|
||||
$ref: "#/definitions/ResponseMeta"
|
||||
type: object
|
||||
UserRole:
|
||||
description: Relationship object that connects user to a role
|
||||
type: object
|
||||
properties:
|
||||
AccountID:
|
||||
description: Account Id
|
||||
type: string
|
||||
Auth0RoleID:
|
||||
description: Linked role ID
|
||||
type: string
|
||||
Auth0UserID:
|
||||
description: Auth0 User ID
|
||||
type: string
|
||||
CompanyName:
|
||||
description: Company Name
|
||||
type: string
|
||||
ContactID:
|
||||
description: Contact ID
|
||||
type: string
|
||||
RoleDescription:
|
||||
description: Role description
|
||||
type: string
|
||||
RoleID:
|
||||
description: The Role ID
|
||||
type: string
|
||||
RoleName:
|
||||
description: Role Name
|
||||
type: string
|
||||
ExternalAccount:
|
||||
description: Account Number
|
||||
type: string
|
||||
UserEmail:
|
||||
description: User Email Address
|
||||
type: string
|
||||
UserFullName:
|
||||
description: User Full Name
|
||||
type: string
|
||||
UserID:
|
||||
description: The User ID
|
||||
type: string
|
||||
Username:
|
||||
description: Username
|
||||
type: string
|
||||
TenantUser:
|
||||
description: Relationship object that connects users to a tenant
|
||||
type: object
|
||||
properties:
|
||||
AccessLevel:
|
||||
description: The makeTenantUser access level for this User
|
||||
type: string
|
||||
Auth0UserID:
|
||||
description: Auth0 User ID
|
||||
type: string
|
||||
AccountID:
|
||||
description: Account ID
|
||||
type: string
|
||||
ContactID:
|
||||
description: Contact ID
|
||||
type: string
|
||||
CompanyName:
|
||||
description: Account Name
|
||||
type: string
|
||||
ExternalAccount:
|
||||
description: Account
|
||||
type: string
|
||||
TenantActive:
|
||||
description: Tenant active?
|
||||
type: boolean
|
||||
TenantID:
|
||||
description: The Tenant ID
|
||||
type: string
|
||||
TenantName:
|
||||
description: Tenant Name
|
||||
type: string
|
||||
TenantStatus:
|
||||
description: Tenant Status
|
||||
type: string
|
||||
TenantType:
|
||||
description: Tenant type
|
||||
type: string
|
||||
TenantVersion:
|
||||
description: Tenant Version
|
||||
type: string
|
||||
Username:
|
||||
description: Username
|
||||
type: string
|
||||
UserEmail:
|
||||
description: User Email Address
|
||||
type: string
|
||||
UserFullName:
|
||||
description: User Full Name
|
||||
type: string
|
||||
UserID:
|
||||
description: The User ID
|
||||
type: string
|
|
@ -0,0 +1,822 @@
|
|||
swagger: "2.0"
|
||||
info:
|
||||
version: 0.3.4
|
||||
title: "crm"
|
||||
description: "Customer Information Microservice"
|
||||
termsOfService: "https://salesforcedevops.net/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:
|
||||
- "https"
|
||||
basePath: "/vk/crm/v1"
|
||||
host: "gw.tnxs.net"
|
||||
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 SalesforceDevops.net 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 SalesforceDevops.net
|
||||
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 SalesforceDevops.net 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 SalesforceDevops.net
|
||||
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 SalesforceDevops.net 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 SalesforceDevops.net
|
||||
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 SalesforceDevops.net 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 SalesforceDevops.net 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"
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue