Added test case for Adapter
1. Removed config files from config folder. 2. Added test cases for the Adapter with code coverage of 91%. 3. Resolved linting issues.
This commit is contained in:
@@ -19,8 +19,8 @@ import (
|
|||||||
"github.com/beckn/beckn-onix/pkg/plugin"
|
"github.com/beckn/beckn-onix/pkg/plugin"
|
||||||
)
|
)
|
||||||
|
|
||||||
// config struct holds all configurations.
|
// Config struct holds all configurations.
|
||||||
type config struct {
|
type Config struct {
|
||||||
AppName string `yaml:"appName"`
|
AppName string `yaml:"appName"`
|
||||||
Log log.Config `yaml:"log"`
|
Log log.Config `yaml:"log"`
|
||||||
PluginManager *plugin.ManagerConfig `yaml:"pluginManager"`
|
PluginManager *plugin.ManagerConfig `yaml:"pluginManager"`
|
||||||
@@ -40,6 +40,7 @@ type timeoutConfig struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var configPath string
|
var configPath string
|
||||||
|
var runFunc = run
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
// Define and parse command-line flags.
|
// Define and parse command-line flags.
|
||||||
@@ -50,14 +51,14 @@ func main() {
|
|||||||
log.Infof(context.Background(), "Starting application with config: %s", configPath)
|
log.Infof(context.Background(), "Starting application with config: %s", configPath)
|
||||||
|
|
||||||
// Run the application within a context.
|
// Run the application within a context.
|
||||||
if err := run(context.Background(), configPath); err != nil {
|
if err := runFunc(context.Background(), configPath); err != nil {
|
||||||
log.Fatalf(context.Background(), err, "Application failed: %v", err)
|
log.Fatalf(context.Background(), err, "Application failed: %v", err)
|
||||||
}
|
}
|
||||||
log.Infof(context.Background(), "Application finished")
|
log.Infof(context.Background(), "Application finished")
|
||||||
}
|
}
|
||||||
|
|
||||||
// initConfig loads and validates the configuration.
|
// initConfig loads and validates the configuration.
|
||||||
func initConfig(ctx context.Context, path string) (*config, error) {
|
func initConfig(ctx context.Context, path string) (*Config, error) {
|
||||||
// Open the configuration file.
|
// Open the configuration file.
|
||||||
file, err := os.Open(path)
|
file, err := os.Open(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -66,7 +67,7 @@ func initConfig(ctx context.Context, path string) (*config, error) {
|
|||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
||||||
// Decode the YAML configuration.
|
// Decode the YAML configuration.
|
||||||
var cfg config
|
var cfg Config
|
||||||
if err := yaml.NewDecoder(file).Decode(&cfg); err != nil {
|
if err := yaml.NewDecoder(file).Decode(&cfg); err != nil {
|
||||||
return nil, fmt.Errorf("could not decode config: %w", err)
|
return nil, fmt.Errorf("could not decode config: %w", err)
|
||||||
}
|
}
|
||||||
@@ -80,7 +81,7 @@ func initConfig(ctx context.Context, path string) (*config, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// validateConfig validates the configuration.
|
// validateConfig validates the configuration.
|
||||||
func validateConfig(cfg *config) error {
|
func validateConfig(cfg *Config) error {
|
||||||
if strings.TrimSpace(cfg.AppName) == "" {
|
if strings.TrimSpace(cfg.AppName) == "" {
|
||||||
return fmt.Errorf("missing app name")
|
return fmt.Errorf("missing app name")
|
||||||
}
|
}
|
||||||
@@ -91,7 +92,7 @@ func validateConfig(cfg *config) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// newServer creates and initializes the HTTP server.
|
// newServer creates and initializes the HTTP server.
|
||||||
func newServer(ctx context.Context, mgr handler.PluginManager, cfg *config) (http.Handler, error) {
|
func newServer(ctx context.Context, mgr handler.PluginManager, cfg *Config) (http.Handler, error) {
|
||||||
mux := http.NewServeMux()
|
mux := http.NewServeMux()
|
||||||
err := module.Register(ctx, cfg.Modules, mux, mgr)
|
err := module.Register(ctx, cfg.Modules, mux, mgr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -100,6 +101,10 @@ func newServer(ctx context.Context, mgr handler.PluginManager, cfg *config) (htt
|
|||||||
return mux, nil
|
return mux, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var newManagerFunc = plugin.NewManager
|
||||||
|
var newServerFunc = newServer
|
||||||
|
var initLoggerFunc = log.InitLogger
|
||||||
|
|
||||||
// run encapsulates the application logic.
|
// run encapsulates the application logic.
|
||||||
func run(ctx context.Context, configPath string) error {
|
func run(ctx context.Context, configPath string) error {
|
||||||
closers := []func(){}
|
closers := []func(){}
|
||||||
@@ -109,13 +114,13 @@ func run(ctx context.Context, configPath string) error {
|
|||||||
return fmt.Errorf("failed to initialize config: %w", err)
|
return fmt.Errorf("failed to initialize config: %w", err)
|
||||||
}
|
}
|
||||||
log.Infof(ctx, "Initializing logger with config: %+v", cfg.Log)
|
log.Infof(ctx, "Initializing logger with config: %+v", cfg.Log)
|
||||||
if err := log.InitLogger(cfg.Log); err != nil {
|
if err := initLoggerFunc(cfg.Log); err != nil {
|
||||||
return fmt.Errorf("failed to initialize logger: %w", err)
|
return fmt.Errorf("failed to initialize logger: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize plugin manager.
|
// Initialize plugin manager.
|
||||||
log.Infof(ctx, "Initializing plugin manager")
|
log.Infof(ctx, "Initializing plugin manager")
|
||||||
mgr, closer, err := plugin.NewManager(ctx, cfg.PluginManager)
|
mgr, closer, err := newManagerFunc(ctx, cfg.PluginManager)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to create plugin manager: %w", err)
|
return fmt.Errorf("failed to create plugin manager: %w", err)
|
||||||
}
|
}
|
||||||
@@ -124,7 +129,7 @@ func run(ctx context.Context, configPath string) error {
|
|||||||
|
|
||||||
// Initialize HTTP server.
|
// Initialize HTTP server.
|
||||||
log.Infof(ctx, "Initializing HTTP server")
|
log.Infof(ctx, "Initializing HTTP server")
|
||||||
srv, err := newServer(ctx, mgr, cfg)
|
srv, err := newServerFunc(ctx, mgr, cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to initialize server: %w", err)
|
return fmt.Errorf("failed to initialize server: %w", err)
|
||||||
}
|
}
|
||||||
|
|||||||
514
cmd/adapter/main_test.go
Normal file
514
cmd/adapter/main_test.go
Normal file
@@ -0,0 +1,514 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
"flag"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/beckn/beckn-onix/core/module"
|
||||||
|
"github.com/beckn/beckn-onix/core/module/handler"
|
||||||
|
"github.com/beckn/beckn-onix/pkg/plugin"
|
||||||
|
"github.com/beckn/beckn-onix/pkg/plugin/definition"
|
||||||
|
"github.com/stretchr/testify/mock"
|
||||||
|
)
|
||||||
|
|
||||||
|
// MockPluginManager implements handler.PluginManager for testing.
|
||||||
|
type MockPluginManager struct {
|
||||||
|
mock.Mock
|
||||||
|
}
|
||||||
|
|
||||||
|
// Middleware returns a middleware function based on the provided configuration.
|
||||||
|
func (m *MockPluginManager) Middleware(ctx context.Context, cfg *plugin.Config) (func(http.Handler) http.Handler, error) {
|
||||||
|
args := m.Called(ctx, cfg)
|
||||||
|
return args.Get(0).(func(http.Handler) http.Handler), args.Error(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SignValidator returns a mock implementation of the Verifier interface.
|
||||||
|
func (m *MockPluginManager) SignValidator(ctx context.Context, cfg *plugin.Config) (definition.Verifier, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validator returns a mock implementation of the SchemaValidator interface.
|
||||||
|
func (m *MockPluginManager) Validator(ctx context.Context, cfg *plugin.Config) (definition.SchemaValidator, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Router returns a mock implementation of the Router interface.
|
||||||
|
func (m *MockPluginManager) Router(ctx context.Context, cfg *plugin.Config) (definition.Router, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Publisher returns a mock implementation of the Publisher interface.
|
||||||
|
func (m *MockPluginManager) Publisher(ctx context.Context, cfg *plugin.Config) (definition.Publisher, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Signer returns a mock implementation of the Signer interface.
|
||||||
|
func (m *MockPluginManager) Signer(ctx context.Context, cfg *plugin.Config) (definition.Signer, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step returns a mock implementation of the Step interface.
|
||||||
|
func (m *MockPluginManager) Step(ctx context.Context, cfg *plugin.Config) (definition.Step, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cache returns a mock implementation of the Cache interface.
|
||||||
|
func (m *MockPluginManager) Cache(ctx context.Context, cfg *plugin.Config) (definition.Cache, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// KeyManager returns a mock implementation of the KeyManager interface.
|
||||||
|
func (m *MockPluginManager) KeyManager(ctx context.Context, cache definition.Cache, rLookup definition.RegistryLookup, cfg *plugin.Config) (definition.KeyManager, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// SchemaValidator returns a mock implementation of the SchemaValidator interface.
|
||||||
|
func (m *MockPluginManager) SchemaValidator(ctx context.Context, cfg *plugin.Config) (definition.SchemaValidator, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// testConfigContent defines a mock configuration used in tests.
|
||||||
|
const testConfigContent = `
|
||||||
|
appName: "TestApp"
|
||||||
|
http:
|
||||||
|
port: "8080"
|
||||||
|
timeout:
|
||||||
|
read: 5
|
||||||
|
write: 5
|
||||||
|
idle: 10
|
||||||
|
`
|
||||||
|
|
||||||
|
// initLogger is a mock function to initialize the logger.
|
||||||
|
var initLogger = func(cfg *Config) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// mockRun is a mock implementation of the `run` function, simulating a successful run.
|
||||||
|
func mockRun(ctx context.Context, configPath string) error {
|
||||||
|
return nil // Simulate a successful run
|
||||||
|
}
|
||||||
|
|
||||||
|
// TestMainFunction tests the main function execution, including command-line argument parsing.
|
||||||
|
func TestMainFunction(t *testing.T) {
|
||||||
|
// Backup original run function and restore it after test
|
||||||
|
origRun := runFunc
|
||||||
|
defer func() { runFunc = origRun }()
|
||||||
|
runFunc = mockRun
|
||||||
|
|
||||||
|
origArgs := os.Args
|
||||||
|
defer func() { os.Args = origArgs }()
|
||||||
|
|
||||||
|
// Set mock command-line arguments
|
||||||
|
os.Args = []string{"cmd", "-config=../../config/test-config.yaml"}
|
||||||
|
|
||||||
|
fs := flag.NewFlagSet("test", flag.ExitOnError)
|
||||||
|
fs.StringVar(&configPath, "config", "../../config/clientSideHandler-config.yaml", "Path to the configuration file")
|
||||||
|
|
||||||
|
fs.Parse(os.Args[1:])
|
||||||
|
main()
|
||||||
|
}
|
||||||
|
|
||||||
|
// TestRunSuccess tests the successful execution of the run function with different configurations.
|
||||||
|
func TestRunSuccess(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
configData string
|
||||||
|
mockMgr func() (*plugin.Manager, func(), error)
|
||||||
|
mockLogger func(cfg *Config) error
|
||||||
|
mockServer func(ctx context.Context, mgr handler.PluginManager, cfg *Config) (http.Handler, error)
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "Valid Config",
|
||||||
|
configData: "valid_config.yaml",
|
||||||
|
mockMgr: func() (*plugin.Manager, func(), error) {
|
||||||
|
return &plugin.Manager{}, func() {}, nil
|
||||||
|
},
|
||||||
|
mockLogger: func(cfg *Config) error {
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
mockServer: func(ctx context.Context, mgr handler.PluginManager, cfg *Config) (http.Handler, error) {
|
||||||
|
return http.NewServeMux(), nil
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
testFilePath := tt.configData
|
||||||
|
mockConfig := `appName: "testAdapter"
|
||||||
|
log:
|
||||||
|
level: debug
|
||||||
|
destinations:
|
||||||
|
- type: stdout
|
||||||
|
context_keys:
|
||||||
|
- transaction_id
|
||||||
|
- message_id
|
||||||
|
http:
|
||||||
|
port: 8080
|
||||||
|
timeout:
|
||||||
|
read: 30
|
||||||
|
write: 30
|
||||||
|
idle: 30
|
||||||
|
plugin:
|
||||||
|
root: "/mock/plugins"
|
||||||
|
pluginZipPath: "/mock/plugins/plugins_bundle.zip"
|
||||||
|
plugins:
|
||||||
|
- testPlugin1
|
||||||
|
- testPlugin2
|
||||||
|
modules:
|
||||||
|
- name: testModule
|
||||||
|
type: transaction
|
||||||
|
path: /testPath
|
||||||
|
targetType: msgQ
|
||||||
|
plugin:
|
||||||
|
schemaValidator:
|
||||||
|
id: testValidator
|
||||||
|
publisher:
|
||||||
|
id: testPublisher
|
||||||
|
config:
|
||||||
|
project: test-project
|
||||||
|
topic: test-topic
|
||||||
|
router:
|
||||||
|
id: testRouter
|
||||||
|
config:
|
||||||
|
routingConfigPath: "/mock/configs/testRouting-config.yaml"`
|
||||||
|
|
||||||
|
err := os.WriteFile(testFilePath, []byte(mockConfig), 0644)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Failed to create test config file: %v", err)
|
||||||
|
}
|
||||||
|
defer os.Remove(testFilePath)
|
||||||
|
|
||||||
|
// Mock dependencies
|
||||||
|
originalNewManager := newManagerFunc
|
||||||
|
newManagerFunc = func(ctx context.Context, cfg *plugin.ManagerConfig) (*plugin.Manager, func(), error) {
|
||||||
|
return tt.mockMgr()
|
||||||
|
}
|
||||||
|
defer func() { newManagerFunc = originalNewManager }()
|
||||||
|
|
||||||
|
originalNewServer := newServerFunc
|
||||||
|
newServerFunc = func(ctx context.Context, mgr handler.PluginManager, cfg *Config) (http.Handler, error) {
|
||||||
|
return tt.mockServer(ctx, mgr, cfg)
|
||||||
|
}
|
||||||
|
defer func() { newServerFunc = originalNewServer }()
|
||||||
|
|
||||||
|
// Run function
|
||||||
|
err = run(ctx, testFilePath)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Expected no error, but got: %v", err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TestRunFailure validates failure scenarios for the run function.
|
||||||
|
func TestRunFailure(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
configData string
|
||||||
|
mockMgr func() (*plugin.Manager, func(), error)
|
||||||
|
mockLogger func(cfg *Config) error
|
||||||
|
mockServer func(ctx context.Context, mgr handler.PluginManager, cfg *Config) (http.Handler, error)
|
||||||
|
expectedErr string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "Invalid Config File",
|
||||||
|
configData: "invalid_config.yaml",
|
||||||
|
mockMgr: func() (*plugin.Manager, func(), error) {
|
||||||
|
return &plugin.Manager{}, func() {}, nil
|
||||||
|
},
|
||||||
|
mockLogger: func(cfg *Config) error {
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
mockServer: func(ctx context.Context, mgr handler.PluginManager, cfg *Config) (http.Handler, error) {
|
||||||
|
return nil, errors.New("failed to start server")
|
||||||
|
},
|
||||||
|
expectedErr: "failed to initialize config: invalid config: missing app name",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
testFilePath := tt.configData
|
||||||
|
mockConfig := `invalid: "config"`
|
||||||
|
err := os.WriteFile(testFilePath, []byte(mockConfig), 0644)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Failed to create test config file: %v", err)
|
||||||
|
}
|
||||||
|
defer os.Remove(testFilePath)
|
||||||
|
|
||||||
|
// Mock dependencies
|
||||||
|
originalNewManager := newManagerFunc
|
||||||
|
newManagerFunc = func(ctx context.Context, cfg *plugin.ManagerConfig) (*plugin.Manager, func(), error) {
|
||||||
|
return tt.mockMgr()
|
||||||
|
}
|
||||||
|
defer func() { newManagerFunc = originalNewManager }()
|
||||||
|
|
||||||
|
originalNewServer := newServerFunc
|
||||||
|
newServerFunc = func(ctx context.Context, mgr handler.PluginManager, cfg *Config) (http.Handler, error) {
|
||||||
|
return tt.mockServer(ctx, mgr, cfg)
|
||||||
|
}
|
||||||
|
defer func() { newServerFunc = originalNewServer }()
|
||||||
|
|
||||||
|
// Run function
|
||||||
|
err = run(ctx, testFilePath)
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("Expected error, but got nil")
|
||||||
|
} else if err.Error() != tt.expectedErr {
|
||||||
|
t.Errorf("Expected error '%s', but got '%s'", tt.expectedErr, err.Error())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TestInitConfigSuccess tests the successful initialization of the config.
|
||||||
|
func TestInitConfigSuccess(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
configData string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "Valid Config",
|
||||||
|
configData: `
|
||||||
|
appName: "TestApp"
|
||||||
|
http:
|
||||||
|
port: "8080"
|
||||||
|
timeout:
|
||||||
|
read: 5
|
||||||
|
write: 5
|
||||||
|
idle: 10
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
configPath := "test_config_success.yaml"
|
||||||
|
defer os.Remove(configPath)
|
||||||
|
|
||||||
|
err := os.WriteFile(configPath, []byte(tt.configData), 0644)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Failed to create test config file: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = initConfig(context.Background(), configPath)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Expected no error, but got: %v", err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TestInitConfigFailure tests failure scenarios for config initialization.
|
||||||
|
func TestInitConfigFailure(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
configData string
|
||||||
|
expectedErr string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "Invalid YAML Format",
|
||||||
|
configData: `appName: "TestApp"\nhttp: { invalid_yaml }`,
|
||||||
|
expectedErr: "could not decode config",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Missing Required Fields",
|
||||||
|
configData: `appName: ""\nhttp:\n timeout:\n read: 5\n`,
|
||||||
|
expectedErr: "could not decode config: yaml: did not find expected key",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Non-Existent File",
|
||||||
|
configData: "",
|
||||||
|
expectedErr: "could not open config file",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
configPath := "test_config_failure.yaml"
|
||||||
|
|
||||||
|
if tt.configData != "" {
|
||||||
|
err := os.WriteFile(configPath, []byte(tt.configData), 0644)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Failed to create test config file: %v", err)
|
||||||
|
}
|
||||||
|
defer os.Remove(configPath)
|
||||||
|
} else {
|
||||||
|
// Ensure file does not exist for non-existent file test
|
||||||
|
os.Remove(configPath)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err := initConfig(context.Background(), configPath)
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("Expected error but got nil")
|
||||||
|
} else if !strings.Contains(err.Error(), tt.expectedErr) {
|
||||||
|
t.Errorf("Expected error containing '%s', but got '%s'", tt.expectedErr, err.Error())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TestNewServerSuccess tests successful server creation.
|
||||||
|
func TestNewServerSuccess(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
modules []module.Config
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "Successful server creation with no modules",
|
||||||
|
modules: []module.Config{}, // No modules to simplify the test
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
mockMgr := new(MockPluginManager) // Mocking PluginManager
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
cfg := &Config{
|
||||||
|
Modules: tt.modules,
|
||||||
|
HTTP: httpConfig{
|
||||||
|
Port: "8080",
|
||||||
|
Timeout: timeoutConfig{
|
||||||
|
Read: 5,
|
||||||
|
Write: 5,
|
||||||
|
Idle: 10,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
handler, err := newServer(context.Background(), mockMgr, cfg)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Expected no error, but got: %v", err)
|
||||||
|
}
|
||||||
|
if handler == nil {
|
||||||
|
t.Errorf("Expected handler to be non-nil, but got nil")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TestNewServerFailure tests failure scenarios when creating a server.
|
||||||
|
func TestNewServerFailure(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
modules []module.Config
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "Module registration failure",
|
||||||
|
modules: []module.Config{
|
||||||
|
{
|
||||||
|
Name: "InvalidModule",
|
||||||
|
Path: "/invalid",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
mockMgr := new(MockPluginManager) // Mocking PluginManager
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
cfg := &Config{
|
||||||
|
Modules: tt.modules,
|
||||||
|
HTTP: httpConfig{
|
||||||
|
Port: "8080",
|
||||||
|
Timeout: timeoutConfig{
|
||||||
|
Read: 5,
|
||||||
|
Write: 5,
|
||||||
|
Idle: 10,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
handler, err := newServer(context.Background(), mockMgr, cfg)
|
||||||
|
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("Expected an error, but got nil")
|
||||||
|
}
|
||||||
|
if handler != nil {
|
||||||
|
t.Errorf("Expected handler to be nil, but got a non-nil value")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TestValidateConfigSuccess tests validation of a correct config.
|
||||||
|
func TestValidateConfigSuccess(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
cfg Config
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "Valid Config",
|
||||||
|
cfg: Config{
|
||||||
|
AppName: "TestApp",
|
||||||
|
HTTP: httpConfig{
|
||||||
|
Port: "8080",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
err := validateConfig(&tt.cfg)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Expected no error, but got: %v", err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TestValidateConfigFailure tests validation failures for incorrect config.
|
||||||
|
func TestValidateConfigFailure(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
cfg Config
|
||||||
|
expectedErr string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "Missing AppName",
|
||||||
|
cfg: Config{
|
||||||
|
AppName: "",
|
||||||
|
HTTP: httpConfig{
|
||||||
|
Port: "8080",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
expectedErr: "missing app name",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Missing Port",
|
||||||
|
cfg: Config{
|
||||||
|
AppName: "TestApp",
|
||||||
|
HTTP: httpConfig{
|
||||||
|
Port: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
expectedErr: "missing port",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
err := validateConfig(&tt.cfg)
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("Expected error '%s', but got nil", tt.expectedErr)
|
||||||
|
} else if err.Error() != tt.expectedErr {
|
||||||
|
t.Errorf("Expected error '%s', but got '%s'", tt.expectedErr, err.Error())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
appName: "bapAdapter"
|
|
||||||
log:
|
|
||||||
level: debug
|
|
||||||
destinations:
|
|
||||||
- type: stdout
|
|
||||||
context_keys:
|
|
||||||
- transaction_id
|
|
||||||
- message_id
|
|
||||||
http:
|
|
||||||
port: 8080
|
|
||||||
timeout:
|
|
||||||
read: 30
|
|
||||||
write: 30
|
|
||||||
idle: 30
|
|
||||||
plugin:
|
|
||||||
root: /app/plugins
|
|
||||||
pluginZipPath: /mnt/gcs/plugins/plugins_bundle.zip
|
|
||||||
plugins:
|
|
||||||
- publisher Src version raw comp zip
|
|
||||||
- nopschemavalidator
|
|
||||||
- router
|
|
||||||
- nopsigner
|
|
||||||
- nopsignvalidator
|
|
||||||
- reqpreprocessor
|
|
||||||
- gcpAuthMdw
|
|
||||||
modules:
|
|
||||||
- name: reciever
|
|
||||||
type: transaction
|
|
||||||
path: /reciever
|
|
||||||
targetType: msgQ
|
|
||||||
plugin:
|
|
||||||
schemaValidator:
|
|
||||||
id: nopschemavalidator
|
|
||||||
signValidator:
|
|
||||||
id: nopsignvalidator
|
|
||||||
publisher:
|
|
||||||
id: publisher
|
|
||||||
config:
|
|
||||||
project: ondc-seller-dev
|
|
||||||
topic: bapNetworkReciever
|
|
||||||
router:
|
|
||||||
id: router
|
|
||||||
config:
|
|
||||||
routingConfigPath: /mnt/gcs/configs/bapRecieverRouting-config.yaml
|
|
||||||
preProcessors:
|
|
||||||
- id: reqpreprocessor
|
|
||||||
steps:
|
|
||||||
steps:
|
|
||||||
- addRoute
|
|
||||||
signValidate
|
|
||||||
-addRout
|
|
||||||
customValidate
|
|
||||||
- name: transactionCaller
|
|
||||||
path: /caller
|
|
||||||
targetType: "http"
|
|
||||||
plugin:
|
|
||||||
signer:
|
|
||||||
id: nopsigner
|
|
||||||
router:
|
|
||||||
id: router
|
|
||||||
config:
|
|
||||||
routingConfigPath: /mnt/gcs/configs/bapCallerRouting-config.yaml
|
|
||||||
preProcessors:
|
|
||||||
- id: reqpreprocessor
|
|
||||||
# postProcessors:
|
|
||||||
# - id: gcpAuthMdw
|
|
||||||
# config:
|
|
||||||
# audience: https://bpp-adapter-903496459467.asia-southeast1.run.app
|
|
||||||
# serviceAccount: 903496459467-compute@developer.gserviceaccount.com
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
routes:
|
|
||||||
- action: search
|
|
||||||
target: https://bpp-adapter-903496459467.asia-southeast1.run.app/reciever
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
appName: "bppClientService"
|
|
||||||
log:
|
|
||||||
level: debug
|
|
||||||
destinations:
|
|
||||||
- type: stdout
|
|
||||||
context_keys:
|
|
||||||
- transaction_id
|
|
||||||
- message_id
|
|
||||||
http:
|
|
||||||
port: 8080
|
|
||||||
timeout:
|
|
||||||
read: 30
|
|
||||||
write: 30
|
|
||||||
idle: 30
|
|
||||||
plugin:
|
|
||||||
root: extracted/plugins
|
|
||||||
pluginZipPath: plugins_bundle.zip
|
|
||||||
plugins:
|
|
||||||
- publisher
|
|
||||||
- nopschemavalidator
|
|
||||||
- router
|
|
||||||
- nopsigner
|
|
||||||
- nopsignvalidator
|
|
||||||
- reqpreprocessor
|
|
||||||
- gcpAuthMdw
|
|
||||||
module:
|
|
||||||
modules:
|
|
||||||
- name: transactionReciever
|
|
||||||
path: /reciever
|
|
||||||
targetType: msgQ
|
|
||||||
plugin:
|
|
||||||
schemaValidator:
|
|
||||||
id: nopschemavalidator
|
|
||||||
signValidator:
|
|
||||||
id: nopsignValidator
|
|
||||||
publisher:
|
|
||||||
id: publisher
|
|
||||||
config:
|
|
||||||
project: ondc-seller-dev
|
|
||||||
topic: clientSideTopic
|
|
||||||
Router:
|
|
||||||
id: router
|
|
||||||
config:
|
|
||||||
routingConfigPath: configs/bppRecieverRouting-config.yaml
|
|
||||||
preProcessors:
|
|
||||||
- id: reqpreprocessor
|
|
||||||
- name: transactionCaller
|
|
||||||
path: /caller
|
|
||||||
targetType: "http"
|
|
||||||
plugin:
|
|
||||||
signer:
|
|
||||||
id: nopsigner
|
|
||||||
Router:
|
|
||||||
id: router
|
|
||||||
config:
|
|
||||||
routingConfigPath: configs/bppCallerRouting-config.yaml
|
|
||||||
preProcessors:
|
|
||||||
- id: reqpreprocessor
|
|
||||||
postProcessors:
|
|
||||||
- id: gcpAuthMdw
|
|
||||||
config:
|
|
||||||
audience: "target"
|
|
||||||
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
appName: "bppClientService"
|
|
||||||
log:
|
|
||||||
level: debug
|
|
||||||
destinations:
|
|
||||||
- type: stdout
|
|
||||||
context_keys:
|
|
||||||
- transaction_id
|
|
||||||
- message_id
|
|
||||||
http:
|
|
||||||
port: 8080
|
|
||||||
timeout:
|
|
||||||
read: 30
|
|
||||||
write: 30
|
|
||||||
idle: 30
|
|
||||||
plugin:
|
|
||||||
root: /app/plugins
|
|
||||||
pluginZipPath: /mnt/gcs/plugins/plugins_bundle.zip
|
|
||||||
plugins:
|
|
||||||
- publisher
|
|
||||||
- nopschemavalidator
|
|
||||||
- router
|
|
||||||
- nopsigner
|
|
||||||
- nopsignvalidator
|
|
||||||
- reqpreprocessor
|
|
||||||
- gcpAuthMdw
|
|
||||||
module:
|
|
||||||
modules:
|
|
||||||
- name: transactionReciever
|
|
||||||
path: /reciever
|
|
||||||
targetType: msgQ
|
|
||||||
plugin:
|
|
||||||
schemaValidator:
|
|
||||||
id: nopschemavalidator
|
|
||||||
signValidator:
|
|
||||||
id: nopsignvalidator
|
|
||||||
publisher:
|
|
||||||
id: publisher
|
|
||||||
config:
|
|
||||||
project: ondc-seller-dev
|
|
||||||
topic: bppNetworkReciever
|
|
||||||
router:
|
|
||||||
id: router
|
|
||||||
config:
|
|
||||||
routingConfigPath: /mnt/gcs/configs/bppRecieverRouting-config.yaml
|
|
||||||
preProcessors:
|
|
||||||
- id: reqpreprocessor
|
|
||||||
- name: transactionCaller
|
|
||||||
path: /caller
|
|
||||||
targetType: "http"
|
|
||||||
plugin:
|
|
||||||
signer:
|
|
||||||
id: nopsigner
|
|
||||||
router:
|
|
||||||
id: router
|
|
||||||
config:
|
|
||||||
routingConfigPath: /mnt/gcs/configs/bppCallerRouting-config.yaml
|
|
||||||
preProcessors:
|
|
||||||
- id: reqpreprocessor
|
|
||||||
# postProcessors:
|
|
||||||
# - id: gcpAuthMdw
|
|
||||||
# config:
|
|
||||||
# audience: https://bap-adapter-903496459467.asia-southeast1.run.app
|
|
||||||
# serviceAccount: 903496459467-compute@developer.gserviceaccount.com
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
routes:
|
|
||||||
- action: on_search
|
|
||||||
target: targeturl
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
routes:
|
|
||||||
- action: search
|
|
||||||
target: https://sellerapp-903496459467.asia-southeast1.run.app
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
bap_url: "https://bap-csr-903496459467.asia-southeast1.run.app" # Replace with actual Beckn API endpoint
|
|
||||||
port: "8080" # The port on which the server will run
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
routes:
|
|
||||||
- action: search
|
|
||||||
type: url
|
|
||||||
target: http://localhost:8080/bpp/reciever/search
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
routes:
|
|
||||||
- action: on_search
|
|
||||||
type: publisher
|
|
||||||
target: bapNetworkReciever
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
routes:
|
|
||||||
- action: on_search
|
|
||||||
type: url
|
|
||||||
target: http://localhost:8080/bap/reciever/on_search
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
routes:
|
|
||||||
- action: search
|
|
||||||
type: publisher
|
|
||||||
target: bapNetworkReciever
|
|
||||||
@@ -1,231 +0,0 @@
|
|||||||
appName: "onix"
|
|
||||||
log:
|
|
||||||
level: debug
|
|
||||||
destinations:
|
|
||||||
- type: stdout
|
|
||||||
contextKeys:
|
|
||||||
- transaction_id
|
|
||||||
- message_id
|
|
||||||
- subscriber_id
|
|
||||||
http:
|
|
||||||
port: 8080
|
|
||||||
timeout:
|
|
||||||
read: 30
|
|
||||||
write: 30
|
|
||||||
idle: 30
|
|
||||||
pluginManager:
|
|
||||||
root: /app/plugins
|
|
||||||
remoteRoot: /mnt/gcs/plugins/plugins_bundle.zip
|
|
||||||
modules:
|
|
||||||
- name: bapTxnReciever
|
|
||||||
path: /bap/reciever/
|
|
||||||
handler:
|
|
||||||
type: std
|
|
||||||
role: bap
|
|
||||||
trace:
|
|
||||||
# validateSign: true
|
|
||||||
# addRoute: true
|
|
||||||
# validateSchema: true
|
|
||||||
# reqpreprocessor: true
|
|
||||||
registryUrl: http://localhost:8080/reg
|
|
||||||
plugins:
|
|
||||||
keyManager:
|
|
||||||
id: secretskeymanager
|
|
||||||
config:
|
|
||||||
projectID: trusty-relic-370809
|
|
||||||
cache:
|
|
||||||
id: redis
|
|
||||||
config:
|
|
||||||
addr: 10.81.192.4:6379
|
|
||||||
# schemaValidator:
|
|
||||||
# id: schemavalidator
|
|
||||||
# config:
|
|
||||||
# schemaDir: /mnt/gcs/configs/schemas
|
|
||||||
signValidator:
|
|
||||||
id: signvalidator
|
|
||||||
publisher:
|
|
||||||
id: publisher
|
|
||||||
config:
|
|
||||||
project: trusty-relic-370809
|
|
||||||
topic: bapNetworkReciever
|
|
||||||
router:
|
|
||||||
id: router
|
|
||||||
config:
|
|
||||||
routingConfigPath: /mnt/gcs/configs/bapTxnReciever-routing.yaml
|
|
||||||
middleware:
|
|
||||||
- id: reqpreprocessor
|
|
||||||
config:
|
|
||||||
uuidKeys: transaction_id,message_id
|
|
||||||
role: bap
|
|
||||||
steps:
|
|
||||||
- validateSign
|
|
||||||
- addRoute
|
|
||||||
# - validateSchema
|
|
||||||
- name: bapTxnCaller
|
|
||||||
path: /bap/caller/
|
|
||||||
handler:
|
|
||||||
type: std
|
|
||||||
registryUrl: http://localhost:8080/reg
|
|
||||||
role: bap
|
|
||||||
plugins:
|
|
||||||
keyManager:
|
|
||||||
id: secretskeymanager
|
|
||||||
config:
|
|
||||||
projectID: trusty-relic-370809
|
|
||||||
cache:
|
|
||||||
id: redis
|
|
||||||
config:
|
|
||||||
addr: 10.81.192.4:6379
|
|
||||||
# schemaValidator:
|
|
||||||
# id: schemavalidator
|
|
||||||
# config:
|
|
||||||
# schemaDir: /mnt/gcs/configs/schemas
|
|
||||||
signer:
|
|
||||||
id: signer
|
|
||||||
publisher:
|
|
||||||
id: publisher
|
|
||||||
config:
|
|
||||||
project: trusty-relic-370809
|
|
||||||
topic: bapNetworkReciever
|
|
||||||
router:
|
|
||||||
id: router
|
|
||||||
config:
|
|
||||||
routingConfigPath: /mnt/gcs/configs/bapTxnCaller-routing.yaml
|
|
||||||
middleware:
|
|
||||||
- id: reqpreprocessor
|
|
||||||
config:
|
|
||||||
uuidKeys: transaction_id,message_id
|
|
||||||
role: bap
|
|
||||||
steps:
|
|
||||||
# - validateSchema
|
|
||||||
- addRoute
|
|
||||||
- sign
|
|
||||||
- name: bapSubscribeCaller
|
|
||||||
path: /bap/subscribe
|
|
||||||
handler:
|
|
||||||
type: npSub
|
|
||||||
role: bap
|
|
||||||
registryUrl: http://localhost:8080/reg
|
|
||||||
plugins:
|
|
||||||
keyManager:
|
|
||||||
id: secretskeymanager
|
|
||||||
config:
|
|
||||||
projectID: trusty-relic-370809
|
|
||||||
cache:
|
|
||||||
id: redis
|
|
||||||
config:
|
|
||||||
addr: 10.81.192.4:6379
|
|
||||||
- name: bppTxnReciever
|
|
||||||
path: /bpp/reciever/
|
|
||||||
handler:
|
|
||||||
type: std
|
|
||||||
role: bpp
|
|
||||||
subscriberId: bpp1
|
|
||||||
registryUrl: http://localhost:8080/reg
|
|
||||||
plugins:
|
|
||||||
keyManager:
|
|
||||||
id: secretskeymanager
|
|
||||||
config:
|
|
||||||
projectID: trusty-relic-370809
|
|
||||||
cache:
|
|
||||||
id: redis
|
|
||||||
config:
|
|
||||||
addr: 10.81.192.4:6379
|
|
||||||
# schemaValidator:
|
|
||||||
# id: schemavalidator
|
|
||||||
# config:
|
|
||||||
# schemaDir: /mnt/gcs/configs/schemas
|
|
||||||
signValidator:
|
|
||||||
id: signvalidator
|
|
||||||
publisher:
|
|
||||||
id: publisher
|
|
||||||
config:
|
|
||||||
project: trusty-relic-370809
|
|
||||||
topic: bapNetworkReciever
|
|
||||||
router:
|
|
||||||
id: router
|
|
||||||
config:
|
|
||||||
routingConfigPath: /mnt/gcs/configs/bppTxnReciever-routing.yaml
|
|
||||||
middleware:
|
|
||||||
- id: reqpreprocessor
|
|
||||||
config:
|
|
||||||
uuidKeys: transaction_id,message_id
|
|
||||||
role: bpp
|
|
||||||
steps:
|
|
||||||
- validateSign
|
|
||||||
- addRoute
|
|
||||||
# - validateSchema
|
|
||||||
- name: bppTxnCaller
|
|
||||||
path: /bpp/caller/
|
|
||||||
handler:
|
|
||||||
type: std
|
|
||||||
role: bpp
|
|
||||||
registryUrl: http://localhost:8080/reg
|
|
||||||
plugins:
|
|
||||||
keyManager:
|
|
||||||
id: secretskeymanager
|
|
||||||
config:
|
|
||||||
projectID: trusty-relic-370809
|
|
||||||
cache:
|
|
||||||
id: redis
|
|
||||||
config:
|
|
||||||
addr: 10.81.192.4:6379
|
|
||||||
# schemaValidator:
|
|
||||||
# id: schemavalidator
|
|
||||||
# config:
|
|
||||||
# schemaDir: /mnt/gcs/configs/schemas
|
|
||||||
signer:
|
|
||||||
id: signer
|
|
||||||
publisher:
|
|
||||||
id: publisher
|
|
||||||
config:
|
|
||||||
project: trusty-relic-370809
|
|
||||||
topic: bapNetworkReciever
|
|
||||||
router:
|
|
||||||
id: router
|
|
||||||
config:
|
|
||||||
routingConfigPath: /mnt/gcs/configs/bppTxnCaller-routing.yaml
|
|
||||||
middleware:
|
|
||||||
- id: reqpreprocessor
|
|
||||||
config:
|
|
||||||
uuidKeys: transaction_id,message_id
|
|
||||||
role: bpp
|
|
||||||
steps:
|
|
||||||
# - validateSchema
|
|
||||||
- addRoute
|
|
||||||
- sign
|
|
||||||
- name: bppSubscribeCaller
|
|
||||||
path: /bpp/subscribe
|
|
||||||
handler:
|
|
||||||
type: npSub
|
|
||||||
role: bpp
|
|
||||||
registryUrl: http://localhost:8080/reg
|
|
||||||
plugins:
|
|
||||||
keyManager:
|
|
||||||
id: secretskeymanager
|
|
||||||
config:
|
|
||||||
projectID: trusty-relic-370809
|
|
||||||
cache:
|
|
||||||
id: redis
|
|
||||||
config:
|
|
||||||
addr: 10.81.192.4:6379
|
|
||||||
- name: regSubscribeReciever
|
|
||||||
path: /reg/subscribe
|
|
||||||
handler:
|
|
||||||
type: regSub
|
|
||||||
role: registery
|
|
||||||
plugins:
|
|
||||||
cache:
|
|
||||||
id: redis
|
|
||||||
config:
|
|
||||||
addr: "10.81.192.4:6379"
|
|
||||||
- name: regLookUpReciever
|
|
||||||
path: /reg/lookUp
|
|
||||||
handler:
|
|
||||||
type: lookUp
|
|
||||||
role: registery
|
|
||||||
plugins:
|
|
||||||
cache:
|
|
||||||
id: redis
|
|
||||||
config:
|
|
||||||
addr: "10.81.192.4:6379"
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
plugins:
|
|
||||||
- gcpAuthMdw
|
|
||||||
- nopsigner
|
|
||||||
- router
|
|
||||||
- publisher
|
|
||||||
- reqpreprocessor
|
|
||||||
- nopschemavalidator
|
|
||||||
- nopsignvalidator
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "cancel",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"cancel"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "confirm",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"confirm"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "init",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"init"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "OnCancel",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_cancel"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "OnConfirm",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_confirm"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "OnInit",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_init"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "OnRating",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_rating"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"feedback_form": {
|
|
||||||
"description": "A feedback form to allow the user to provide additional information on the rating provided",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/XInput"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context",
|
|
||||||
"message"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "OnSearch",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_search"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"catalog": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Catalog"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"catalog"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "OnSelect",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_select"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "OnStatus",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_status"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "OnSupport",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_support"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"support": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Support"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "OnTrack",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_track"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"tracking": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Tracking"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"tracking"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "OnUpdate",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_update"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "rating",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"rating"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"ratings": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Rating"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "Response",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {},
|
|
||||||
"required": []
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "status",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"status"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"ref_id": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
},
|
|
||||||
"order_id": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "support",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"support"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"support": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Support"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "track",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"track"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"order_id": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
},
|
|
||||||
"callback_url": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "uri"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order_id"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "update",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"update"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"update_target": {
|
|
||||||
"description": "Comma separated values of order objects being updated. For example: ```\"update_target\":\"item,billing,fulfillment\"```",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"order": {
|
|
||||||
"description": "Updated order object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"update_target",
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_cancel",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_cancel"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context",
|
|
||||||
"message"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_confirm",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_confirm"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_init",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_init"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_rating",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_rating"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"feedback_form": {
|
|
||||||
"description": "A feedback form to allow the user to provide additional information on the rating provided",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/XInput"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context",
|
|
||||||
"message"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_search",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_search"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"catalog": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Catalog"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"catalog"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_select",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_select"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_status",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_status"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_support",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_support"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"support": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Support"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context",
|
|
||||||
"message"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_track",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_track"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"tracking": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Tracking"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"tracking"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"context",
|
|
||||||
"message"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_update",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"on_update"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"error": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Error"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "search",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"intent": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Intent"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"type": "object"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "select",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./definitions.json#/$defs/Context"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"enum": [
|
|
||||||
"select"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"action"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"$ref": "./definitions.json#/$defs/Order"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"order"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"message",
|
|
||||||
"context"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "cancel",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/cancel.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "init.json#/allOf/2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"order_id": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["SOFT_CANCEL", "CONFIRM_CANCEL"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["code"]
|
|
||||||
},
|
|
||||||
"cancellation_reason_id": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^[0-9]+$"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["order_id", "descriptor", "cancellation_reason_id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,463 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "confirm",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/confirm.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./on_select.json#/allOf/5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"fulfillments": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"customer": {
|
|
||||||
"properties": {
|
|
||||||
"contact": {
|
|
||||||
"properties": {
|
|
||||||
"phone": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\+?[1-9]\\d{1,14}$"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"phone"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"person": {
|
|
||||||
"properties": {
|
|
||||||
"name": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"contact",
|
|
||||||
"person"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"customer"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/7"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"payments": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"params": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"amount": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\d+(\\.\\d{1,2})?$"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"type": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"PRE-ORDER",
|
|
||||||
"ON-FULFILLMENT",
|
|
||||||
"POST-FULFILLMENT"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"PAID",
|
|
||||||
"NOT-PAID"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"collected_by": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"BAP",
|
|
||||||
"BPP"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"tags": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 2,
|
|
||||||
"maxItems": 2,
|
|
||||||
"uniqueItems": true,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"SETTLEMENT_TERMS",
|
|
||||||
"BUYER_FINDER_FEES"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_TERMS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"list": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "STATIC_TERMS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "uri"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_BASIS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"DELIVERY"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_WINDOW"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "DELAY_INTEREST"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\d+(\\.\\d{1,2})?$"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_TYPE"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"upi",
|
|
||||||
"neft",
|
|
||||||
"rtgs",
|
|
||||||
"UPI",
|
|
||||||
"NEFT",
|
|
||||||
"RTGS"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_AMOUNT"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\d+(\\.\\d{1,2})?$"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "MANDATORY_ARBITRATION"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"true",
|
|
||||||
"false"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "COURT_JURISDICTION"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "BUYER_FINDER_FEES"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"list": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"enum": [
|
|
||||||
"BUYER_FINDER_FEES_PERCENTAGE"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^-?\\d+(\\.\\d+)?$"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"descriptor"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"type",
|
|
||||||
"status",
|
|
||||||
"collected_by",
|
|
||||||
"tags"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"payments": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"properties": {
|
|
||||||
"type": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"params": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"transaction_id": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"type"
|
|
||||||
],
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"properties": {
|
|
||||||
"type": {
|
|
||||||
"const": "PRE-ORDER"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"params": {
|
|
||||||
"required": [
|
|
||||||
"transaction_id"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"payments"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"not": {
|
|
||||||
"required": [
|
|
||||||
"id"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,550 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "init",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/init.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "./search.json#/properties/context/allOf/0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
|
|
||||||
"required": [
|
|
||||||
"bpp_id",
|
|
||||||
"bpp_uri"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"provider": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"id": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"id"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"items": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"id": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"id"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"provider",
|
|
||||||
"items"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./confirm.json#/allOf/4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./on_select.json#/allOf/7"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"required": [
|
|
||||||
"fulfillments"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"payments": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"params": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"amount": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\d+(\\.\\d{1,2})?$"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"type": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"PRE-ORDER",
|
|
||||||
"ON-FULFILLMENT",
|
|
||||||
"POST-FULFILLMENT"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"PAID",
|
|
||||||
"NOT-PAID"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"collected_by": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"BAP",
|
|
||||||
"BPP"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"tags": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 2,
|
|
||||||
"maxItems": 2,
|
|
||||||
"uniqueItems": true,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"SETTLEMENT_TERMS",
|
|
||||||
"BUYER_FINDER_FEES"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"descriptor"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"type",
|
|
||||||
"status",
|
|
||||||
"collected_by",
|
|
||||||
"tags"
|
|
||||||
],
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"collected_by": {
|
|
||||||
"const": "BAP"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"type": {
|
|
||||||
"const": "PRE-ORDER"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"tags": {
|
|
||||||
"items": {
|
|
||||||
"if": {
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_TERMS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"list": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "STATIC_TERMS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "uri"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_BASIS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"DELIVERY"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_WINDOW"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "DELAY_INTEREST"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\d+(\\.\\d{1,2})?$"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"collected_by": {
|
|
||||||
"const": "BPP"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"type": {
|
|
||||||
"const": "PRE-ORDER"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"tags": {
|
|
||||||
"items": {
|
|
||||||
"if": {
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_TERMS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"list": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "STATIC_TERMS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "uri"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_BASIS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"DELIVERY"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_WINDOW"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"collected_by": {
|
|
||||||
"const": "BPP"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"type": {
|
|
||||||
"const": "ON-FULFILLMENT"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"tags": {
|
|
||||||
"items": {
|
|
||||||
"if": {
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_TERMS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"list": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "STATIC_TERMS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "uri"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_BASIS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"DELIVERY"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_WINDOW"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "DELAY_INTEREST"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\d+(\\.\\d{1,2})?$"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"billing": {
|
|
||||||
"required": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"billing"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_cancel",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/on_cancel.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,314 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_confirm",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/on_confirm.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"provider": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"id": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["id"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["provider"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./confirm.json#/allOf/5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"items": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"fulfillment_ids": {
|
|
||||||
"minItems": 1
|
|
||||||
},
|
|
||||||
"location_ids": {
|
|
||||||
"minItems": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["fulfillment_ids", "location_ids"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./confirm.json#/allOf/4/allOf/1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"fulfillments": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"type": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["DELIVERY"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["type"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"quote": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"price": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"currency": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\d+(\\.\\d{1,2})?$"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["currency", "value"]
|
|
||||||
},
|
|
||||||
"breakup": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"price": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"currency": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\d+(\\.\\d{1,2})?$"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["currency", "value"]
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"BASE_FARE",
|
|
||||||
"DISTANCE_FARE",
|
|
||||||
"TAX",
|
|
||||||
"DISCOUNT",
|
|
||||||
"WAITING_CHARGE"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["price", "title"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["price", "breakup"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["quote"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"quote": {
|
|
||||||
"properties": {
|
|
||||||
"breakup": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"title": {
|
|
||||||
"const": "BASE_FARE"
|
|
||||||
},
|
|
||||||
"price": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["value"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["title", "price"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"title": {
|
|
||||||
"const": "DISTANCE_FARE"
|
|
||||||
},
|
|
||||||
"price": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["value"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["title", "price"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./confirm.json#/allOf/6"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"cancellation_terms": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"fulfillment_state": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"RIDE_ASSIGNED",
|
|
||||||
"RIDE_ENROUTE_PICKUP",
|
|
||||||
"RIDE_ARRIVED_PICKUP",
|
|
||||||
"RIDE_STARTED"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["code"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["descriptor"]
|
|
||||||
},
|
|
||||||
"cancellation_fee": {
|
|
||||||
"oneOf": [
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"percentage": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^(100(\\.0{1,2})?|([0-9]{1,2})(\\.\\d{1,2})?)$"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["percentage"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"amount": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)$"
|
|
||||||
},
|
|
||||||
"currency": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["currency", "value"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["amount"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["fulfillment_state", "cancellation_fee"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["cancellation_terms"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"type": "object"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["message"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,317 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_init",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/on_init.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"provider": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"id": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["id"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["provider"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./confirm.json#/allOf/5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./on_select.json#/allOf/6"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"items": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"fulfillment_ids": {
|
|
||||||
"minItems": 1
|
|
||||||
},
|
|
||||||
"location_ids": {
|
|
||||||
"minItems": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["fulfillment_ids", "location_ids"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./confirm.json#/allOf/4/allOf/1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"fulfillments": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"type": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["DELIVERY"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["type"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"quote": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"price": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"currency": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\d+(\\.\\d{1,2})?$"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["currency", "value"]
|
|
||||||
},
|
|
||||||
"breakup": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"price": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"currency": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\d+(\\.\\d{1,2})?$"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["currency", "value"]
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"BASE_FARE",
|
|
||||||
"DISTANCE_FARE",
|
|
||||||
"TAX",
|
|
||||||
"DISCOUNT",
|
|
||||||
"WAITING_CHARGE"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["price", "title"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["price", "breakup"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["quote"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"quote": {
|
|
||||||
"properties": {
|
|
||||||
"breakup": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"title": {
|
|
||||||
"const": "BASE_FARE"
|
|
||||||
},
|
|
||||||
"price": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["value"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["title", "price"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"title": {
|
|
||||||
"const": "DISTANCE_FARE"
|
|
||||||
},
|
|
||||||
"price": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["value"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["title", "price"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./confirm.json#/allOf/6"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"cancellation_terms": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"fulfillment_state": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"RIDE_ASSIGNED",
|
|
||||||
"RIDE_ENROUTE_PICKUP",
|
|
||||||
"RIDE_ARRIVED_PICKUP",
|
|
||||||
"RIDE_STARTED"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["code"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["descriptor"]
|
|
||||||
},
|
|
||||||
"cancellation_fee": {
|
|
||||||
"oneOf": [
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"percentage": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^(100(\\.0{1,2})?|([0-9]{1,2})(\\.\\d{1,2})?)$"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["percentage"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"amount": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)$"
|
|
||||||
},
|
|
||||||
"currency": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["currency", "value"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["amount"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["fulfillment_state", "cancellation_fee"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["cancellation_terms"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"type": "object"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["message"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_rating",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/on_rating.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,644 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_search",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/on_search.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"catalog": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"name": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"images": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"minItems": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"providers": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"id": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"name": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"images": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"minItems": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"fulfillments": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"vehicle": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"category": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"AUTO_RICKSHAW",
|
|
||||||
"CAB"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"category"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"type": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"DELIVERY"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"id",
|
|
||||||
"vehicle",
|
|
||||||
"type"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"items": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"name": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"code": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"RIDE"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"price": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^-?\\d+(\\.\\d+)?$"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"value",
|
|
||||||
"currency"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"fulfillment_ids": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1
|
|
||||||
},
|
|
||||||
"payment_ids": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"id",
|
|
||||||
"descriptor",
|
|
||||||
"price",
|
|
||||||
"fulfillment_ids"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"id",
|
|
||||||
"items",
|
|
||||||
"fulfillments"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"providers"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"catalog"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"payments": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"collected_by": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"BAP",
|
|
||||||
"BPP"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"tags": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 2,
|
|
||||||
"maxItems": 2,
|
|
||||||
"uniqueItems": true,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"SETTLEMENT_TERMS",
|
|
||||||
"BUYER_FINDER_FEES"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"descriptor"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"collected_by",
|
|
||||||
"tags"
|
|
||||||
],
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"collected_by": {
|
|
||||||
"const": "BAP"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"tags": {
|
|
||||||
"items": {
|
|
||||||
"if": {
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_TERMS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"list": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "STATIC_TERMS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "uri"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_TYPE"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"upi",
|
|
||||||
"neft",
|
|
||||||
"rtgs",
|
|
||||||
"UPI",
|
|
||||||
"NEFT",
|
|
||||||
"RTGS"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "DELAY_INTEREST"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\d+(\\.\\d{1,2})?$"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "MANDATORY_ARBITRATION"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"true",
|
|
||||||
"false"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "COURT_JURISDICTION"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"collected_by": {
|
|
||||||
"const": "BPP"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"tags": {
|
|
||||||
"items": {
|
|
||||||
"if": {
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_TERMS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"then": {
|
|
||||||
"properties": {
|
|
||||||
"list": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "STATIC_TERMS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "uri"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_TYPE"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"upi",
|
|
||||||
"neft",
|
|
||||||
"rtgs",
|
|
||||||
"UPI",
|
|
||||||
"NEFT",
|
|
||||||
"RTGS"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "DELAY_INTEREST"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^\\d+(\\.\\d{1,2})?$"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "MANDATORY_ARBITRATION"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"true",
|
|
||||||
"false"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "COURT_JURISDICTION"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_BASIS"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"DELIVERY"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"const": "SETTLEMENT_WINDOW"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"payments"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"catalog": {
|
|
||||||
"properties": {
|
|
||||||
"providers": {
|
|
||||||
"items": {
|
|
||||||
"properties": {
|
|
||||||
"fulfillments": {
|
|
||||||
"items": {
|
|
||||||
"properties": {
|
|
||||||
"stops": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"location": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"gps": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"gps"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"type": {
|
|
||||||
"const": "START"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"location",
|
|
||||||
"type"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"contains": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"location": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"gps": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"gps"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"type": {
|
|
||||||
"const": "END"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"location",
|
|
||||||
"type"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"stops"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,230 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_select",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/on_select.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./on_init.json#/allOf/2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./confirm.json#/allOf/5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./on_init.json#/allOf/5"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"fulfillments": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1,
|
|
||||||
"items": {
|
|
||||||
"required": ["id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["fulfillments"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"fulfillments": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"state": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"RIDE_ASSIGNED",
|
|
||||||
"RIDE_ENROUTE_PICKUP",
|
|
||||||
"RIDE_ARRIVED_PICKUP",
|
|
||||||
"RIDE_STARTED",
|
|
||||||
"RIDE_ENDED",
|
|
||||||
"RIDE_CANCELLED"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["code"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"fulfillments": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1,
|
|
||||||
"items": {
|
|
||||||
"properties": {
|
|
||||||
"stops": {
|
|
||||||
"items": {
|
|
||||||
"properties": {
|
|
||||||
"authorization": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"type": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["OTP"]
|
|
||||||
},
|
|
||||||
"token": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^-?\\d+(\\.\\d+)?$"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["type", "token"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"fulfillments": {
|
|
||||||
"items": {
|
|
||||||
"properties": {
|
|
||||||
"stops": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 2,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"location": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"gps": { "type": "string" }
|
|
||||||
},
|
|
||||||
"required": ["gps"]
|
|
||||||
},
|
|
||||||
"type": {
|
|
||||||
"enum": ["START", "END"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["location", "type"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["stops"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"fulfillments": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 1,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"vehicle": {
|
|
||||||
"properties": {
|
|
||||||
"category": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["AUTO_RICKSHAW", "CAB"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["category"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["vehicle"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["fulfillments"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./on_init.json#/allOf/7"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"properties": {
|
|
||||||
"fulfillments": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"not": {
|
|
||||||
"required": ["agent"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./on_init.json#/allOf/8"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_status",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/on_status.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_support",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/on_support.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_track",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/on_track.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "on_update",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/on_update.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "rating",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/rating.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,146 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "search",
|
|
||||||
"allOf": [
|
|
||||||
{ "$ref": "../../core/v1.1.0/search.json#" }
|
|
||||||
],
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"context": {
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"action": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"location": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"city": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": { "type": "string" }
|
|
||||||
},
|
|
||||||
"required": ["code"]
|
|
||||||
},
|
|
||||||
"country": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["IND"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["code"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["city", "country"]
|
|
||||||
},
|
|
||||||
"bap_id": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"bpp_id": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"ttl": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "duration"
|
|
||||||
},
|
|
||||||
"timestamp": {
|
|
||||||
"type": "string",
|
|
||||||
"format": "date-time"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"location",
|
|
||||||
"domain",
|
|
||||||
"action",
|
|
||||||
"message_id",
|
|
||||||
"transaction_id",
|
|
||||||
"timestamp",
|
|
||||||
"bap_id",
|
|
||||||
"bap_uri",
|
|
||||||
"ttl"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"intent": {
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"payment": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"collected_by": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["BPP", "BAP"]
|
|
||||||
},
|
|
||||||
"tags": {
|
|
||||||
"type": "array",
|
|
||||||
"minItems": 2,
|
|
||||||
"maxItems": 2,
|
|
||||||
"uniqueItems": true,
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"descriptor": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"code": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["SETTLEMENT_TERMS", "BUYER_FINDER_FEES"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["descriptor"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["collected_by"]
|
|
||||||
},
|
|
||||||
"fulfillment": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"stops": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"location": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"gps": { "type": "string" }
|
|
||||||
},
|
|
||||||
"required": ["gps"]
|
|
||||||
},
|
|
||||||
"type": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": ["START", "END"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["location", "type"]
|
|
||||||
},
|
|
||||||
"minItems": 2
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["stops"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["payment", "fulfillment"]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["intent"]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["context", "message"]
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "select",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/select.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/2"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "status",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/status.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"order_id": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["order_id"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "support",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/support.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "track",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/track.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$id": "update",
|
|
||||||
"type": "object",
|
|
||||||
"allOf": [
|
|
||||||
{
|
|
||||||
"$ref": "../../core/v1.1.0/update.json#"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$ref": "./init.json#/allOf/1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"properties": {
|
|
||||||
"message": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"order": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"id": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": ["id"]
|
|
||||||
},
|
|
||||||
"update_target": {
|
|
||||||
"type": "string",
|
|
||||||
"pattern": "^[^,]+(,[^,]+)*$"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
- id: pooja-stores
|
|
||||||
descriptor:
|
|
||||||
name: Pooja Stores
|
|
||||||
locations:
|
|
||||||
- id: koramangala-4th-block-location
|
|
||||||
gps: "12.9349377,77.6055586"
|
|
||||||
categories:
|
|
||||||
- id: fresh_fruits
|
|
||||||
descriptor:
|
|
||||||
name: Fresh Fruits
|
|
||||||
- id: beverages
|
|
||||||
descriptor:
|
|
||||||
name: Beverages
|
|
||||||
items:
|
|
||||||
- id: item_2
|
|
||||||
descriptor:
|
|
||||||
name: Green Apples Organic
|
|
||||||
images:
|
|
||||||
- url: "https://mock_bpp.com/images/item_2.jpg"
|
|
||||||
category_id: fresh_fruits
|
|
||||||
location_id: koramangala-4th-block-location
|
|
||||||
price:
|
|
||||||
currency: INR
|
|
||||||
value: "170"
|
|
||||||
matched: true
|
|
||||||
- id: item_1
|
|
||||||
descriptor:
|
|
||||||
name: Red Apples
|
|
||||||
images:
|
|
||||||
- url: "https://mock_bpp.com/images/item_1.jpg"
|
|
||||||
category_id: fresh_fruits
|
|
||||||
location_id: koramangala-4th-block-location
|
|
||||||
price:
|
|
||||||
currency: INR
|
|
||||||
value: "90"
|
|
||||||
related: true
|
|
||||||
- id: item_7
|
|
||||||
descriptor:
|
|
||||||
name: Green Apple Juice
|
|
||||||
images:
|
|
||||||
- url: "https://mock_bpp.com/images/item_7.jpg"
|
|
||||||
category_id: beverages
|
|
||||||
location_id: koramangala-4th-block-location
|
|
||||||
price:
|
|
||||||
currency: INR
|
|
||||||
value: "70"
|
|
||||||
matched: true
|
|
||||||
- id: food-mall
|
|
||||||
descriptor:
|
|
||||||
name: Food Mall
|
|
||||||
locations:
|
|
||||||
- id: food-mall-location
|
|
||||||
gps: "12.9349377,77.6055586"
|
|
||||||
categories:
|
|
||||||
- id: fresh-food
|
|
||||||
descriptor:
|
|
||||||
name: Fresh food
|
|
||||||
items:
|
|
||||||
- id: item_1_1
|
|
||||||
descriptor:
|
|
||||||
name: Green Apple Salad
|
|
||||||
images:
|
|
||||||
- url: "https://mock_bpp.com/images/item_1_1.jpg"
|
|
||||||
category_id: fresh-food
|
|
||||||
location_id: food-mall-location
|
|
||||||
price:
|
|
||||||
currency: INR
|
|
||||||
value: "200"
|
|
||||||
matched: true
|
|
||||||
25
go.mod
25
go.mod
@@ -4,26 +4,25 @@ go 1.23.0
|
|||||||
|
|
||||||
toolchain go1.23.7
|
toolchain go1.23.7
|
||||||
|
|
||||||
require golang.org/x/crypto v0.36.0
|
require (
|
||||||
|
github.com/stretchr/testify v1.10.0
|
||||||
|
golang.org/x/crypto v0.36.0
|
||||||
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/google/go-cmp v0.7.0 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
||||||
|
github.com/kr/pretty v0.3.1 // indirect
|
||||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
go.opentelemetry.io/otel v1.34.0 // indirect
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
|
github.com/rogpeppe/go-internal v1.13.1 // indirect
|
||||||
|
github.com/stretchr/objx v0.5.2 // indirect
|
||||||
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
|
||||||
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require github.com/zenazn/pkcs7pad v0.0.0-20170308005700-253a5b1f0e03
|
||||||
github.com/felixge/httpsnoop v1.0.4 // indirect
|
|
||||||
github.com/go-logr/logr v1.4.2 // indirect
|
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
|
||||||
github.com/zenazn/pkcs7pad v0.0.0-20170308005700-253a5b1f0e03
|
|
||||||
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0
|
|
||||||
go.opentelemetry.io/otel/metric v1.34.0 // indirect
|
|
||||||
go.opentelemetry.io/otel/trace v1.34.0 // indirect
|
|
||||||
)
|
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/hashicorp/go-retryablehttp v0.7.7
|
github.com/hashicorp/go-retryablehttp v0.7.7
|
||||||
|
|||||||
27
go.sum
27
go.sum
@@ -1,26 +1,21 @@
|
|||||||
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||||
|
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
|
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
|
||||||
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
|
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
|
||||||
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
|
||||||
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
|
||||||
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
|
||||||
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
|
||||||
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
|
||||||
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||||
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
|
||||||
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
|
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
|
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
|
||||||
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
|
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
|
||||||
github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
|
github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
|
||||||
github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU=
|
github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU=
|
||||||
github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk=
|
github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk=
|
||||||
|
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
||||||
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||||
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
||||||
@@ -29,28 +24,22 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/
|
|||||||
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
|
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
|
||||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
|
||||||
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
|
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
|
||||||
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
|
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
|
||||||
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
|
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
|
||||||
github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY=
|
github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY=
|
||||||
github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ=
|
github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ=
|
||||||
|
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
|
||||||
|
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
||||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
github.com/zenazn/pkcs7pad v0.0.0-20170308005700-253a5b1f0e03 h1:m1h+vudopHsI67FPT9MOncyndWhTcdUoBtI1R1uajGY=
|
github.com/zenazn/pkcs7pad v0.0.0-20170308005700-253a5b1f0e03 h1:m1h+vudopHsI67FPT9MOncyndWhTcdUoBtI1R1uajGY=
|
||||||
github.com/zenazn/pkcs7pad v0.0.0-20170308005700-253a5b1f0e03/go.mod h1:8sheVFH84v3PCyFY/O02mIgSQY9I6wMYPWsq7mDnEZY=
|
github.com/zenazn/pkcs7pad v0.0.0-20170308005700-253a5b1f0e03/go.mod h1:8sheVFH84v3PCyFY/O02mIgSQY9I6wMYPWsq7mDnEZY=
|
||||||
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
|
|
||||||
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
|
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 h1:CV7UdSGJt/Ao6Gp4CXckLxVRRsRgDHoI8XjbL3PDl8s=
|
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0/go.mod h1:FRmFuRJfag1IZ2dPkHnEoSFVgTVPUd2qf5Vi69hLb8I=
|
|
||||||
go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
|
|
||||||
go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
|
|
||||||
go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
|
|
||||||
go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
|
|
||||||
go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
|
|
||||||
go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
|
|
||||||
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
|
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
|
||||||
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
|
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
|
||||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
|||||||
Reference in New Issue
Block a user