Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Input string `yaml:"input" json:"input"`
Output string `yaml:"output" json:"output"`
Backup bool `yaml:"backup" json:"backup"`
Validate bool `yaml:"validate" json:"validate"`
Exclude []string `yaml:"exclude" json:"exclude"`
Mappings map[string]string `yaml:"mappings" json:"mappings"`
PaginationPriority []string `yaml:"pagination_priority" json:"pagination_priority"` // Global pagination strategy priority
EndpointPagination []EndpointPaginationRule `yaml:"endpoint_pagination" json:"endpoint_pagination"` // Endpoint-specific pagination overrides
FlattenResponses bool `yaml:"flatten_responses" json:"flatten_responses"`
VendorExtensions VendorExtensions `yaml:"vendor_extensions" json:"vendor_extensions"`
DefaultValues DefaultValues `yaml:"default_values" json:"default_values"`
}
Config represents the complete OpenMorph configuration
type DefaultCondition ¶ added in v0.4.0
type DefaultCondition struct {
Type string `yaml:"type" json:"type"` // type constraint (e.g., "string", "integer", "boolean")
ParameterIn string `yaml:"parameter_in" json:"parameter_in"` // for parameters: "query", "path", "header", "cookie"
HTTPMethods []string `yaml:"http_methods" json:"http_methods"` // which HTTP methods to target
PathPatterns []string `yaml:"path_patterns" json:"path_patterns"` // which API paths to target
HasEnum bool `yaml:"has_enum" json:"has_enum"` // only apply if field has enum values
IsArray bool `yaml:"is_array" json:"is_array"` // only apply if field is array
PropertyName string `yaml:"property_name" json:"property_name"` // match specific property names
Required *bool `yaml:"required" json:"required"` // apply only to required/optional fields
}
DefaultCondition specifies when the default should be applied
type DefaultRule ¶ added in v0.4.0
type DefaultRule struct {
Target DefaultTarget `yaml:"target" json:"target"`
Condition DefaultCondition `yaml:"condition" json:"condition"`
Value interface{} `yaml:"value" json:"value"`
Template map[string]interface{} `yaml:"template" json:"template"`
Priority int `yaml:"priority" json:"priority"`
}
DefaultRule defines a rule for setting default values
type DefaultTarget ¶ added in v0.4.0
type DefaultTarget struct {
Location string `yaml:"location" json:"location"` // "parameter", "request_body", "response", "component", "array", "enum"
Property string `yaml:"property" json:"property"` // specific property name (optional)
Path string `yaml:"path" json:"path"` // JSONPath-like selector (optional)
}
DefaultTarget specifies where the default should be applied
type DefaultValues ¶ added in v0.4.0
type DefaultValues struct {
Enabled bool `yaml:"enabled" json:"enabled"`
Rules map[string]DefaultRule `yaml:"rules" json:"rules"`
}
DefaultValues configuration for setting defaults in OpenAPI specs
type EndpointPaginationRule ¶ added in v0.5.0
type EndpointPaginationRule struct {
Endpoint string `yaml:"endpoint" json:"endpoint"` // Endpoint pattern (supports wildcards like /api/v1/users/*)
Method string `yaml:"method" json:"method"` // HTTP method (GET, POST, etc.) - case insensitive
Pagination string `yaml:"pagination" json:"pagination"` // Pagination strategy (cursor, checkpoint, offset, page, none)
}
EndpointPaginationRule defines pagination configuration for specific endpoints Allows overriding global pagination priority for individual endpoints
Example:
endpoint: "/api/v1/users/*" # Supports wildcard patterns method: "GET" # HTTP method (case-insensitive) pagination: "cursor" # Strategy: cursor, offset, page, checkpoint, none
type FieldMapping ¶ added in v0.3.0
type FieldMapping struct {
RequestParams map[string][]string `yaml:"request_params" json:"request_params"`
ResponseFields map[string][]string `yaml:"response_fields" json:"response_fields"`
}
FieldMapping defines how to map request/response fields
type ProviderConfig ¶ added in v0.3.0
type ProviderConfig struct {
ExtensionName string `yaml:"extension_name" json:"extension_name"`
TargetLevel string `yaml:"target_level" json:"target_level"` // "operation", "path", "schema"
Methods []string `yaml:"methods" json:"methods"` // ["get", "post"] or empty for all
PathPatterns []string `yaml:"path_patterns" json:"path_patterns"` // ["/api/v1/*"] or empty for all
FieldMapping FieldMapping `yaml:"field_mapping" json:"field_mapping"`
Strategies map[string]StrategyConfig `yaml:"strategies" json:"strategies"`
}
ProviderConfig defines configuration for a specific provider
type StrategyConfig ¶ added in v0.3.0
type StrategyConfig struct {
Template map[string]interface{} `yaml:"template" json:"template"`
RequiredFields []string `yaml:"required_fields" json:"required_fields"`
OptionalFields []string `yaml:"optional_fields" json:"optional_fields"`
}
StrategyConfig defines the template for a pagination strategy
type VendorExtensions ¶ added in v0.3.0
type VendorExtensions struct {
Enabled bool `yaml:"enabled" json:"enabled"`
Providers map[string]ProviderConfig `yaml:"providers" json:"providers"`
}
VendorExtensions configuration for adding vendor-specific extensions