debian-forge-composer/vendor/github.com/speakeasy-api/openapi-overlay/pkg/overlay/schema.go
Sanne Raymaekers b2700903ae go.mod: bump github.com/getkin/kin-openapi to v0.131.0
As deepmap/oapi-codegen didn't work with this newer version, upgrade to
oapi-codegen/oapi-codegen v2.

Mitigating CVE-2025-30153
2025-03-26 11:13:14 +01:00

64 lines
1.7 KiB
Go

package overlay
import (
"bytes"
"gopkg.in/yaml.v3"
)
// Extensible provides a place for extensions to be added to components of the
// Overlay configuration. These are a map from x-* extension fields to their values.
type Extensions map[string]any
// Overlay is the top-level configuration for an OpenAPI overlay.
type Overlay struct {
Extensions `yaml:"-,inline"`
// Version is the version of the overlay configuration. As the RFC was never
// really ratifies, this value does not mean much.
Version string `yaml:"overlay"`
// Info describes the metadata for the overlay.
Info Info `yaml:"info"`
// Extends is a URL to the OpenAPI specification this overlay applies to.
Extends string `yaml:"extends,omitempty"`
// Actions is the list of actions to perform to apply the overlay.
Actions []Action `yaml:"actions"`
}
func (o *Overlay) ToString() (string, error) {
buf := bytes.NewBuffer([]byte{})
decoder := yaml.NewEncoder(buf)
decoder.SetIndent(2)
err := decoder.Encode(o)
return buf.String(), err
}
// Info describes the metadata for the overlay.
type Info struct {
Extensions `yaml:"-,inline"`
// Title is the title of the overlay.
Title string `yaml:"title"`
// Version is the version of the overlay.
Version string `yaml:"version"`
}
type Action struct {
Extensions `yaml:"-,inline"`
// Target is the JSONPath to the target of the action.
Target string `yaml:"target"`
// Description is a description of the action.
Description string `yaml:"description,omitempty"`
// Update is the sub-document to use to merge or replace in the target. This is
// ignored if Remove is set.
Update yaml.Node `yaml:"update,omitempty"`
// Remove marks the target node for removal rather than update.
Remove bool `yaml:"remove,omitempty"`
}