parent
64ad9b374f
commit
effff98c06
|
@ -155,6 +155,9 @@ type User struct {
|
||||||
// Profile
|
// Profile
|
||||||
ProfileID string `json:"ProfileID,omitempty"`
|
ProfileID string `json:"ProfileID,omitempty"`
|
||||||
|
|
||||||
|
// Provider
|
||||||
|
Provider string `json:"Provider,omitempty"`
|
||||||
|
|
||||||
// Info Emails
|
// Info Emails
|
||||||
ReceivesAdminEmails bool `json:"ReceivesAdminEmails,omitempty"`
|
ReceivesAdminEmails bool `json:"ReceivesAdminEmails,omitempty"`
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ type ClientService interface {
|
||||||
/*
|
/*
|
||||||
DeleteAccount deletes an account
|
DeleteAccount deletes an account
|
||||||
|
|
||||||
Delete SalesforceDevops.net Account record
|
Delete WorkDifferentWithAI.com Account record
|
||||||
*/
|
*/
|
||||||
func (a *Client) DeleteAccount(params *DeleteAccountParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*DeleteAccountOK, error) {
|
func (a *Client) DeleteAccount(params *DeleteAccountParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*DeleteAccountOK, error) {
|
||||||
// TODO: Validate the params before sending
|
// TODO: Validate the params before sending
|
||||||
|
@ -128,7 +128,7 @@ func (a *Client) GetAccounts(params *GetAccountsParams, authInfo runtime.ClientA
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
PostAccounts adds a new account to salesforce devops net
|
PostAccounts adds a new account to work different with a i com
|
||||||
|
|
||||||
Account record to be added
|
Account record to be added
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -48,7 +48,7 @@ type ClientService interface {
|
||||||
/*
|
/*
|
||||||
DeleteAsset deletes an asset
|
DeleteAsset deletes an asset
|
||||||
|
|
||||||
Delete SalesforceDevops.net Asset record
|
Delete WorkDifferentWithAI.com Asset record
|
||||||
*/
|
*/
|
||||||
func (a *Client) DeleteAsset(params *DeleteAssetParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*DeleteAssetOK, error) {
|
func (a *Client) DeleteAsset(params *DeleteAssetParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*DeleteAssetOK, error) {
|
||||||
// TODO: Validate the params before sending
|
// TODO: Validate the params before sending
|
||||||
|
@ -128,7 +128,7 @@ func (a *Client) GetAssets(params *GetAssetsParams, authInfo runtime.ClientAuthI
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
PostAssets adds a new asset to salesforce devops net
|
PostAssets adds a new asset to work different with a i com
|
||||||
|
|
||||||
Asset record to be added
|
Asset record to be added
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -48,7 +48,7 @@ type ClientService interface {
|
||||||
/*
|
/*
|
||||||
DeleteContact deletes a contact
|
DeleteContact deletes a contact
|
||||||
|
|
||||||
Delete SalesforceDevops.net Contact record
|
Delete WorkDifferentWithAI.com Contact record
|
||||||
*/
|
*/
|
||||||
func (a *Client) DeleteContact(params *DeleteContactParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*DeleteContactOK, error) {
|
func (a *Client) DeleteContact(params *DeleteContactParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*DeleteContactOK, error) {
|
||||||
// TODO: Validate the params before sending
|
// TODO: Validate the params before sending
|
||||||
|
|
|
@ -48,7 +48,7 @@ type ClientService interface {
|
||||||
/*
|
/*
|
||||||
DeleteContract deletes an contract
|
DeleteContract deletes an contract
|
||||||
|
|
||||||
Delete SalesforceDevops.net Contract record
|
Delete WorkDifferentWithAI.com Contract record
|
||||||
*/
|
*/
|
||||||
func (a *Client) DeleteContract(params *DeleteContractParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*DeleteContractOK, error) {
|
func (a *Client) DeleteContract(params *DeleteContractParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*DeleteContractOK, error) {
|
||||||
// TODO: Validate the params before sending
|
// TODO: Validate the params before sending
|
||||||
|
@ -128,7 +128,7 @@ func (a *Client) GetContracts(params *GetContractsParams, authInfo runtime.Clien
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
PostContracts adds a new contract to salesforce devops net
|
PostContracts adds a new contract to work different with a i com
|
||||||
|
|
||||||
Contract record to be added
|
Contract record to be added
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -48,7 +48,7 @@ type ClientService interface {
|
||||||
/*
|
/*
|
||||||
DeleteLead deletes a contact
|
DeleteLead deletes a contact
|
||||||
|
|
||||||
Delete SalesforceDevops.net Lead record
|
Delete WorkDifferentWithAI.com Lead record
|
||||||
*/
|
*/
|
||||||
func (a *Client) DeleteLead(params *DeleteLeadParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*DeleteLeadOK, error) {
|
func (a *Client) DeleteLead(params *DeleteLeadParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*DeleteLeadOK, error) {
|
||||||
// TODO: Validate the params before sending
|
// TODO: Validate the params before sending
|
||||||
|
|
|
@ -0,0 +1,157 @@
|
||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// (c) 2012-2023 by Vernon Keenan
|
||||||
|
// All rights reserved worldwide.
|
||||||
|
// Proprietary product; unlicensed use is not allowed
|
||||||
|
|
||||||
|
package users
|
||||||
|
|
||||||
|
// 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"
|
||||||
|
|
||||||
|
"code.tnxs.net/work/lib/api/members/members_models"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewPostUsersAuthParams creates a new PostUsersAuthParams 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 NewPostUsersAuthParams() *PostUsersAuthParams {
|
||||||
|
return &PostUsersAuthParams{
|
||||||
|
timeout: cr.DefaultTimeout,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthParamsWithTimeout creates a new PostUsersAuthParams object
|
||||||
|
// with the ability to set a timeout on a request.
|
||||||
|
func NewPostUsersAuthParamsWithTimeout(timeout time.Duration) *PostUsersAuthParams {
|
||||||
|
return &PostUsersAuthParams{
|
||||||
|
timeout: timeout,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthParamsWithContext creates a new PostUsersAuthParams object
|
||||||
|
// with the ability to set a context for a request.
|
||||||
|
func NewPostUsersAuthParamsWithContext(ctx context.Context) *PostUsersAuthParams {
|
||||||
|
return &PostUsersAuthParams{
|
||||||
|
Context: ctx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthParamsWithHTTPClient creates a new PostUsersAuthParams object
|
||||||
|
// with the ability to set a custom HTTPClient for a request.
|
||||||
|
func NewPostUsersAuthParamsWithHTTPClient(client *http.Client) *PostUsersAuthParams {
|
||||||
|
return &PostUsersAuthParams{
|
||||||
|
HTTPClient: client,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthParams contains all the parameters to send to the API endpoint
|
||||||
|
|
||||||
|
for the post users auth operation.
|
||||||
|
|
||||||
|
Typically these are written to a http.Request.
|
||||||
|
*/
|
||||||
|
type PostUsersAuthParams struct {
|
||||||
|
|
||||||
|
/* UserAuthRequest.
|
||||||
|
|
||||||
|
A simple user authentication request
|
||||||
|
*/
|
||||||
|
UserAuthRequest *members_models.UserAuth
|
||||||
|
|
||||||
|
timeout time.Duration
|
||||||
|
Context context.Context
|
||||||
|
HTTPClient *http.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithDefaults hydrates default values in the post users auth params (not the query body).
|
||||||
|
//
|
||||||
|
// All values with no default are reset to their zero value.
|
||||||
|
func (o *PostUsersAuthParams) WithDefaults() *PostUsersAuthParams {
|
||||||
|
o.SetDefaults()
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetDefaults hydrates default values in the post users auth params (not the query body).
|
||||||
|
//
|
||||||
|
// All values with no default are reset to their zero value.
|
||||||
|
func (o *PostUsersAuthParams) SetDefaults() {
|
||||||
|
// no default values defined for this parameter
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithTimeout adds the timeout to the post users auth params
|
||||||
|
func (o *PostUsersAuthParams) WithTimeout(timeout time.Duration) *PostUsersAuthParams {
|
||||||
|
o.SetTimeout(timeout)
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetTimeout adds the timeout to the post users auth params
|
||||||
|
func (o *PostUsersAuthParams) SetTimeout(timeout time.Duration) {
|
||||||
|
o.timeout = timeout
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithContext adds the context to the post users auth params
|
||||||
|
func (o *PostUsersAuthParams) WithContext(ctx context.Context) *PostUsersAuthParams {
|
||||||
|
o.SetContext(ctx)
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetContext adds the context to the post users auth params
|
||||||
|
func (o *PostUsersAuthParams) SetContext(ctx context.Context) {
|
||||||
|
o.Context = ctx
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithHTTPClient adds the HTTPClient to the post users auth params
|
||||||
|
func (o *PostUsersAuthParams) WithHTTPClient(client *http.Client) *PostUsersAuthParams {
|
||||||
|
o.SetHTTPClient(client)
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetHTTPClient adds the HTTPClient to the post users auth params
|
||||||
|
func (o *PostUsersAuthParams) SetHTTPClient(client *http.Client) {
|
||||||
|
o.HTTPClient = client
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithUserAuthRequest adds the userAuthRequest to the post users auth params
|
||||||
|
func (o *PostUsersAuthParams) WithUserAuthRequest(userAuthRequest *members_models.UserAuth) *PostUsersAuthParams {
|
||||||
|
o.SetUserAuthRequest(userAuthRequest)
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetUserAuthRequest adds the userAuthRequest to the post users auth params
|
||||||
|
func (o *PostUsersAuthParams) SetUserAuthRequest(userAuthRequest *members_models.UserAuth) {
|
||||||
|
o.UserAuthRequest = userAuthRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// WriteToRequest writes these params to a swagger request
|
||||||
|
func (o *PostUsersAuthParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := r.SetTimeout(o.timeout); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
var res []error
|
||||||
|
if o.UserAuthRequest != nil {
|
||||||
|
if err := r.SetBodyParam(o.UserAuthRequest); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -0,0 +1,157 @@
|
||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// (c) 2012-2023 by Vernon Keenan
|
||||||
|
// All rights reserved worldwide.
|
||||||
|
// Proprietary product; unlicensed use is not allowed
|
||||||
|
|
||||||
|
package users
|
||||||
|
|
||||||
|
// 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"
|
||||||
|
|
||||||
|
"code.tnxs.net/work/lib/api/members/members_models"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewPostUsersAuthPasswordParams creates a new PostUsersAuthPasswordParams 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 NewPostUsersAuthPasswordParams() *PostUsersAuthPasswordParams {
|
||||||
|
return &PostUsersAuthPasswordParams{
|
||||||
|
timeout: cr.DefaultTimeout,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthPasswordParamsWithTimeout creates a new PostUsersAuthPasswordParams object
|
||||||
|
// with the ability to set a timeout on a request.
|
||||||
|
func NewPostUsersAuthPasswordParamsWithTimeout(timeout time.Duration) *PostUsersAuthPasswordParams {
|
||||||
|
return &PostUsersAuthPasswordParams{
|
||||||
|
timeout: timeout,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthPasswordParamsWithContext creates a new PostUsersAuthPasswordParams object
|
||||||
|
// with the ability to set a context for a request.
|
||||||
|
func NewPostUsersAuthPasswordParamsWithContext(ctx context.Context) *PostUsersAuthPasswordParams {
|
||||||
|
return &PostUsersAuthPasswordParams{
|
||||||
|
Context: ctx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthPasswordParamsWithHTTPClient creates a new PostUsersAuthPasswordParams object
|
||||||
|
// with the ability to set a custom HTTPClient for a request.
|
||||||
|
func NewPostUsersAuthPasswordParamsWithHTTPClient(client *http.Client) *PostUsersAuthPasswordParams {
|
||||||
|
return &PostUsersAuthPasswordParams{
|
||||||
|
HTTPClient: client,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthPasswordParams contains all the parameters to send to the API endpoint
|
||||||
|
|
||||||
|
for the post users auth password operation.
|
||||||
|
|
||||||
|
Typically these are written to a http.Request.
|
||||||
|
*/
|
||||||
|
type PostUsersAuthPasswordParams struct {
|
||||||
|
|
||||||
|
/* UserAuthRequest.
|
||||||
|
|
||||||
|
A simple user authentication request
|
||||||
|
*/
|
||||||
|
UserAuthRequest *members_models.UserAuth
|
||||||
|
|
||||||
|
timeout time.Duration
|
||||||
|
Context context.Context
|
||||||
|
HTTPClient *http.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithDefaults hydrates default values in the post users auth password params (not the query body).
|
||||||
|
//
|
||||||
|
// All values with no default are reset to their zero value.
|
||||||
|
func (o *PostUsersAuthPasswordParams) WithDefaults() *PostUsersAuthPasswordParams {
|
||||||
|
o.SetDefaults()
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetDefaults hydrates default values in the post users auth password params (not the query body).
|
||||||
|
//
|
||||||
|
// All values with no default are reset to their zero value.
|
||||||
|
func (o *PostUsersAuthPasswordParams) SetDefaults() {
|
||||||
|
// no default values defined for this parameter
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithTimeout adds the timeout to the post users auth password params
|
||||||
|
func (o *PostUsersAuthPasswordParams) WithTimeout(timeout time.Duration) *PostUsersAuthPasswordParams {
|
||||||
|
o.SetTimeout(timeout)
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetTimeout adds the timeout to the post users auth password params
|
||||||
|
func (o *PostUsersAuthPasswordParams) SetTimeout(timeout time.Duration) {
|
||||||
|
o.timeout = timeout
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithContext adds the context to the post users auth password params
|
||||||
|
func (o *PostUsersAuthPasswordParams) WithContext(ctx context.Context) *PostUsersAuthPasswordParams {
|
||||||
|
o.SetContext(ctx)
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetContext adds the context to the post users auth password params
|
||||||
|
func (o *PostUsersAuthPasswordParams) SetContext(ctx context.Context) {
|
||||||
|
o.Context = ctx
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithHTTPClient adds the HTTPClient to the post users auth password params
|
||||||
|
func (o *PostUsersAuthPasswordParams) WithHTTPClient(client *http.Client) *PostUsersAuthPasswordParams {
|
||||||
|
o.SetHTTPClient(client)
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetHTTPClient adds the HTTPClient to the post users auth password params
|
||||||
|
func (o *PostUsersAuthPasswordParams) SetHTTPClient(client *http.Client) {
|
||||||
|
o.HTTPClient = client
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithUserAuthRequest adds the userAuthRequest to the post users auth password params
|
||||||
|
func (o *PostUsersAuthPasswordParams) WithUserAuthRequest(userAuthRequest *members_models.UserAuth) *PostUsersAuthPasswordParams {
|
||||||
|
o.SetUserAuthRequest(userAuthRequest)
|
||||||
|
return o
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetUserAuthRequest adds the userAuthRequest to the post users auth password params
|
||||||
|
func (o *PostUsersAuthPasswordParams) SetUserAuthRequest(userAuthRequest *members_models.UserAuth) {
|
||||||
|
o.UserAuthRequest = userAuthRequest
|
||||||
|
}
|
||||||
|
|
||||||
|
// WriteToRequest writes these params to a swagger request
|
||||||
|
func (o *PostUsersAuthPasswordParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := r.SetTimeout(o.timeout); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
var res []error
|
||||||
|
if o.UserAuthRequest != nil {
|
||||||
|
if err := r.SetBodyParam(o.UserAuthRequest); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -0,0 +1,403 @@
|
||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// (c) 2012-2023 by Vernon Keenan
|
||||||
|
// All rights reserved worldwide.
|
||||||
|
// Proprietary product; unlicensed use is not allowed
|
||||||
|
|
||||||
|
package users
|
||||||
|
|
||||||
|
// 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/work/lib/api/members/members_models"
|
||||||
|
)
|
||||||
|
|
||||||
|
// PostUsersAuthPasswordReader is a Reader for the PostUsersAuthPassword structure.
|
||||||
|
type PostUsersAuthPasswordReader struct {
|
||||||
|
formats strfmt.Registry
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReadResponse reads a server response into the received o.
|
||||||
|
func (o *PostUsersAuthPasswordReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) {
|
||||||
|
switch response.Code() {
|
||||||
|
case 200:
|
||||||
|
result := NewPostUsersAuthPasswordOK()
|
||||||
|
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
case 401:
|
||||||
|
result := NewPostUsersAuthPasswordUnauthorized()
|
||||||
|
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, result
|
||||||
|
case 404:
|
||||||
|
result := NewPostUsersAuthPasswordNotFound()
|
||||||
|
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, result
|
||||||
|
case 422:
|
||||||
|
result := NewPostUsersAuthPasswordUnprocessableEntity()
|
||||||
|
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, result
|
||||||
|
case 500:
|
||||||
|
result := NewPostUsersAuthPasswordInternalServerError()
|
||||||
|
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())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthPasswordOK creates a PostUsersAuthPasswordOK with default headers values
|
||||||
|
func NewPostUsersAuthPasswordOK() *PostUsersAuthPasswordOK {
|
||||||
|
return &PostUsersAuthPasswordOK{}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthPasswordOK describes a response with status code 200, with default header values.
|
||||||
|
|
||||||
|
Response with single UserAuth object
|
||||||
|
*/
|
||||||
|
type PostUsersAuthPasswordOK struct {
|
||||||
|
Payload *members_models.UserAuth
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsSuccess returns true when this post users auth password o k response has a 2xx status code
|
||||||
|
func (o *PostUsersAuthPasswordOK) IsSuccess() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsRedirect returns true when this post users auth password o k response has a 3xx status code
|
||||||
|
func (o *PostUsersAuthPasswordOK) IsRedirect() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsClientError returns true when this post users auth password o k response has a 4xx status code
|
||||||
|
func (o *PostUsersAuthPasswordOK) IsClientError() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsServerError returns true when this post users auth password o k response has a 5xx status code
|
||||||
|
func (o *PostUsersAuthPasswordOK) IsServerError() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsCode returns true when this post users auth password o k response a status code equal to that given
|
||||||
|
func (o *PostUsersAuthPasswordOK) IsCode(code int) bool {
|
||||||
|
return code == 200
|
||||||
|
}
|
||||||
|
|
||||||
|
// Code gets the status code for the post users auth password o k response
|
||||||
|
func (o *PostUsersAuthPasswordOK) Code() int {
|
||||||
|
return 200
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordOK) Error() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth/password][%d] postUsersAuthPasswordOK %+v", 200, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordOK) String() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth/password][%d] postUsersAuthPasswordOK %+v", 200, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordOK) GetPayload() *members_models.UserAuth {
|
||||||
|
return o.Payload
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
o.Payload = new(members_models.UserAuth)
|
||||||
|
|
||||||
|
// response payload
|
||||||
|
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthPasswordUnauthorized creates a PostUsersAuthPasswordUnauthorized with default headers values
|
||||||
|
func NewPostUsersAuthPasswordUnauthorized() *PostUsersAuthPasswordUnauthorized {
|
||||||
|
return &PostUsersAuthPasswordUnauthorized{}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthPasswordUnauthorized describes a response with status code 401, with default header values.
|
||||||
|
|
||||||
|
Access Unauthorized, invalid API-KEY was used
|
||||||
|
*/
|
||||||
|
type PostUsersAuthPasswordUnauthorized struct {
|
||||||
|
Payload *members_models.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsSuccess returns true when this post users auth password unauthorized response has a 2xx status code
|
||||||
|
func (o *PostUsersAuthPasswordUnauthorized) IsSuccess() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsRedirect returns true when this post users auth password unauthorized response has a 3xx status code
|
||||||
|
func (o *PostUsersAuthPasswordUnauthorized) IsRedirect() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsClientError returns true when this post users auth password unauthorized response has a 4xx status code
|
||||||
|
func (o *PostUsersAuthPasswordUnauthorized) IsClientError() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsServerError returns true when this post users auth password unauthorized response has a 5xx status code
|
||||||
|
func (o *PostUsersAuthPasswordUnauthorized) IsServerError() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsCode returns true when this post users auth password unauthorized response a status code equal to that given
|
||||||
|
func (o *PostUsersAuthPasswordUnauthorized) IsCode(code int) bool {
|
||||||
|
return code == 401
|
||||||
|
}
|
||||||
|
|
||||||
|
// Code gets the status code for the post users auth password unauthorized response
|
||||||
|
func (o *PostUsersAuthPasswordUnauthorized) Code() int {
|
||||||
|
return 401
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordUnauthorized) Error() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth/password][%d] postUsersAuthPasswordUnauthorized %+v", 401, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordUnauthorized) String() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth/password][%d] postUsersAuthPasswordUnauthorized %+v", 401, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordUnauthorized) GetPayload() *members_models.Error {
|
||||||
|
return o.Payload
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordUnauthorized) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
o.Payload = new(members_models.Error)
|
||||||
|
|
||||||
|
// response payload
|
||||||
|
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthPasswordNotFound creates a PostUsersAuthPasswordNotFound with default headers values
|
||||||
|
func NewPostUsersAuthPasswordNotFound() *PostUsersAuthPasswordNotFound {
|
||||||
|
return &PostUsersAuthPasswordNotFound{}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthPasswordNotFound describes a response with status code 404, with default header values.
|
||||||
|
|
||||||
|
Resource was not found
|
||||||
|
*/
|
||||||
|
type PostUsersAuthPasswordNotFound struct {
|
||||||
|
Payload *members_models.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsSuccess returns true when this post users auth password not found response has a 2xx status code
|
||||||
|
func (o *PostUsersAuthPasswordNotFound) IsSuccess() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsRedirect returns true when this post users auth password not found response has a 3xx status code
|
||||||
|
func (o *PostUsersAuthPasswordNotFound) IsRedirect() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsClientError returns true when this post users auth password not found response has a 4xx status code
|
||||||
|
func (o *PostUsersAuthPasswordNotFound) IsClientError() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsServerError returns true when this post users auth password not found response has a 5xx status code
|
||||||
|
func (o *PostUsersAuthPasswordNotFound) IsServerError() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsCode returns true when this post users auth password not found response a status code equal to that given
|
||||||
|
func (o *PostUsersAuthPasswordNotFound) IsCode(code int) bool {
|
||||||
|
return code == 404
|
||||||
|
}
|
||||||
|
|
||||||
|
// Code gets the status code for the post users auth password not found response
|
||||||
|
func (o *PostUsersAuthPasswordNotFound) Code() int {
|
||||||
|
return 404
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordNotFound) Error() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth/password][%d] postUsersAuthPasswordNotFound %+v", 404, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordNotFound) String() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth/password][%d] postUsersAuthPasswordNotFound %+v", 404, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordNotFound) GetPayload() *members_models.Error {
|
||||||
|
return o.Payload
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordNotFound) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
o.Payload = new(members_models.Error)
|
||||||
|
|
||||||
|
// response payload
|
||||||
|
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthPasswordUnprocessableEntity creates a PostUsersAuthPasswordUnprocessableEntity with default headers values
|
||||||
|
func NewPostUsersAuthPasswordUnprocessableEntity() *PostUsersAuthPasswordUnprocessableEntity {
|
||||||
|
return &PostUsersAuthPasswordUnprocessableEntity{}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthPasswordUnprocessableEntity describes a response with status code 422, with default header values.
|
||||||
|
|
||||||
|
Unprocessable Entity, likely a bad parameter
|
||||||
|
*/
|
||||||
|
type PostUsersAuthPasswordUnprocessableEntity struct {
|
||||||
|
Payload *members_models.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsSuccess returns true when this post users auth password unprocessable entity response has a 2xx status code
|
||||||
|
func (o *PostUsersAuthPasswordUnprocessableEntity) IsSuccess() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsRedirect returns true when this post users auth password unprocessable entity response has a 3xx status code
|
||||||
|
func (o *PostUsersAuthPasswordUnprocessableEntity) IsRedirect() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsClientError returns true when this post users auth password unprocessable entity response has a 4xx status code
|
||||||
|
func (o *PostUsersAuthPasswordUnprocessableEntity) IsClientError() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsServerError returns true when this post users auth password unprocessable entity response has a 5xx status code
|
||||||
|
func (o *PostUsersAuthPasswordUnprocessableEntity) IsServerError() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsCode returns true when this post users auth password unprocessable entity response a status code equal to that given
|
||||||
|
func (o *PostUsersAuthPasswordUnprocessableEntity) IsCode(code int) bool {
|
||||||
|
return code == 422
|
||||||
|
}
|
||||||
|
|
||||||
|
// Code gets the status code for the post users auth password unprocessable entity response
|
||||||
|
func (o *PostUsersAuthPasswordUnprocessableEntity) Code() int {
|
||||||
|
return 422
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordUnprocessableEntity) Error() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth/password][%d] postUsersAuthPasswordUnprocessableEntity %+v", 422, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordUnprocessableEntity) String() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth/password][%d] postUsersAuthPasswordUnprocessableEntity %+v", 422, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordUnprocessableEntity) GetPayload() *members_models.Error {
|
||||||
|
return o.Payload
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordUnprocessableEntity) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
o.Payload = new(members_models.Error)
|
||||||
|
|
||||||
|
// response payload
|
||||||
|
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthPasswordInternalServerError creates a PostUsersAuthPasswordInternalServerError with default headers values
|
||||||
|
func NewPostUsersAuthPasswordInternalServerError() *PostUsersAuthPasswordInternalServerError {
|
||||||
|
return &PostUsersAuthPasswordInternalServerError{}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthPasswordInternalServerError describes a response with status code 500, with default header values.
|
||||||
|
|
||||||
|
Server Internal Error
|
||||||
|
*/
|
||||||
|
type PostUsersAuthPasswordInternalServerError struct {
|
||||||
|
Payload *members_models.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsSuccess returns true when this post users auth password internal server error response has a 2xx status code
|
||||||
|
func (o *PostUsersAuthPasswordInternalServerError) IsSuccess() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsRedirect returns true when this post users auth password internal server error response has a 3xx status code
|
||||||
|
func (o *PostUsersAuthPasswordInternalServerError) IsRedirect() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsClientError returns true when this post users auth password internal server error response has a 4xx status code
|
||||||
|
func (o *PostUsersAuthPasswordInternalServerError) IsClientError() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsServerError returns true when this post users auth password internal server error response has a 5xx status code
|
||||||
|
func (o *PostUsersAuthPasswordInternalServerError) IsServerError() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsCode returns true when this post users auth password internal server error response a status code equal to that given
|
||||||
|
func (o *PostUsersAuthPasswordInternalServerError) IsCode(code int) bool {
|
||||||
|
return code == 500
|
||||||
|
}
|
||||||
|
|
||||||
|
// Code gets the status code for the post users auth password internal server error response
|
||||||
|
func (o *PostUsersAuthPasswordInternalServerError) Code() int {
|
||||||
|
return 500
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordInternalServerError) Error() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth/password][%d] postUsersAuthPasswordInternalServerError %+v", 500, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordInternalServerError) String() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth/password][%d] postUsersAuthPasswordInternalServerError %+v", 500, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordInternalServerError) GetPayload() *members_models.Error {
|
||||||
|
return o.Payload
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthPasswordInternalServerError) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
o.Payload = new(members_models.Error)
|
||||||
|
|
||||||
|
// response payload
|
||||||
|
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -0,0 +1,403 @@
|
||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// (c) 2012-2023 by Vernon Keenan
|
||||||
|
// All rights reserved worldwide.
|
||||||
|
// Proprietary product; unlicensed use is not allowed
|
||||||
|
|
||||||
|
package users
|
||||||
|
|
||||||
|
// 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/work/lib/api/members/members_models"
|
||||||
|
)
|
||||||
|
|
||||||
|
// PostUsersAuthReader is a Reader for the PostUsersAuth structure.
|
||||||
|
type PostUsersAuthReader struct {
|
||||||
|
formats strfmt.Registry
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReadResponse reads a server response into the received o.
|
||||||
|
func (o *PostUsersAuthReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) {
|
||||||
|
switch response.Code() {
|
||||||
|
case 200:
|
||||||
|
result := NewPostUsersAuthOK()
|
||||||
|
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
case 401:
|
||||||
|
result := NewPostUsersAuthUnauthorized()
|
||||||
|
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, result
|
||||||
|
case 404:
|
||||||
|
result := NewPostUsersAuthNotFound()
|
||||||
|
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, result
|
||||||
|
case 422:
|
||||||
|
result := NewPostUsersAuthUnprocessableEntity()
|
||||||
|
if err := result.readResponse(response, consumer, o.formats); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return nil, result
|
||||||
|
case 500:
|
||||||
|
result := NewPostUsersAuthInternalServerError()
|
||||||
|
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())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthOK creates a PostUsersAuthOK with default headers values
|
||||||
|
func NewPostUsersAuthOK() *PostUsersAuthOK {
|
||||||
|
return &PostUsersAuthOK{}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthOK describes a response with status code 200, with default header values.
|
||||||
|
|
||||||
|
Response with single UserAuth object
|
||||||
|
*/
|
||||||
|
type PostUsersAuthOK struct {
|
||||||
|
Payload *members_models.UserAuth
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsSuccess returns true when this post users auth o k response has a 2xx status code
|
||||||
|
func (o *PostUsersAuthOK) IsSuccess() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsRedirect returns true when this post users auth o k response has a 3xx status code
|
||||||
|
func (o *PostUsersAuthOK) IsRedirect() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsClientError returns true when this post users auth o k response has a 4xx status code
|
||||||
|
func (o *PostUsersAuthOK) IsClientError() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsServerError returns true when this post users auth o k response has a 5xx status code
|
||||||
|
func (o *PostUsersAuthOK) IsServerError() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsCode returns true when this post users auth o k response a status code equal to that given
|
||||||
|
func (o *PostUsersAuthOK) IsCode(code int) bool {
|
||||||
|
return code == 200
|
||||||
|
}
|
||||||
|
|
||||||
|
// Code gets the status code for the post users auth o k response
|
||||||
|
func (o *PostUsersAuthOK) Code() int {
|
||||||
|
return 200
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthOK) Error() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth][%d] postUsersAuthOK %+v", 200, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthOK) String() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth][%d] postUsersAuthOK %+v", 200, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthOK) GetPayload() *members_models.UserAuth {
|
||||||
|
return o.Payload
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
o.Payload = new(members_models.UserAuth)
|
||||||
|
|
||||||
|
// response payload
|
||||||
|
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthUnauthorized creates a PostUsersAuthUnauthorized with default headers values
|
||||||
|
func NewPostUsersAuthUnauthorized() *PostUsersAuthUnauthorized {
|
||||||
|
return &PostUsersAuthUnauthorized{}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthUnauthorized describes a response with status code 401, with default header values.
|
||||||
|
|
||||||
|
Access Unauthorized, invalid API-KEY was used
|
||||||
|
*/
|
||||||
|
type PostUsersAuthUnauthorized struct {
|
||||||
|
Payload *members_models.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsSuccess returns true when this post users auth unauthorized response has a 2xx status code
|
||||||
|
func (o *PostUsersAuthUnauthorized) IsSuccess() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsRedirect returns true when this post users auth unauthorized response has a 3xx status code
|
||||||
|
func (o *PostUsersAuthUnauthorized) IsRedirect() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsClientError returns true when this post users auth unauthorized response has a 4xx status code
|
||||||
|
func (o *PostUsersAuthUnauthorized) IsClientError() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsServerError returns true when this post users auth unauthorized response has a 5xx status code
|
||||||
|
func (o *PostUsersAuthUnauthorized) IsServerError() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsCode returns true when this post users auth unauthorized response a status code equal to that given
|
||||||
|
func (o *PostUsersAuthUnauthorized) IsCode(code int) bool {
|
||||||
|
return code == 401
|
||||||
|
}
|
||||||
|
|
||||||
|
// Code gets the status code for the post users auth unauthorized response
|
||||||
|
func (o *PostUsersAuthUnauthorized) Code() int {
|
||||||
|
return 401
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthUnauthorized) Error() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth][%d] postUsersAuthUnauthorized %+v", 401, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthUnauthorized) String() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth][%d] postUsersAuthUnauthorized %+v", 401, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthUnauthorized) GetPayload() *members_models.Error {
|
||||||
|
return o.Payload
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthUnauthorized) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
o.Payload = new(members_models.Error)
|
||||||
|
|
||||||
|
// response payload
|
||||||
|
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthNotFound creates a PostUsersAuthNotFound with default headers values
|
||||||
|
func NewPostUsersAuthNotFound() *PostUsersAuthNotFound {
|
||||||
|
return &PostUsersAuthNotFound{}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthNotFound describes a response with status code 404, with default header values.
|
||||||
|
|
||||||
|
Resource was not found
|
||||||
|
*/
|
||||||
|
type PostUsersAuthNotFound struct {
|
||||||
|
Payload *members_models.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsSuccess returns true when this post users auth not found response has a 2xx status code
|
||||||
|
func (o *PostUsersAuthNotFound) IsSuccess() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsRedirect returns true when this post users auth not found response has a 3xx status code
|
||||||
|
func (o *PostUsersAuthNotFound) IsRedirect() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsClientError returns true when this post users auth not found response has a 4xx status code
|
||||||
|
func (o *PostUsersAuthNotFound) IsClientError() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsServerError returns true when this post users auth not found response has a 5xx status code
|
||||||
|
func (o *PostUsersAuthNotFound) IsServerError() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsCode returns true when this post users auth not found response a status code equal to that given
|
||||||
|
func (o *PostUsersAuthNotFound) IsCode(code int) bool {
|
||||||
|
return code == 404
|
||||||
|
}
|
||||||
|
|
||||||
|
// Code gets the status code for the post users auth not found response
|
||||||
|
func (o *PostUsersAuthNotFound) Code() int {
|
||||||
|
return 404
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthNotFound) Error() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth][%d] postUsersAuthNotFound %+v", 404, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthNotFound) String() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth][%d] postUsersAuthNotFound %+v", 404, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthNotFound) GetPayload() *members_models.Error {
|
||||||
|
return o.Payload
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthNotFound) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
o.Payload = new(members_models.Error)
|
||||||
|
|
||||||
|
// response payload
|
||||||
|
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthUnprocessableEntity creates a PostUsersAuthUnprocessableEntity with default headers values
|
||||||
|
func NewPostUsersAuthUnprocessableEntity() *PostUsersAuthUnprocessableEntity {
|
||||||
|
return &PostUsersAuthUnprocessableEntity{}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthUnprocessableEntity describes a response with status code 422, with default header values.
|
||||||
|
|
||||||
|
Unprocessable Entity, likely a bad parameter
|
||||||
|
*/
|
||||||
|
type PostUsersAuthUnprocessableEntity struct {
|
||||||
|
Payload *members_models.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsSuccess returns true when this post users auth unprocessable entity response has a 2xx status code
|
||||||
|
func (o *PostUsersAuthUnprocessableEntity) IsSuccess() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsRedirect returns true when this post users auth unprocessable entity response has a 3xx status code
|
||||||
|
func (o *PostUsersAuthUnprocessableEntity) IsRedirect() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsClientError returns true when this post users auth unprocessable entity response has a 4xx status code
|
||||||
|
func (o *PostUsersAuthUnprocessableEntity) IsClientError() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsServerError returns true when this post users auth unprocessable entity response has a 5xx status code
|
||||||
|
func (o *PostUsersAuthUnprocessableEntity) IsServerError() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsCode returns true when this post users auth unprocessable entity response a status code equal to that given
|
||||||
|
func (o *PostUsersAuthUnprocessableEntity) IsCode(code int) bool {
|
||||||
|
return code == 422
|
||||||
|
}
|
||||||
|
|
||||||
|
// Code gets the status code for the post users auth unprocessable entity response
|
||||||
|
func (o *PostUsersAuthUnprocessableEntity) Code() int {
|
||||||
|
return 422
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthUnprocessableEntity) Error() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth][%d] postUsersAuthUnprocessableEntity %+v", 422, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthUnprocessableEntity) String() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth][%d] postUsersAuthUnprocessableEntity %+v", 422, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthUnprocessableEntity) GetPayload() *members_models.Error {
|
||||||
|
return o.Payload
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthUnprocessableEntity) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
o.Payload = new(members_models.Error)
|
||||||
|
|
||||||
|
// response payload
|
||||||
|
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostUsersAuthInternalServerError creates a PostUsersAuthInternalServerError with default headers values
|
||||||
|
func NewPostUsersAuthInternalServerError() *PostUsersAuthInternalServerError {
|
||||||
|
return &PostUsersAuthInternalServerError{}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthInternalServerError describes a response with status code 500, with default header values.
|
||||||
|
|
||||||
|
Server Internal Error
|
||||||
|
*/
|
||||||
|
type PostUsersAuthInternalServerError struct {
|
||||||
|
Payload *members_models.Error
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsSuccess returns true when this post users auth internal server error response has a 2xx status code
|
||||||
|
func (o *PostUsersAuthInternalServerError) IsSuccess() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsRedirect returns true when this post users auth internal server error response has a 3xx status code
|
||||||
|
func (o *PostUsersAuthInternalServerError) IsRedirect() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsClientError returns true when this post users auth internal server error response has a 4xx status code
|
||||||
|
func (o *PostUsersAuthInternalServerError) IsClientError() bool {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsServerError returns true when this post users auth internal server error response has a 5xx status code
|
||||||
|
func (o *PostUsersAuthInternalServerError) IsServerError() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsCode returns true when this post users auth internal server error response a status code equal to that given
|
||||||
|
func (o *PostUsersAuthInternalServerError) IsCode(code int) bool {
|
||||||
|
return code == 500
|
||||||
|
}
|
||||||
|
|
||||||
|
// Code gets the status code for the post users auth internal server error response
|
||||||
|
func (o *PostUsersAuthInternalServerError) Code() int {
|
||||||
|
return 500
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthInternalServerError) Error() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth][%d] postUsersAuthInternalServerError %+v", 500, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthInternalServerError) String() string {
|
||||||
|
return fmt.Sprintf("[POST /users/auth][%d] postUsersAuthInternalServerError %+v", 500, o.Payload)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthInternalServerError) GetPayload() *members_models.Error {
|
||||||
|
return o.Payload
|
||||||
|
}
|
||||||
|
|
||||||
|
func (o *PostUsersAuthInternalServerError) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
o.Payload = new(members_models.Error)
|
||||||
|
|
||||||
|
// response payload
|
||||||
|
if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -38,6 +38,10 @@ type ClientService interface {
|
||||||
|
|
||||||
PostUsers(params *PostUsersParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*PostUsersOK, error)
|
PostUsers(params *PostUsersParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*PostUsersOK, error)
|
||||||
|
|
||||||
|
PostUsersAuth(params *PostUsersAuthParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*PostUsersAuthOK, error)
|
||||||
|
|
||||||
|
PostUsersAuthPassword(params *PostUsersAuthPasswordParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*PostUsersAuthPasswordOK, error)
|
||||||
|
|
||||||
PostUsersOnboard(params *PostUsersOnboardParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*PostUsersOnboardOK, error)
|
PostUsersOnboard(params *PostUsersOnboardParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*PostUsersOnboardOK, error)
|
||||||
|
|
||||||
PutUsers(params *PutUsersParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*PutUsersOK, error)
|
PutUsers(params *PutUsersParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*PutUsersOK, error)
|
||||||
|
@ -127,6 +131,88 @@ func (a *Client) PostUsers(params *PostUsersParams, authInfo runtime.ClientAuthI
|
||||||
panic(msg)
|
panic(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuth authenticates a user
|
||||||
|
|
||||||
|
Authenticate a user
|
||||||
|
*/
|
||||||
|
func (a *Client) PostUsersAuth(params *PostUsersAuthParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*PostUsersAuthOK, error) {
|
||||||
|
// TODO: Validate the params before sending
|
||||||
|
if params == nil {
|
||||||
|
params = NewPostUsersAuthParams()
|
||||||
|
}
|
||||||
|
op := &runtime.ClientOperation{
|
||||||
|
ID: "postUsersAuth",
|
||||||
|
Method: "POST",
|
||||||
|
PathPattern: "/users/auth",
|
||||||
|
ProducesMediaTypes: []string{"application/json"},
|
||||||
|
ConsumesMediaTypes: []string{"application/json"},
|
||||||
|
Schemes: []string{"http"},
|
||||||
|
Params: params,
|
||||||
|
Reader: &PostUsersAuthReader{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.(*PostUsersAuthOK)
|
||||||
|
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 postUsersAuth: API contract not enforced by server. Client expected to get an error, but got: %T", result)
|
||||||
|
panic(msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
PostUsersAuthPassword changes user password
|
||||||
|
|
||||||
|
Change user password
|
||||||
|
*/
|
||||||
|
func (a *Client) PostUsersAuthPassword(params *PostUsersAuthPasswordParams, authInfo runtime.ClientAuthInfoWriter, opts ...ClientOption) (*PostUsersAuthPasswordOK, error) {
|
||||||
|
// TODO: Validate the params before sending
|
||||||
|
if params == nil {
|
||||||
|
params = NewPostUsersAuthPasswordParams()
|
||||||
|
}
|
||||||
|
op := &runtime.ClientOperation{
|
||||||
|
ID: "postUsersAuthPassword",
|
||||||
|
Method: "POST",
|
||||||
|
PathPattern: "/users/auth/password",
|
||||||
|
ProducesMediaTypes: []string{"application/json"},
|
||||||
|
ConsumesMediaTypes: []string{"application/json"},
|
||||||
|
Schemes: []string{"http"},
|
||||||
|
Params: params,
|
||||||
|
Reader: &PostUsersAuthPasswordReader{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.(*PostUsersAuthPasswordOK)
|
||||||
|
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 postUsersAuthPassword: API contract not enforced by server. Client expected to get an error, but got: %T", result)
|
||||||
|
panic(msg)
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
PostUsersOnboard asyncs onboard new users
|
PostUsersOnboard asyncs onboard new users
|
||||||
|
|
||||||
|
|
|
@ -1,270 +0,0 @@
|
||||||
// Code generated by go-swagger; DO NOT EDIT.
|
|
||||||
|
|
||||||
// (c) 2012-2023 by Vernon Keenan
|
|
||||||
// All rights reserved worldwide.
|
|
||||||
// Proprietary product; unlicensed use is not allowed
|
|
||||||
|
|
||||||
package members_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"
|
|
||||||
"encoding/json"
|
|
||||||
|
|
||||||
"github.com/go-openapi/errors"
|
|
||||||
"github.com/go-openapi/strfmt"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
"github.com/go-openapi/validate"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ClerkUser Clerk user object
|
|
||||||
//
|
|
||||||
// swagger:model ClerkUser
|
|
||||||
type ClerkUser struct {
|
|
||||||
|
|
||||||
// If Backup Codes are configured on the instance, you can provide them to enable it on the newly created user without the need to reset them.
|
|
||||||
// You must provide the backup codes in plain format or the corresponding bcrypt digest.
|
|
||||||
BackupCodes []string `json:"backup_codes"`
|
|
||||||
|
|
||||||
// A custom date/time denoting _when_ the user signed up to the application, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`).
|
|
||||||
CreatedAt *string `json:"created_at,omitempty"`
|
|
||||||
|
|
||||||
// Email addresses to add to the user.
|
|
||||||
// Must be unique across your instance.
|
|
||||||
// The first email address will be set as the user's primary email address.
|
|
||||||
EmailAddress []string `json:"email_address"`
|
|
||||||
|
|
||||||
// The ID of the user as used in your external systems or your previous authentication solution.
|
|
||||||
// Must be unique across your instance.
|
|
||||||
ExternalID *string `json:"external_id,omitempty"`
|
|
||||||
|
|
||||||
// The first name to assign to the user
|
|
||||||
FirstName *string `json:"first_name,omitempty"`
|
|
||||||
|
|
||||||
// The last name to assign to the user
|
|
||||||
LastName *string `json:"last_name,omitempty"`
|
|
||||||
|
|
||||||
// The plaintext password to give the user.
|
|
||||||
// Must be at least 8 characters long, and can not be in any list of hacked passwords.
|
|
||||||
Password *string `json:"password,omitempty"`
|
|
||||||
|
|
||||||
// In case you already have the password digests and not the passwords, you can use them for the newly created user via this property.
|
|
||||||
// The digests should be generated with one of the supported algorithms.
|
|
||||||
// The hashing algorithm can be specified using the `password_hasher` property.
|
|
||||||
PasswordDigest *string `json:"password_digest,omitempty"`
|
|
||||||
|
|
||||||
// The hashing algorithm that was used to generate the password digest.
|
|
||||||
// The algorithms we support at the moment are [bcrypt](https://en.wikipedia.org/wiki/Bcrypt), md5, pbkdf2_sha256, [pbkdf2_sha256_django](https://docs.djangoproject.com/en/4.0/topics/auth/passwords/), [scrypt_firebase](https://firebaseopensource.com/projects/firebase/scrypt/) and 2 [argon2](https://argon2.online/) variants, argon2i and argon2id.
|
|
||||||
// Each of the above expects the incoming digest to be of a particular format.
|
|
||||||
//
|
|
||||||
// More specifically:
|
|
||||||
//
|
|
||||||
// **bcrypt:** The digest should be of the following form:
|
|
||||||
//
|
|
||||||
// `$<algorithm version>$<cost>$<salt & hash>`
|
|
||||||
//
|
|
||||||
// **md5:** The digest should follow the regular form e.g.:
|
|
||||||
//
|
|
||||||
// `5f4dcc3b5aa765d61d8327deb882cf99`
|
|
||||||
//
|
|
||||||
// **pbkdf2_sha256:** This is the PBKDF2 algorithm using the SHA256 hashing function. The format should be as follows:
|
|
||||||
//
|
|
||||||
// `pbkdf2_sha256$<iterations>$<salt>$<hash>`
|
|
||||||
//
|
|
||||||
// Note: Both the salt and the hash are expected to be base64-encoded.
|
|
||||||
//
|
|
||||||
// **pbkdf2_sha256_django:** This is the Django-specific variant of PBKDF2 and the digest should have the following format (as exported from Django):
|
|
||||||
//
|
|
||||||
// `pbkdf2_sha256$<iterations>$<salt>$<hash>`
|
|
||||||
//
|
|
||||||
// Note: The salt is expected to be un-encoded, the hash is expected base64-encoded.
|
|
||||||
//
|
|
||||||
// **pbkdf2_sha1:** This is similar to pkbdf2_sha256_django, but with two differences:
|
|
||||||
// 1. uses sha1 instead of sha256
|
|
||||||
// 2. accepts the hash as a hex-encoded string
|
|
||||||
//
|
|
||||||
// The format is the following:
|
|
||||||
//
|
|
||||||
// `pbkdf2_sha1$<iterations>$<salt>$<hash-as-hex-string>`
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// **scrypt_firebase:** The Firebase-specific variant of scrypt.
|
|
||||||
// The value is expected to have 6 segments separated by the $ character and include the following information:
|
|
||||||
//
|
|
||||||
// _hash:_ The actual Base64 hash. This can be retrieved when exporting the user from Firebase.
|
|
||||||
// _salt:_ The salt used to generate the above hash. Again, this is given when exporting the user.
|
|
||||||
// _signer key:_ The base64 encoded signer key.
|
|
||||||
// _salt separator:_ The base64 encoded salt separator.
|
|
||||||
// _rounds:_ The number of rounds the algorithm needs to run.
|
|
||||||
// _memory cost:_ The cost of the algorithm run
|
|
||||||
//
|
|
||||||
// The first 2 (hash and salt) are per user and can be retrieved when exporting the user from Firebase.
|
|
||||||
// The other 4 values (signer key, salt separator, rounds and memory cost) are project-wide settings and can be retrieved from the project's password hash parameters.
|
|
||||||
//
|
|
||||||
// Once you have all these, you can combine it in the following format and send this as the digest in order for Clerk to accept it:
|
|
||||||
//
|
|
||||||
// `<hash>$<salt>$<signer key>$<salt separator>$<rounds>$<memory cost>`
|
|
||||||
//
|
|
||||||
// **argon2i:** Algorithms in the argon2 family generate digests that encode the following information:
|
|
||||||
//
|
|
||||||
// _version (v):_ The argon version, version 19 is assumed
|
|
||||||
// _memory (m):_ The memory used by the algorithm (in kibibytes)
|
|
||||||
// _iterations (t):_ The number of iterations to perform
|
|
||||||
// _parallelism (p):_ The number of threads to use
|
|
||||||
//
|
|
||||||
// Parts are demarcated by the `$` character, with the first part identifying the algorithm variant.
|
|
||||||
// The middle part is a comma-separated list of the encoding options (memory, iterations, parallelism).
|
|
||||||
// The final part is the actual digest.
|
|
||||||
//
|
|
||||||
// `$argon2i$v=19$m=4096,t=3,p=1$4t6CL3P7YiHBtwESXawI8Hm20zJj4cs7/4/G3c187e0$m7RQFczcKr5bIR0IIxbpO2P0tyrLjf3eUW3M3QSwnLc`
|
|
||||||
//
|
|
||||||
// **argon2id:** See the previous algorithm for an explanation of the formatting.
|
|
||||||
//
|
|
||||||
// For the argon2id case, the value of the algorithm in the first part of the digest is `argon2id`:
|
|
||||||
//
|
|
||||||
// `$argon2id$v=19$m=64,t=4,p=8$Z2liZXJyaXNo$iGXEpMBTDYQ8G/71tF0qGjxRHEmR3gpGULcE93zUJVU`
|
|
||||||
//
|
|
||||||
// If you need support for any particular hashing algorithm, [please let us know](https://clerk.com/support).
|
|
||||||
// Enum: [bcrypt md5 pbkdf2_sha256 pbkdf2_sha256_django pbkdf2_sha1 scrypt_firebase argon2i argon2id]
|
|
||||||
PasswordHasher *string `json:"password_hasher,omitempty"`
|
|
||||||
|
|
||||||
// Phone numbers to add to the user.
|
|
||||||
// Must be unique across your instance.
|
|
||||||
// The first phone number will be set as the user's primary phone number.
|
|
||||||
PhoneNumber []string `json:"phone_number"`
|
|
||||||
|
|
||||||
// Metadata saved on the user, that is only visible to your Backend API
|
|
||||||
PrivateMetadata interface{} `json:"private_metadata,omitempty"`
|
|
||||||
|
|
||||||
// Metadata saved on the user, that is visible to both your Frontend and Backend APIs
|
|
||||||
PublicMetadata interface{} `json:"public_metadata,omitempty"`
|
|
||||||
|
|
||||||
// When set to `true` all password checks are skipped.
|
|
||||||
// It is recommended to use this method only when migrating plaintext passwords to Clerk.
|
|
||||||
// Upon migration the user base should be prompted to pick stronger password.
|
|
||||||
SkipPasswordChecks bool `json:"skip_password_checks,omitempty"`
|
|
||||||
|
|
||||||
// When set to `true`, `password` is not required anymore when creating the user and can be omitted.
|
|
||||||
// This is useful when you are trying to create a user that doesn't have a password, in an instance that is using passwords.
|
|
||||||
// Please note that you cannot use this flag if password is the only way for a user to sign into your instance.
|
|
||||||
SkipPasswordRequirement bool `json:"skip_password_requirement,omitempty"`
|
|
||||||
|
|
||||||
// In case TOTP is configured on the instance, you can provide the secret to enable it on the newly created user without the need to reset it.
|
|
||||||
// Please note that currently the supported options are:
|
|
||||||
// * Period: 30 seconds
|
|
||||||
// * Code length: 6 digits
|
|
||||||
// * Algorithm: SHA1
|
|
||||||
TotpSecret *string `json:"totp_secret,omitempty"`
|
|
||||||
|
|
||||||
// Metadata saved on the user, that can be updated from both the Frontend and Backend APIs.
|
|
||||||
// Note: Since this data can be modified from the frontend, it is not guaranteed to be safe.
|
|
||||||
UnsafeMetadata interface{} `json:"unsafe_metadata,omitempty"`
|
|
||||||
|
|
||||||
// The username to give to the user.
|
|
||||||
// It must be unique across your instance.
|
|
||||||
Username *string `json:"username,omitempty"`
|
|
||||||
|
|
||||||
// Web3 wallets to add to the user.
|
|
||||||
// Must be unique across your instance.
|
|
||||||
// The first wallet will be set as the user's primary wallet.
|
|
||||||
Web3Wallet []string `json:"web3_wallet"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validate validates this clerk user
|
|
||||||
func (m *ClerkUser) Validate(formats strfmt.Registry) error {
|
|
||||||
var res []error
|
|
||||||
|
|
||||||
if err := m.validatePasswordHasher(formats); err != nil {
|
|
||||||
res = append(res, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(res) > 0 {
|
|
||||||
return errors.CompositeValidationError(res...)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
var clerkUserTypePasswordHasherPropEnum []interface{}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
var res []string
|
|
||||||
if err := json.Unmarshal([]byte(`["bcrypt","md5","pbkdf2_sha256","pbkdf2_sha256_django","pbkdf2_sha1","scrypt_firebase","argon2i","argon2id"]`), &res); err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
for _, v := range res {
|
|
||||||
clerkUserTypePasswordHasherPropEnum = append(clerkUserTypePasswordHasherPropEnum, v)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
|
|
||||||
// ClerkUserPasswordHasherBcrypt captures enum value "bcrypt"
|
|
||||||
ClerkUserPasswordHasherBcrypt string = "bcrypt"
|
|
||||||
|
|
||||||
// ClerkUserPasswordHasherMd5 captures enum value "md5"
|
|
||||||
ClerkUserPasswordHasherMd5 string = "md5"
|
|
||||||
|
|
||||||
// ClerkUserPasswordHasherPbkdf2Sha256 captures enum value "pbkdf2_sha256"
|
|
||||||
ClerkUserPasswordHasherPbkdf2Sha256 string = "pbkdf2_sha256"
|
|
||||||
|
|
||||||
// ClerkUserPasswordHasherPbkdf2Sha256Django captures enum value "pbkdf2_sha256_django"
|
|
||||||
ClerkUserPasswordHasherPbkdf2Sha256Django string = "pbkdf2_sha256_django"
|
|
||||||
|
|
||||||
// ClerkUserPasswordHasherPbkdf2Sha1 captures enum value "pbkdf2_sha1"
|
|
||||||
ClerkUserPasswordHasherPbkdf2Sha1 string = "pbkdf2_sha1"
|
|
||||||
|
|
||||||
// ClerkUserPasswordHasherScryptFirebase captures enum value "scrypt_firebase"
|
|
||||||
ClerkUserPasswordHasherScryptFirebase string = "scrypt_firebase"
|
|
||||||
|
|
||||||
// ClerkUserPasswordHasherArgon2i captures enum value "argon2i"
|
|
||||||
ClerkUserPasswordHasherArgon2i string = "argon2i"
|
|
||||||
|
|
||||||
// ClerkUserPasswordHasherArgon2id captures enum value "argon2id"
|
|
||||||
ClerkUserPasswordHasherArgon2id string = "argon2id"
|
|
||||||
)
|
|
||||||
|
|
||||||
// prop value enum
|
|
||||||
func (m *ClerkUser) validatePasswordHasherEnum(path, location string, value string) error {
|
|
||||||
if err := validate.EnumCase(path, location, value, clerkUserTypePasswordHasherPropEnum, true); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *ClerkUser) validatePasswordHasher(formats strfmt.Registry) error {
|
|
||||||
if swag.IsZero(m.PasswordHasher) { // not required
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// value enum
|
|
||||||
if err := m.validatePasswordHasherEnum("password_hasher", "body", *m.PasswordHasher); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ContextValidate validates this clerk user based on context it is used
|
|
||||||
func (m *ClerkUser) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
|
||||||
func (m *ClerkUser) MarshalBinary() ([]byte, error) {
|
|
||||||
if m == nil {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
return swag.WriteJSON(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalBinary interface implementation
|
|
||||||
func (m *ClerkUser) UnmarshalBinary(b []byte) error {
|
|
||||||
var res ClerkUser
|
|
||||||
if err := swag.ReadJSON(b, &res); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*m = res
|
|
||||||
return nil
|
|
||||||
}
|
|
|
@ -161,6 +161,9 @@ type User struct {
|
||||||
// Profile
|
// Profile
|
||||||
ProfileID *string `json:"ProfileID,omitempty"`
|
ProfileID *string `json:"ProfileID,omitempty"`
|
||||||
|
|
||||||
|
// Login Provider
|
||||||
|
Provider *string `json:"Provider,omitempty"`
|
||||||
|
|
||||||
// Info Emails
|
// Info Emails
|
||||||
ReceivesAdminEmails *bool `json:"ReceivesAdminEmails,omitempty"`
|
ReceivesAdminEmails *bool `json:"ReceivesAdminEmails,omitempty"`
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,132 @@
|
||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// (c) 2012-2023 by Vernon Keenan
|
||||||
|
// All rights reserved worldwide.
|
||||||
|
// Proprietary product; unlicensed use is not allowed
|
||||||
|
|
||||||
|
package members_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"
|
||||||
|
)
|
||||||
|
|
||||||
|
// UserAuth user auth
|
||||||
|
//
|
||||||
|
// swagger:model UserAuth
|
||||||
|
type UserAuth struct {
|
||||||
|
|
||||||
|
// Access Token
|
||||||
|
AccessToken *string `json:"accessToken,omitempty"`
|
||||||
|
|
||||||
|
// Account ID
|
||||||
|
AccountID *string `json:"accountId,omitempty"`
|
||||||
|
|
||||||
|
// API Key
|
||||||
|
APIKey *string `json:"apiKey,omitempty"`
|
||||||
|
|
||||||
|
// Company Name
|
||||||
|
CompanyName *string `json:"companyName,omitempty"`
|
||||||
|
|
||||||
|
// Contact
|
||||||
|
ContactID *string `json:"contactId,omitempty"`
|
||||||
|
|
||||||
|
// Email address
|
||||||
|
Email string `json:"email,omitempty"`
|
||||||
|
|
||||||
|
// Environment
|
||||||
|
Environment *string `json:"environment,omitempty"`
|
||||||
|
|
||||||
|
// The first name
|
||||||
|
FirstName *string `json:"firstName,omitempty"`
|
||||||
|
|
||||||
|
// GitHub
|
||||||
|
GitHub *string `json:"gitHub,omitempty"`
|
||||||
|
|
||||||
|
// Record ID
|
||||||
|
ID string `json:"id,omitempty"`
|
||||||
|
|
||||||
|
// Photo URL
|
||||||
|
Image *string `json:"image,omitempty"`
|
||||||
|
|
||||||
|
// Active
|
||||||
|
IsActive *bool `json:"isActive,omitempty"`
|
||||||
|
|
||||||
|
// IP address of last login
|
||||||
|
LastIP *string `json:"lastIp,omitempty"`
|
||||||
|
|
||||||
|
// Last login time
|
||||||
|
LastLogin *string `json:"lastLogin,omitempty"`
|
||||||
|
|
||||||
|
// The Last Name
|
||||||
|
LastName *string `json:"lastName,omitempty"`
|
||||||
|
|
||||||
|
// LinkedIn
|
||||||
|
LinkedIn *string `json:"linkedIn,omitempty"`
|
||||||
|
|
||||||
|
// Number of times user has logged in
|
||||||
|
LoginCount *int64 `json:"loginCount,omitempty"`
|
||||||
|
|
||||||
|
// Mobile
|
||||||
|
MobilePhone *string `json:"mobilePhone,omitempty"`
|
||||||
|
|
||||||
|
// Name
|
||||||
|
Name *string `json:"name,omitempty"`
|
||||||
|
|
||||||
|
// Password
|
||||||
|
Password *string `json:"password,omitempty"`
|
||||||
|
|
||||||
|
// Phone
|
||||||
|
Phone *string `json:"phone,omitempty"`
|
||||||
|
|
||||||
|
// Portal Role Level
|
||||||
|
PortalRole *string `json:"portalRole,omitempty"`
|
||||||
|
|
||||||
|
// Provider
|
||||||
|
Provider *string `json:"provider,omitempty"`
|
||||||
|
|
||||||
|
// Onboarding Status
|
||||||
|
Status *string `json:"status,omitempty"`
|
||||||
|
|
||||||
|
// Tenant ID associated with this user
|
||||||
|
TenantID *string `json:"tenantId,omitempty"`
|
||||||
|
|
||||||
|
// Title
|
||||||
|
Title *string `json:"title,omitempty"`
|
||||||
|
|
||||||
|
// Twitter
|
||||||
|
Twitter *string `json:"twitter,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this user auth
|
||||||
|
func (m *UserAuth) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this user auth based on context it is used
|
||||||
|
func (m *UserAuth) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *UserAuth) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *UserAuth) UnmarshalBinary(b []byte) error {
|
||||||
|
var res UserAuth
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -1,60 +0,0 @@
|
||||||
// Code generated by go-swagger; DO NOT EDIT.
|
|
||||||
|
|
||||||
// (c) 2012-2023 by Vernon Keenan
|
|
||||||
// All rights reserved worldwide.
|
|
||||||
// Proprietary product; unlicensed use is not allowed
|
|
||||||
|
|
||||||
package members_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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// WebhookClerkRequest Clerk webhook object
|
|
||||||
//
|
|
||||||
// swagger:model WebhookClerkRequest
|
|
||||||
type WebhookClerkRequest struct {
|
|
||||||
|
|
||||||
// data
|
|
||||||
Data interface{} `json:"data,omitempty"`
|
|
||||||
|
|
||||||
// object
|
|
||||||
Object string `json:"object,omitempty"`
|
|
||||||
|
|
||||||
// Clerk Name
|
|
||||||
Type string `json:"type,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validate validates this webhook clerk request
|
|
||||||
func (m *WebhookClerkRequest) Validate(formats strfmt.Registry) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ContextValidate validates this webhook clerk request based on context it is used
|
|
||||||
func (m *WebhookClerkRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
|
||||||
func (m *WebhookClerkRequest) MarshalBinary() ([]byte, error) {
|
|
||||||
if m == nil {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
return swag.WriteJSON(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalBinary interface implementation
|
|
||||||
func (m *WebhookClerkRequest) UnmarshalBinary(b []byte) error {
|
|
||||||
var res WebhookClerkRequest
|
|
||||||
if err := swag.ReadJSON(b, &res); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*m = res
|
|
||||||
return nil
|
|
||||||
}
|
|
|
@ -1,60 +0,0 @@
|
||||||
// Code generated by go-swagger; DO NOT EDIT.
|
|
||||||
|
|
||||||
// (c) 2012-2023 by Vernon Keenan
|
|
||||||
// All rights reserved worldwide.
|
|
||||||
// Proprietary product; unlicensed use is not allowed
|
|
||||||
|
|
||||||
package members_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"
|
|
||||||
)
|
|
||||||
|
|
||||||
// WebhookClerkResponse Clerk webhook object
|
|
||||||
//
|
|
||||||
// swagger:model WebhookClerkResponse
|
|
||||||
type WebhookClerkResponse struct {
|
|
||||||
|
|
||||||
// data
|
|
||||||
Data interface{} `json:"data,omitempty"`
|
|
||||||
|
|
||||||
// object
|
|
||||||
Object *string `json:"object,omitempty"`
|
|
||||||
|
|
||||||
// Clerk Name
|
|
||||||
Type *string `json:"type,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validate validates this webhook clerk response
|
|
||||||
func (m *WebhookClerkResponse) Validate(formats strfmt.Registry) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ContextValidate validates this webhook clerk response based on context it is used
|
|
||||||
func (m *WebhookClerkResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
|
||||||
func (m *WebhookClerkResponse) MarshalBinary() ([]byte, error) {
|
|
||||||
if m == nil {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
return swag.WriteJSON(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalBinary interface implementation
|
|
||||||
func (m *WebhookClerkResponse) UnmarshalBinary(b []byte) error {
|
|
||||||
var res WebhookClerkResponse
|
|
||||||
if err := swag.ReadJSON(b, &res); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*m = res
|
|
||||||
return nil
|
|
||||||
}
|
|
|
@ -55,6 +55,7 @@ func MarshalAuthUserToSwagger(obj *auth_models.User) *User {
|
||||||
EndOfDay: obj.EndOfDay,
|
EndOfDay: obj.EndOfDay,
|
||||||
Environment: obj.Environment,
|
Environment: obj.Environment,
|
||||||
Extension: obj.Extension,
|
Extension: obj.Extension,
|
||||||
|
ExternalAccount: obj.ExternalAccount,
|
||||||
FabricAPIKey: obj.FabricAPIKey,
|
FabricAPIKey: obj.FabricAPIKey,
|
||||||
Fax: obj.Fax,
|
Fax: obj.Fax,
|
||||||
FirstName: obj.FirstName,
|
FirstName: obj.FirstName,
|
||||||
|
@ -78,6 +79,7 @@ func MarshalAuthUserToSwagger(obj *auth_models.User) *User {
|
||||||
Phone: obj.Phone,
|
Phone: obj.Phone,
|
||||||
PortalRole: obj.PortalRole,
|
PortalRole: obj.PortalRole,
|
||||||
ProfileID: obj.ProfileID,
|
ProfileID: obj.ProfileID,
|
||||||
|
Provider: obj.Provider,
|
||||||
ReceivesAdminEmails: obj.ReceivesAdminEmails,
|
ReceivesAdminEmails: obj.ReceivesAdminEmails,
|
||||||
ReceivesAdminInfoEmails: obj.ReceivesAdminInfoEmails,
|
ReceivesAdminInfoEmails: obj.ReceivesAdminInfoEmails,
|
||||||
SenderEmail: obj.SenderEmail,
|
SenderEmail: obj.SenderEmail,
|
||||||
|
@ -85,7 +87,6 @@ func MarshalAuthUserToSwagger(obj *auth_models.User) *User {
|
||||||
Signature: obj.Signature,
|
Signature: obj.Signature,
|
||||||
SmallPhotoURL: obj.SmallPhotoURL,
|
SmallPhotoURL: obj.SmallPhotoURL,
|
||||||
StartOfDay: obj.StartOfDay,
|
StartOfDay: obj.StartOfDay,
|
||||||
ExternalAccount: obj.ExternalAccount,
|
|
||||||
TenantID: obj.TenantID,
|
TenantID: obj.TenantID,
|
||||||
TenantUsers: tenantUsers,
|
TenantUsers: tenantUsers,
|
||||||
TimeZone: obj.TimeZone,
|
TimeZone: obj.TimeZone,
|
||||||
|
|
|
@ -57,6 +57,7 @@ type User struct {
|
||||||
Phone string
|
Phone string
|
||||||
PortalRole string
|
PortalRole string
|
||||||
ProfileID string
|
ProfileID string
|
||||||
|
Provider string
|
||||||
ReceivesAdminEmails bool
|
ReceivesAdminEmails bool
|
||||||
ReceivesAdminInfoEmails bool
|
ReceivesAdminInfoEmails bool
|
||||||
ReceivesInfoEmails bool
|
ReceivesInfoEmails bool
|
||||||
|
|
|
@ -278,6 +278,9 @@ definitions:
|
||||||
ProfileID:
|
ProfileID:
|
||||||
description: Profile
|
description: Profile
|
||||||
type: string
|
type: string
|
||||||
|
Provider:
|
||||||
|
description: Provider
|
||||||
|
type: string
|
||||||
ReceivesAdminInfoEmails:
|
ReceivesAdminInfoEmails:
|
||||||
description: Admin Info Emails
|
description: Admin Info Emails
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|
|
@ -3,7 +3,7 @@ info:
|
||||||
version: 0.3.4
|
version: 0.3.4
|
||||||
title: "crm"
|
title: "crm"
|
||||||
description: "Customer Information Microservice"
|
description: "Customer Information Microservice"
|
||||||
termsOfService: "https://salesforcedevops.net/terms/"
|
termsOfService: "https://WorkDifferentWithAI.com/terms/"
|
||||||
contact:
|
contact:
|
||||||
email: "vern@vernonkeenan.com"
|
email: "vern@vernonkeenan.com"
|
||||||
license:
|
license:
|
||||||
|
@ -242,7 +242,7 @@ responses:
|
||||||
paths:
|
paths:
|
||||||
/accounts:
|
/accounts:
|
||||||
delete:
|
delete:
|
||||||
description: Delete SalesforceDevops.net Account record
|
description: Delete WorkDifferentWithAI.com Account record
|
||||||
operationId: deleteAccount
|
operationId: deleteAccount
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/parameters/accountIdQuery"
|
- $ref: "#/parameters/accountIdQuery"
|
||||||
|
@ -312,7 +312,7 @@ paths:
|
||||||
$ref: "#/responses/ServerError"
|
$ref: "#/responses/ServerError"
|
||||||
security:
|
security:
|
||||||
- ApiKeyAuth: []
|
- ApiKeyAuth: []
|
||||||
summary: Add a new account to SalesforceDevops.net
|
summary: Add a new account to WorkDifferentWithAI.com
|
||||||
tags:
|
tags:
|
||||||
- Accounts
|
- Accounts
|
||||||
put:
|
put:
|
||||||
|
@ -340,7 +340,7 @@ paths:
|
||||||
- Accounts
|
- Accounts
|
||||||
/assets:
|
/assets:
|
||||||
delete:
|
delete:
|
||||||
description: Delete SalesforceDevops.net Asset record
|
description: Delete WorkDifferentWithAI.com Asset record
|
||||||
operationId: deleteAsset
|
operationId: deleteAsset
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/parameters/assetIdQuery"
|
- $ref: "#/parameters/assetIdQuery"
|
||||||
|
@ -408,7 +408,7 @@ paths:
|
||||||
$ref: "#/responses/ServerError"
|
$ref: "#/responses/ServerError"
|
||||||
security:
|
security:
|
||||||
- ApiKeyAuth: []
|
- ApiKeyAuth: []
|
||||||
summary: Add a new asset to SalesforceDevops.net
|
summary: Add a new asset to WorkDifferentWithAI.com
|
||||||
tags:
|
tags:
|
||||||
- Assets
|
- Assets
|
||||||
put:
|
put:
|
||||||
|
@ -436,7 +436,7 @@ paths:
|
||||||
- Assets
|
- Assets
|
||||||
/contracts:
|
/contracts:
|
||||||
delete:
|
delete:
|
||||||
description: Delete SalesforceDevops.net Contract record
|
description: Delete WorkDifferentWithAI.com Contract record
|
||||||
operationId: deleteContract
|
operationId: deleteContract
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/parameters/contractIdQuery"
|
- $ref: "#/parameters/contractIdQuery"
|
||||||
|
@ -504,7 +504,7 @@ paths:
|
||||||
$ref: "#/responses/ServerError"
|
$ref: "#/responses/ServerError"
|
||||||
security:
|
security:
|
||||||
- ApiKeyAuth: []
|
- ApiKeyAuth: []
|
||||||
summary: Add a new contract to SalesforceDevops.net
|
summary: Add a new contract to WorkDifferentWithAI.com
|
||||||
tags:
|
tags:
|
||||||
- Contracts
|
- Contracts
|
||||||
put:
|
put:
|
||||||
|
@ -532,7 +532,7 @@ paths:
|
||||||
- Contracts
|
- Contracts
|
||||||
/contacts:
|
/contacts:
|
||||||
delete:
|
delete:
|
||||||
description: Delete SalesforceDevops.net Contact record
|
description: Delete WorkDifferentWithAI.com Contact record
|
||||||
operationId: deleteContact
|
operationId: deleteContact
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/parameters/contactIdQuery"
|
- $ref: "#/parameters/contactIdQuery"
|
||||||
|
@ -630,7 +630,7 @@ paths:
|
||||||
- Contacts
|
- Contacts
|
||||||
/leads:
|
/leads:
|
||||||
delete:
|
delete:
|
||||||
description: Delete SalesforceDevops.net Lead record
|
description: Delete WorkDifferentWithAI.com Lead record
|
||||||
operationId: deleteLead
|
operationId: deleteLead
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/parameters/leadIdQuery"
|
- $ref: "#/parameters/leadIdQuery"
|
||||||
|
|
|
@ -178,6 +178,10 @@ User:
|
||||||
description: Profile
|
description: Profile
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
|
Provider:
|
||||||
|
description: Login Provider
|
||||||
|
type: string
|
||||||
|
x-nullable: true
|
||||||
ReceivesAdminEmails:
|
ReceivesAdminEmails:
|
||||||
description: Info Emails
|
description: Info Emails
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|
|
@ -278,6 +278,9 @@ definitions:
|
||||||
ProfileID:
|
ProfileID:
|
||||||
description: Profile
|
description: Profile
|
||||||
type: string
|
type: string
|
||||||
|
Provider:
|
||||||
|
description: Provider
|
||||||
|
type: string
|
||||||
ReceivesAdminInfoEmails:
|
ReceivesAdminInfoEmails:
|
||||||
description: Admin Info Emails
|
description: Admin Info Emails
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|
|
@ -3,7 +3,7 @@ info:
|
||||||
version: 0.3.4
|
version: 0.3.4
|
||||||
title: "crm"
|
title: "crm"
|
||||||
description: "Customer Information Microservice"
|
description: "Customer Information Microservice"
|
||||||
termsOfService: "https://salesforcedevops.net/terms/"
|
termsOfService: "https://WorkDifferentWithAI.com/terms/"
|
||||||
contact:
|
contact:
|
||||||
email: "vern@vernonkeenan.com"
|
email: "vern@vernonkeenan.com"
|
||||||
license:
|
license:
|
||||||
|
@ -242,7 +242,7 @@ responses:
|
||||||
paths:
|
paths:
|
||||||
/accounts:
|
/accounts:
|
||||||
delete:
|
delete:
|
||||||
description: Delete SalesforceDevops.net Account record
|
description: Delete WorkDifferentWithAI.com Account record
|
||||||
operationId: deleteAccount
|
operationId: deleteAccount
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/parameters/accountIdQuery"
|
- $ref: "#/parameters/accountIdQuery"
|
||||||
|
@ -312,7 +312,7 @@ paths:
|
||||||
$ref: "#/responses/ServerError"
|
$ref: "#/responses/ServerError"
|
||||||
security:
|
security:
|
||||||
- ApiKeyAuth: []
|
- ApiKeyAuth: []
|
||||||
summary: Add a new account to SalesforceDevops.net
|
summary: Add a new account to WorkDifferentWithAI.com
|
||||||
tags:
|
tags:
|
||||||
- Accounts
|
- Accounts
|
||||||
put:
|
put:
|
||||||
|
@ -340,7 +340,7 @@ paths:
|
||||||
- Accounts
|
- Accounts
|
||||||
/assets:
|
/assets:
|
||||||
delete:
|
delete:
|
||||||
description: Delete SalesforceDevops.net Asset record
|
description: Delete WorkDifferentWithAI.com Asset record
|
||||||
operationId: deleteAsset
|
operationId: deleteAsset
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/parameters/assetIdQuery"
|
- $ref: "#/parameters/assetIdQuery"
|
||||||
|
@ -408,7 +408,7 @@ paths:
|
||||||
$ref: "#/responses/ServerError"
|
$ref: "#/responses/ServerError"
|
||||||
security:
|
security:
|
||||||
- ApiKeyAuth: []
|
- ApiKeyAuth: []
|
||||||
summary: Add a new asset to SalesforceDevops.net
|
summary: Add a new asset to WorkDifferentWithAI.com
|
||||||
tags:
|
tags:
|
||||||
- Assets
|
- Assets
|
||||||
put:
|
put:
|
||||||
|
@ -436,7 +436,7 @@ paths:
|
||||||
- Assets
|
- Assets
|
||||||
/contracts:
|
/contracts:
|
||||||
delete:
|
delete:
|
||||||
description: Delete SalesforceDevops.net Contract record
|
description: Delete WorkDifferentWithAI.com Contract record
|
||||||
operationId: deleteContract
|
operationId: deleteContract
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/parameters/contractIdQuery"
|
- $ref: "#/parameters/contractIdQuery"
|
||||||
|
@ -504,7 +504,7 @@ paths:
|
||||||
$ref: "#/responses/ServerError"
|
$ref: "#/responses/ServerError"
|
||||||
security:
|
security:
|
||||||
- ApiKeyAuth: []
|
- ApiKeyAuth: []
|
||||||
summary: Add a new contract to SalesforceDevops.net
|
summary: Add a new contract to WorkDifferentWithAI.com
|
||||||
tags:
|
tags:
|
||||||
- Contracts
|
- Contracts
|
||||||
put:
|
put:
|
||||||
|
@ -532,7 +532,7 @@ paths:
|
||||||
- Contracts
|
- Contracts
|
||||||
/contacts:
|
/contacts:
|
||||||
delete:
|
delete:
|
||||||
description: Delete SalesforceDevops.net Contact record
|
description: Delete WorkDifferentWithAI.com Contact record
|
||||||
operationId: deleteContact
|
operationId: deleteContact
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/parameters/contactIdQuery"
|
- $ref: "#/parameters/contactIdQuery"
|
||||||
|
@ -630,7 +630,7 @@ paths:
|
||||||
- Contacts
|
- Contacts
|
||||||
/leads:
|
/leads:
|
||||||
delete:
|
delete:
|
||||||
description: Delete SalesforceDevops.net Lead record
|
description: Delete WorkDifferentWithAI.com Lead record
|
||||||
operationId: deleteLead
|
operationId: deleteLead
|
||||||
parameters:
|
parameters:
|
||||||
- $ref: "#/parameters/leadIdQuery"
|
- $ref: "#/parameters/leadIdQuery"
|
||||||
|
|
|
@ -291,13 +291,13 @@ parameters:
|
||||||
required: true
|
required: true
|
||||||
schema:
|
schema:
|
||||||
$ref: "#/definitions/UserRequest"
|
$ref: "#/definitions/UserRequest"
|
||||||
WebhookClerkRequest:
|
UserAuthRequest:
|
||||||
description: An array of new WebhookClerk records
|
description: A simple user authentication request
|
||||||
in: body
|
in: body
|
||||||
name: webhookclerkRequest
|
name: UserAuthRequest
|
||||||
required: true
|
required: true
|
||||||
schema:
|
schema:
|
||||||
$ref: "#/definitions/WebhookClerkRequest"
|
$ref: "#/definitions/UserAuth"
|
||||||
activeQuery:
|
activeQuery:
|
||||||
description: Retrieve active records only?
|
description: Retrieve active records only?
|
||||||
in: query
|
in: query
|
||||||
|
@ -566,10 +566,10 @@ responses:
|
||||||
description: Response with User objects
|
description: Response with User objects
|
||||||
schema:
|
schema:
|
||||||
$ref: "#/definitions/UserResponse"
|
$ref: "#/definitions/UserResponse"
|
||||||
WebhookClerkResponse:
|
UserAuthResponse:
|
||||||
description: WebhookClerk Response Object
|
description: Response with single UserAuth object
|
||||||
schema:
|
schema:
|
||||||
$ref: "#/definitions/WebhookClerkResponse"
|
$ref: "#/definitions/UserAuth"
|
||||||
paths:
|
paths:
|
||||||
/attendees:
|
/attendees:
|
||||||
get:
|
get:
|
||||||
|
@ -3130,6 +3130,50 @@ paths:
|
||||||
summary: Update Transaction
|
summary: Update Transaction
|
||||||
tags:
|
tags:
|
||||||
- Transactions
|
- Transactions
|
||||||
|
/users/auth:
|
||||||
|
post:
|
||||||
|
description: Authenticate a user
|
||||||
|
operationId: postUsersAuth
|
||||||
|
parameters:
|
||||||
|
- $ref: "#/parameters/UserAuthRequest"
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
$ref: "#/responses/UserAuthResponse"
|
||||||
|
"401":
|
||||||
|
$ref: "#/responses/Unauthorized"
|
||||||
|
"404":
|
||||||
|
$ref: "#/responses/NotFound"
|
||||||
|
"422":
|
||||||
|
$ref: "#/responses/UnprocessableEntity"
|
||||||
|
"500":
|
||||||
|
$ref: "#/responses/ServerError"
|
||||||
|
summary: Authenticate a user
|
||||||
|
tags:
|
||||||
|
- Users
|
||||||
|
security:
|
||||||
|
- ApiKeyAuth: []
|
||||||
|
/users/auth/password:
|
||||||
|
post:
|
||||||
|
description: Change user password
|
||||||
|
operationId: postUsersAuthPassword
|
||||||
|
parameters:
|
||||||
|
- $ref: "#/parameters/UserAuthRequest"
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
$ref: "#/responses/UserAuthResponse"
|
||||||
|
"401":
|
||||||
|
$ref: "#/responses/Unauthorized"
|
||||||
|
"404":
|
||||||
|
$ref: "#/responses/NotFound"
|
||||||
|
"422":
|
||||||
|
$ref: "#/responses/UnprocessableEntity"
|
||||||
|
"500":
|
||||||
|
$ref: "#/responses/ServerError"
|
||||||
|
summary: Change user password
|
||||||
|
tags:
|
||||||
|
- Users
|
||||||
|
security:
|
||||||
|
- ApiKeyAuth: []
|
||||||
/users/onboard:
|
/users/onboard:
|
||||||
post:
|
post:
|
||||||
description: Async onboard new users
|
description: Async onboard new users
|
||||||
|
@ -3986,223 +4030,113 @@ definitions:
|
||||||
Meta:
|
Meta:
|
||||||
$ref: "#/definitions/ResponseMeta"
|
$ref: "#/definitions/ResponseMeta"
|
||||||
type: object
|
type: object
|
||||||
WebhookClerkRequest:
|
UserAuth:
|
||||||
description: Clerk webhook object
|
|
||||||
properties:
|
properties:
|
||||||
object:
|
accountId:
|
||||||
type: string
|
description: Account ID
|
||||||
type:
|
|
||||||
description: Clerk Name
|
|
||||||
type: string
|
|
||||||
data:
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
ClerkUser:
|
|
||||||
description: Clerk user object
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
external_id:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
accessToken:
|
||||||
The ID of the user as used in your external systems or your previous authentication solution.
|
description: Access Token
|
||||||
Must be unique across your instance.
|
|
||||||
first_name:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: The first name to assign to the user
|
apiKey:
|
||||||
last_name:
|
description: API Key
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: The last name to assign to the user
|
companyName:
|
||||||
email_address:
|
description: Company Name
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
contactId:
|
||||||
Email addresses to add to the user.
|
description: Contact
|
||||||
Must be unique across your instance.
|
|
||||||
The first email address will be set as the user's primary email address.
|
|
||||||
phone_number:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
email:
|
||||||
Phone numbers to add to the user.
|
description: Email address
|
||||||
Must be unique across your instance.
|
type: string
|
||||||
The first phone number will be set as the user's primary phone number.
|
environment:
|
||||||
web3_wallet:
|
description: Environment
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
firstName:
|
||||||
Web3 wallets to add to the user.
|
description: The first name
|
||||||
Must be unique across your instance.
|
type: string
|
||||||
The first wallet will be set as the user's primary wallet.
|
x-nullable: true
|
||||||
username:
|
image:
|
||||||
|
description: 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
|
||||||
|
lastIp:
|
||||||
|
description: IP address of last login
|
||||||
|
type: string
|
||||||
|
x-nullable: true
|
||||||
|
lastLogin:
|
||||||
|
description: Last login time
|
||||||
|
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
|
||||||
|
mobilePhone:
|
||||||
|
description: Mobile
|
||||||
|
type: string
|
||||||
|
x-nullable: true
|
||||||
|
name:
|
||||||
|
description: Name
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
|
||||||
The username to give to the user.
|
|
||||||
It must be unique across your instance.
|
|
||||||
password:
|
password:
|
||||||
|
description: Password
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
phone:
|
||||||
The plaintext password to give the user.
|
description: Phone
|
||||||
Must be at least 8 characters long, and can not be in any list of hacked passwords.
|
|
||||||
password_digest:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
portalRole:
|
||||||
In case you already have the password digests and not the passwords, you can use them for the newly created user via this property.
|
description: Portal Role Level
|
||||||
The digests should be generated with one of the supported algorithms.
|
|
||||||
The hashing algorithm can be specified using the `password_hasher` property.
|
|
||||||
password_hasher:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
provider:
|
||||||
The hashing algorithm that was used to generate the password digest.
|
description: Provider
|
||||||
The algorithms we support at the moment are [bcrypt](https://en.wikipedia.org/wiki/Bcrypt), md5, pbkdf2_sha256, [pbkdf2_sha256_django](https://docs.djangoproject.com/en/4.0/topics/auth/passwords/), [scrypt_firebase](https://firebaseopensource.com/projects/firebase/scrypt/) and 2 [argon2](https://argon2.online/) variants, argon2i and argon2id.
|
|
||||||
Each of the above expects the incoming digest to be of a particular format.
|
|
||||||
|
|
||||||
More specifically:
|
|
||||||
|
|
||||||
**bcrypt:** The digest should be of the following form:
|
|
||||||
|
|
||||||
`$<algorithm version>$<cost>$<salt & hash>`
|
|
||||||
|
|
||||||
**md5:** The digest should follow the regular form e.g.:
|
|
||||||
|
|
||||||
`5f4dcc3b5aa765d61d8327deb882cf99`
|
|
||||||
|
|
||||||
**pbkdf2_sha256:** This is the PBKDF2 algorithm using the SHA256 hashing function. The format should be as follows:
|
|
||||||
|
|
||||||
`pbkdf2_sha256$<iterations>$<salt>$<hash>`
|
|
||||||
|
|
||||||
Note: Both the salt and the hash are expected to be base64-encoded.
|
|
||||||
|
|
||||||
**pbkdf2_sha256_django:** This is the Django-specific variant of PBKDF2 and the digest should have the following format (as exported from Django):
|
|
||||||
|
|
||||||
`pbkdf2_sha256$<iterations>$<salt>$<hash>`
|
|
||||||
|
|
||||||
Note: The salt is expected to be un-encoded, the hash is expected base64-encoded.
|
|
||||||
|
|
||||||
**pbkdf2_sha1:** This is similar to pkbdf2_sha256_django, but with two differences:
|
|
||||||
1. uses sha1 instead of sha256
|
|
||||||
2. accepts the hash as a hex-encoded string
|
|
||||||
|
|
||||||
The format is the following:
|
|
||||||
|
|
||||||
`pbkdf2_sha1$<iterations>$<salt>$<hash-as-hex-string>`
|
|
||||||
|
|
||||||
|
|
||||||
**scrypt_firebase:** The Firebase-specific variant of scrypt.
|
|
||||||
The value is expected to have 6 segments separated by the $ character and include the following information:
|
|
||||||
|
|
||||||
_hash:_ The actual Base64 hash. This can be retrieved when exporting the user from Firebase.
|
|
||||||
_salt:_ The salt used to generate the above hash. Again, this is given when exporting the user.
|
|
||||||
_signer key:_ The base64 encoded signer key.
|
|
||||||
_salt separator:_ The base64 encoded salt separator.
|
|
||||||
_rounds:_ The number of rounds the algorithm needs to run.
|
|
||||||
_memory cost:_ The cost of the algorithm run
|
|
||||||
|
|
||||||
The first 2 (hash and salt) are per user and can be retrieved when exporting the user from Firebase.
|
|
||||||
The other 4 values (signer key, salt separator, rounds and memory cost) are project-wide settings and can be retrieved from the project's password hash parameters.
|
|
||||||
|
|
||||||
Once you have all these, you can combine it in the following format and send this as the digest in order for Clerk to accept it:
|
|
||||||
|
|
||||||
`<hash>$<salt>$<signer key>$<salt separator>$<rounds>$<memory cost>`
|
|
||||||
|
|
||||||
**argon2i:** Algorithms in the argon2 family generate digests that encode the following information:
|
|
||||||
|
|
||||||
_version (v):_ The argon version, version 19 is assumed
|
|
||||||
_memory (m):_ The memory used by the algorithm (in kibibytes)
|
|
||||||
_iterations (t):_ The number of iterations to perform
|
|
||||||
_parallelism (p):_ The number of threads to use
|
|
||||||
|
|
||||||
Parts are demarcated by the `$` character, with the first part identifying the algorithm variant.
|
|
||||||
The middle part is a comma-separated list of the encoding options (memory, iterations, parallelism).
|
|
||||||
The final part is the actual digest.
|
|
||||||
|
|
||||||
`$argon2i$v=19$m=4096,t=3,p=1$4t6CL3P7YiHBtwESXawI8Hm20zJj4cs7/4/G3c187e0$m7RQFczcKr5bIR0IIxbpO2P0tyrLjf3eUW3M3QSwnLc`
|
|
||||||
|
|
||||||
**argon2id:** See the previous algorithm for an explanation of the formatting.
|
|
||||||
|
|
||||||
For the argon2id case, the value of the algorithm in the first part of the digest is `argon2id`:
|
|
||||||
|
|
||||||
`$argon2id$v=19$m=64,t=4,p=8$Z2liZXJyaXNo$iGXEpMBTDYQ8G/71tF0qGjxRHEmR3gpGULcE93zUJVU`
|
|
||||||
|
|
||||||
If you need support for any particular hashing algorithm, [please let us know](https://clerk.com/support).
|
|
||||||
enum:
|
|
||||||
- bcrypt
|
|
||||||
- md5
|
|
||||||
- pbkdf2_sha256
|
|
||||||
- pbkdf2_sha256_django
|
|
||||||
- pbkdf2_sha1
|
|
||||||
- scrypt_firebase
|
|
||||||
- argon2i
|
|
||||||
- argon2id
|
|
||||||
skip_password_checks:
|
|
||||||
type: boolean
|
|
||||||
description: |-
|
|
||||||
When set to `true` all password checks are skipped.
|
|
||||||
It is recommended to use this method only when migrating plaintext passwords to Clerk.
|
|
||||||
Upon migration the user base should be prompted to pick stronger password.
|
|
||||||
skip_password_requirement:
|
|
||||||
type: boolean
|
|
||||||
description: |-
|
|
||||||
When set to `true`, `password` is not required anymore when creating the user and can be omitted.
|
|
||||||
This is useful when you are trying to create a user that doesn't have a password, in an instance that is using passwords.
|
|
||||||
Please note that you cannot use this flag if password is the only way for a user to sign into your instance.
|
|
||||||
totp_secret:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
status:
|
||||||
In case TOTP is configured on the instance, you can provide the secret to enable it on the newly created user without the need to reset it.
|
description: Onboarding Status
|
||||||
Please note that currently the supported options are:
|
type: string
|
||||||
* Period: 30 seconds
|
x-nullable: true
|
||||||
* Code length: 6 digits
|
tenantId:
|
||||||
* Algorithm: SHA1
|
description: Tenant ID associated with this user
|
||||||
backup_codes:
|
type: string
|
||||||
type: array
|
x-nullable: true
|
||||||
items:
|
title:
|
||||||
|
description: Title
|
||||||
|
type: string
|
||||||
|
x-nullable: true
|
||||||
|
twitter:
|
||||||
|
description: Twitter
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
|
||||||
If Backup Codes are configured on the instance, you can provide them to enable it on the newly created user without the need to reset them.
|
|
||||||
You must provide the backup codes in plain format or the corresponding bcrypt digest.
|
|
||||||
public_metadata:
|
|
||||||
type: object
|
|
||||||
description: Metadata saved on the user, that is visible to both
|
|
||||||
your Frontend and Backend APIs
|
|
||||||
private_metadata:
|
|
||||||
type: object
|
|
||||||
description: Metadata saved on the user, that is only visible to
|
|
||||||
your Backend API
|
|
||||||
unsafe_metadata:
|
|
||||||
type: object
|
|
||||||
description: |-
|
|
||||||
Metadata saved on the user, that can be updated from both the Frontend and Backend APIs.
|
|
||||||
Note: Since this data can be modified from the frontend, it is not guaranteed to be safe.
|
|
||||||
created_at:
|
|
||||||
type: string
|
|
||||||
x-nullable: true
|
|
||||||
description: A custom date/time denoting _when_ the user signed
|
|
||||||
up to the application, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`).
|
|
||||||
WebhookClerkResponse:
|
|
||||||
description: Clerk webhook object
|
|
||||||
properties:
|
|
||||||
object:
|
|
||||||
type: string
|
|
||||||
x-nullable: true
|
|
||||||
type:
|
|
||||||
description: Clerk Name
|
|
||||||
type: string
|
|
||||||
x-nullable: true
|
|
||||||
data:
|
|
||||||
type: object
|
|
||||||
type: object
|
type: object
|
||||||
|
|
|
@ -291,13 +291,13 @@ parameters:
|
||||||
required: true
|
required: true
|
||||||
schema:
|
schema:
|
||||||
$ref: "#/definitions/UserRequest"
|
$ref: "#/definitions/UserRequest"
|
||||||
WebhookClerkRequest:
|
UserAuthRequest:
|
||||||
description: An array of new WebhookClerk records
|
description: A simple user authentication request
|
||||||
in: body
|
in: body
|
||||||
name: webhookclerkRequest
|
name: UserAuthRequest
|
||||||
required: true
|
required: true
|
||||||
schema:
|
schema:
|
||||||
$ref: "#/definitions/WebhookClerkRequest"
|
$ref: "#/definitions/UserAuth"
|
||||||
activeQuery:
|
activeQuery:
|
||||||
description: Retrieve active records only?
|
description: Retrieve active records only?
|
||||||
in: query
|
in: query
|
||||||
|
@ -566,10 +566,10 @@ responses:
|
||||||
description: Response with User objects
|
description: Response with User objects
|
||||||
schema:
|
schema:
|
||||||
$ref: "#/definitions/UserResponse"
|
$ref: "#/definitions/UserResponse"
|
||||||
WebhookClerkResponse:
|
UserAuthResponse:
|
||||||
description: WebhookClerk Response Object
|
description: Response with single UserAuth object
|
||||||
schema:
|
schema:
|
||||||
$ref: "#/definitions/WebhookClerkResponse"
|
$ref: "#/definitions/UserAuth"
|
||||||
paths:
|
paths:
|
||||||
/attendees:
|
/attendees:
|
||||||
get:
|
get:
|
||||||
|
@ -3130,6 +3130,50 @@ paths:
|
||||||
summary: Update Transaction
|
summary: Update Transaction
|
||||||
tags:
|
tags:
|
||||||
- Transactions
|
- Transactions
|
||||||
|
/users/auth:
|
||||||
|
post:
|
||||||
|
description: Authenticate a user
|
||||||
|
operationId: postUsersAuth
|
||||||
|
parameters:
|
||||||
|
- $ref: "#/parameters/UserAuthRequest"
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
$ref: "#/responses/UserAuthResponse"
|
||||||
|
"401":
|
||||||
|
$ref: "#/responses/Unauthorized"
|
||||||
|
"404":
|
||||||
|
$ref: "#/responses/NotFound"
|
||||||
|
"422":
|
||||||
|
$ref: "#/responses/UnprocessableEntity"
|
||||||
|
"500":
|
||||||
|
$ref: "#/responses/ServerError"
|
||||||
|
summary: Authenticate a user
|
||||||
|
tags:
|
||||||
|
- Users
|
||||||
|
security:
|
||||||
|
- ApiKeyAuth: []
|
||||||
|
/users/auth/password:
|
||||||
|
post:
|
||||||
|
description: Change user password
|
||||||
|
operationId: postUsersAuthPassword
|
||||||
|
parameters:
|
||||||
|
- $ref: "#/parameters/UserAuthRequest"
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
$ref: "#/responses/UserAuthResponse"
|
||||||
|
"401":
|
||||||
|
$ref: "#/responses/Unauthorized"
|
||||||
|
"404":
|
||||||
|
$ref: "#/responses/NotFound"
|
||||||
|
"422":
|
||||||
|
$ref: "#/responses/UnprocessableEntity"
|
||||||
|
"500":
|
||||||
|
$ref: "#/responses/ServerError"
|
||||||
|
summary: Change user password
|
||||||
|
tags:
|
||||||
|
- Users
|
||||||
|
security:
|
||||||
|
- ApiKeyAuth: []
|
||||||
/users/onboard:
|
/users/onboard:
|
||||||
post:
|
post:
|
||||||
description: Async onboard new users
|
description: Async onboard new users
|
||||||
|
@ -3986,223 +4030,113 @@ definitions:
|
||||||
Meta:
|
Meta:
|
||||||
$ref: "#/definitions/ResponseMeta"
|
$ref: "#/definitions/ResponseMeta"
|
||||||
type: object
|
type: object
|
||||||
WebhookClerkRequest:
|
UserAuth:
|
||||||
description: Clerk webhook object
|
|
||||||
properties:
|
properties:
|
||||||
object:
|
accountId:
|
||||||
type: string
|
description: Account ID
|
||||||
type:
|
|
||||||
description: Clerk Name
|
|
||||||
type: string
|
|
||||||
data:
|
|
||||||
type: object
|
|
||||||
type: object
|
|
||||||
ClerkUser:
|
|
||||||
description: Clerk user object
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
external_id:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
accessToken:
|
||||||
The ID of the user as used in your external systems or your previous authentication solution.
|
description: Access Token
|
||||||
Must be unique across your instance.
|
|
||||||
first_name:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: The first name to assign to the user
|
apiKey:
|
||||||
last_name:
|
description: API Key
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: The last name to assign to the user
|
companyName:
|
||||||
email_address:
|
description: Company Name
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
contactId:
|
||||||
Email addresses to add to the user.
|
description: Contact
|
||||||
Must be unique across your instance.
|
|
||||||
The first email address will be set as the user's primary email address.
|
|
||||||
phone_number:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
email:
|
||||||
Phone numbers to add to the user.
|
description: Email address
|
||||||
Must be unique across your instance.
|
type: string
|
||||||
The first phone number will be set as the user's primary phone number.
|
environment:
|
||||||
web3_wallet:
|
description: Environment
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
firstName:
|
||||||
Web3 wallets to add to the user.
|
description: The first name
|
||||||
Must be unique across your instance.
|
type: string
|
||||||
The first wallet will be set as the user's primary wallet.
|
x-nullable: true
|
||||||
username:
|
image:
|
||||||
|
description: 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
|
||||||
|
lastIp:
|
||||||
|
description: IP address of last login
|
||||||
|
type: string
|
||||||
|
x-nullable: true
|
||||||
|
lastLogin:
|
||||||
|
description: Last login time
|
||||||
|
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
|
||||||
|
mobilePhone:
|
||||||
|
description: Mobile
|
||||||
|
type: string
|
||||||
|
x-nullable: true
|
||||||
|
name:
|
||||||
|
description: Name
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
|
||||||
The username to give to the user.
|
|
||||||
It must be unique across your instance.
|
|
||||||
password:
|
password:
|
||||||
|
description: Password
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
phone:
|
||||||
The plaintext password to give the user.
|
description: Phone
|
||||||
Must be at least 8 characters long, and can not be in any list of hacked passwords.
|
|
||||||
password_digest:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
portalRole:
|
||||||
In case you already have the password digests and not the passwords, you can use them for the newly created user via this property.
|
description: Portal Role Level
|
||||||
The digests should be generated with one of the supported algorithms.
|
|
||||||
The hashing algorithm can be specified using the `password_hasher` property.
|
|
||||||
password_hasher:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
provider:
|
||||||
The hashing algorithm that was used to generate the password digest.
|
description: Provider
|
||||||
The algorithms we support at the moment are [bcrypt](https://en.wikipedia.org/wiki/Bcrypt), md5, pbkdf2_sha256, [pbkdf2_sha256_django](https://docs.djangoproject.com/en/4.0/topics/auth/passwords/), [scrypt_firebase](https://firebaseopensource.com/projects/firebase/scrypt/) and 2 [argon2](https://argon2.online/) variants, argon2i and argon2id.
|
|
||||||
Each of the above expects the incoming digest to be of a particular format.
|
|
||||||
|
|
||||||
More specifically:
|
|
||||||
|
|
||||||
**bcrypt:** The digest should be of the following form:
|
|
||||||
|
|
||||||
`$<algorithm version>$<cost>$<salt & hash>`
|
|
||||||
|
|
||||||
**md5:** The digest should follow the regular form e.g.:
|
|
||||||
|
|
||||||
`5f4dcc3b5aa765d61d8327deb882cf99`
|
|
||||||
|
|
||||||
**pbkdf2_sha256:** This is the PBKDF2 algorithm using the SHA256 hashing function. The format should be as follows:
|
|
||||||
|
|
||||||
`pbkdf2_sha256$<iterations>$<salt>$<hash>`
|
|
||||||
|
|
||||||
Note: Both the salt and the hash are expected to be base64-encoded.
|
|
||||||
|
|
||||||
**pbkdf2_sha256_django:** This is the Django-specific variant of PBKDF2 and the digest should have the following format (as exported from Django):
|
|
||||||
|
|
||||||
`pbkdf2_sha256$<iterations>$<salt>$<hash>`
|
|
||||||
|
|
||||||
Note: The salt is expected to be un-encoded, the hash is expected base64-encoded.
|
|
||||||
|
|
||||||
**pbkdf2_sha1:** This is similar to pkbdf2_sha256_django, but with two differences:
|
|
||||||
1. uses sha1 instead of sha256
|
|
||||||
2. accepts the hash as a hex-encoded string
|
|
||||||
|
|
||||||
The format is the following:
|
|
||||||
|
|
||||||
`pbkdf2_sha1$<iterations>$<salt>$<hash-as-hex-string>`
|
|
||||||
|
|
||||||
|
|
||||||
**scrypt_firebase:** The Firebase-specific variant of scrypt.
|
|
||||||
The value is expected to have 6 segments separated by the $ character and include the following information:
|
|
||||||
|
|
||||||
_hash:_ The actual Base64 hash. This can be retrieved when exporting the user from Firebase.
|
|
||||||
_salt:_ The salt used to generate the above hash. Again, this is given when exporting the user.
|
|
||||||
_signer key:_ The base64 encoded signer key.
|
|
||||||
_salt separator:_ The base64 encoded salt separator.
|
|
||||||
_rounds:_ The number of rounds the algorithm needs to run.
|
|
||||||
_memory cost:_ The cost of the algorithm run
|
|
||||||
|
|
||||||
The first 2 (hash and salt) are per user and can be retrieved when exporting the user from Firebase.
|
|
||||||
The other 4 values (signer key, salt separator, rounds and memory cost) are project-wide settings and can be retrieved from the project's password hash parameters.
|
|
||||||
|
|
||||||
Once you have all these, you can combine it in the following format and send this as the digest in order for Clerk to accept it:
|
|
||||||
|
|
||||||
`<hash>$<salt>$<signer key>$<salt separator>$<rounds>$<memory cost>`
|
|
||||||
|
|
||||||
**argon2i:** Algorithms in the argon2 family generate digests that encode the following information:
|
|
||||||
|
|
||||||
_version (v):_ The argon version, version 19 is assumed
|
|
||||||
_memory (m):_ The memory used by the algorithm (in kibibytes)
|
|
||||||
_iterations (t):_ The number of iterations to perform
|
|
||||||
_parallelism (p):_ The number of threads to use
|
|
||||||
|
|
||||||
Parts are demarcated by the `$` character, with the first part identifying the algorithm variant.
|
|
||||||
The middle part is a comma-separated list of the encoding options (memory, iterations, parallelism).
|
|
||||||
The final part is the actual digest.
|
|
||||||
|
|
||||||
`$argon2i$v=19$m=4096,t=3,p=1$4t6CL3P7YiHBtwESXawI8Hm20zJj4cs7/4/G3c187e0$m7RQFczcKr5bIR0IIxbpO2P0tyrLjf3eUW3M3QSwnLc`
|
|
||||||
|
|
||||||
**argon2id:** See the previous algorithm for an explanation of the formatting.
|
|
||||||
|
|
||||||
For the argon2id case, the value of the algorithm in the first part of the digest is `argon2id`:
|
|
||||||
|
|
||||||
`$argon2id$v=19$m=64,t=4,p=8$Z2liZXJyaXNo$iGXEpMBTDYQ8G/71tF0qGjxRHEmR3gpGULcE93zUJVU`
|
|
||||||
|
|
||||||
If you need support for any particular hashing algorithm, [please let us know](https://clerk.com/support).
|
|
||||||
enum:
|
|
||||||
- bcrypt
|
|
||||||
- md5
|
|
||||||
- pbkdf2_sha256
|
|
||||||
- pbkdf2_sha256_django
|
|
||||||
- pbkdf2_sha1
|
|
||||||
- scrypt_firebase
|
|
||||||
- argon2i
|
|
||||||
- argon2id
|
|
||||||
skip_password_checks:
|
|
||||||
type: boolean
|
|
||||||
description: |-
|
|
||||||
When set to `true` all password checks are skipped.
|
|
||||||
It is recommended to use this method only when migrating plaintext passwords to Clerk.
|
|
||||||
Upon migration the user base should be prompted to pick stronger password.
|
|
||||||
skip_password_requirement:
|
|
||||||
type: boolean
|
|
||||||
description: |-
|
|
||||||
When set to `true`, `password` is not required anymore when creating the user and can be omitted.
|
|
||||||
This is useful when you are trying to create a user that doesn't have a password, in an instance that is using passwords.
|
|
||||||
Please note that you cannot use this flag if password is the only way for a user to sign into your instance.
|
|
||||||
totp_secret:
|
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
status:
|
||||||
In case TOTP is configured on the instance, you can provide the secret to enable it on the newly created user without the need to reset it.
|
description: Onboarding Status
|
||||||
Please note that currently the supported options are:
|
type: string
|
||||||
* Period: 30 seconds
|
x-nullable: true
|
||||||
* Code length: 6 digits
|
tenantId:
|
||||||
* Algorithm: SHA1
|
description: Tenant ID associated with this user
|
||||||
backup_codes:
|
type: string
|
||||||
type: array
|
x-nullable: true
|
||||||
items:
|
title:
|
||||||
|
description: Title
|
||||||
|
type: string
|
||||||
|
x-nullable: true
|
||||||
|
twitter:
|
||||||
|
description: Twitter
|
||||||
type: string
|
type: string
|
||||||
x-nullable: true
|
x-nullable: true
|
||||||
description: |-
|
|
||||||
If Backup Codes are configured on the instance, you can provide them to enable it on the newly created user without the need to reset them.
|
|
||||||
You must provide the backup codes in plain format or the corresponding bcrypt digest.
|
|
||||||
public_metadata:
|
|
||||||
type: object
|
|
||||||
description: Metadata saved on the user, that is visible to both
|
|
||||||
your Frontend and Backend APIs
|
|
||||||
private_metadata:
|
|
||||||
type: object
|
|
||||||
description: Metadata saved on the user, that is only visible to
|
|
||||||
your Backend API
|
|
||||||
unsafe_metadata:
|
|
||||||
type: object
|
|
||||||
description: |-
|
|
||||||
Metadata saved on the user, that can be updated from both the Frontend and Backend APIs.
|
|
||||||
Note: Since this data can be modified from the frontend, it is not guaranteed to be safe.
|
|
||||||
created_at:
|
|
||||||
type: string
|
|
||||||
x-nullable: true
|
|
||||||
description: A custom date/time denoting _when_ the user signed
|
|
||||||
up to the application, specified in RFC3339 format (e.g. `2012-10-20T07:15:20.902Z`).
|
|
||||||
WebhookClerkResponse:
|
|
||||||
description: Clerk webhook object
|
|
||||||
properties:
|
|
||||||
object:
|
|
||||||
type: string
|
|
||||||
x-nullable: true
|
|
||||||
type:
|
|
||||||
description: Clerk Name
|
|
||||||
type: string
|
|
||||||
x-nullable: true
|
|
||||||
data:
|
|
||||||
type: object
|
|
||||||
type: object
|
type: object
|
||||||
|
|
Loading…
Reference in New Issue