mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-06 04:20:11 +00:00
Completed adding v3 models (I think)
Going to start logic for building things out. attempting generic builder pattern first.
This commit is contained in:
12
datamodel/low/3.0/callback.go
Normal file
12
datamodel/low/3.0/callback.go
Normal file
@@ -0,0 +1,12 @@
|
||||
package v3
|
||||
|
||||
import (
|
||||
"github.com/pb33f/libopenapi/datamodel/low"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type Callback struct {
|
||||
Node *yaml.Node
|
||||
Expression map[string]Path
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
@@ -1,9 +1,19 @@
|
||||
package v3
|
||||
|
||||
import "gopkg.in/yaml.v3"
|
||||
import (
|
||||
"gopkg.in/yaml.v3"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type Components struct {
|
||||
Node *yaml.Node
|
||||
Schemas map[string]Schema
|
||||
Responses map[string]Response
|
||||
Node *yaml.Node
|
||||
Schemas map[string]Schema
|
||||
Responses map[string]Response
|
||||
Parameters map[string]Parameter
|
||||
Examples map[string]Example
|
||||
RequestBodies map[string]RequestBody
|
||||
Headers map[string]http.Header
|
||||
SecuritySchemes map[string]SecurityScheme
|
||||
Links map[string]Link
|
||||
Callbacks map[string]Callback
|
||||
}
|
||||
|
||||
12
datamodel/low/3.0/discriminator.go
Normal file
12
datamodel/low/3.0/discriminator.go
Normal file
@@ -0,0 +1,12 @@
|
||||
package v3
|
||||
|
||||
import (
|
||||
"github.com/pb33f/libopenapi/datamodel/low"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type Discriminator struct {
|
||||
Node *yaml.Node
|
||||
PropertyName low.NodeReference[string]
|
||||
Mapping map[string]string
|
||||
}
|
||||
@@ -1,8 +1,15 @@
|
||||
package v3
|
||||
|
||||
import "github.com/pb33f/libopenapi/datamodel/low"
|
||||
|
||||
type Document struct {
|
||||
Version string
|
||||
Info Info
|
||||
Servers []Server
|
||||
Components Components
|
||||
Version string
|
||||
Info Info
|
||||
Servers []Server
|
||||
Paths Paths
|
||||
Components Components
|
||||
Security []SecurityRequirement
|
||||
Tags []Tag
|
||||
ExternalDocs ExternalDoc
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
|
||||
13
datamodel/low/3.0/external_doc.go
Normal file
13
datamodel/low/3.0/external_doc.go
Normal file
@@ -0,0 +1,13 @@
|
||||
package v3
|
||||
|
||||
import (
|
||||
"github.com/pb33f/libopenapi/datamodel/low"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type ExternalDoc struct {
|
||||
Node *yaml.Node
|
||||
Description low.NodeReference[string]
|
||||
URL low.NodeReference[string]
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
17
datamodel/low/3.0/link.go
Normal file
17
datamodel/low/3.0/link.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package v3
|
||||
|
||||
import (
|
||||
"github.com/pb33f/libopenapi/datamodel/low"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type Link struct {
|
||||
Node *yaml.Node
|
||||
OperationRef low.NodeReference[string]
|
||||
OperationId low.NodeReference[string]
|
||||
Parameters map[string]low.NodeReference[string]
|
||||
RequestBody low.NodeReference[string]
|
||||
Description low.NodeReference[string]
|
||||
Server Server
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
24
datamodel/low/3.0/oauth_flows.go
Normal file
24
datamodel/low/3.0/oauth_flows.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package v3
|
||||
|
||||
import (
|
||||
"github.com/pb33f/libopenapi/datamodel/low"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type OAuthFlows struct {
|
||||
Node *yaml.Node
|
||||
Implicit OAuthFlow
|
||||
Password OAuthFlow
|
||||
ClientCredentials OAuthFlow
|
||||
AuthorizationCode OAuthFlow
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
|
||||
type OAuthFlow struct {
|
||||
Node *yaml.Node
|
||||
AuthorizationUrl low.NodeReference[string]
|
||||
TokenURL low.NodeReference[string]
|
||||
RefreshURL low.NodeReference[string]
|
||||
Scopes map[string]string
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
23
datamodel/low/3.0/operation.go
Normal file
23
datamodel/low/3.0/operation.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package v3
|
||||
|
||||
import (
|
||||
"github.com/pb33f/libopenapi/datamodel/low"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type Operation struct {
|
||||
Node *yaml.Node
|
||||
Tags []low.NodeReference[string]
|
||||
Summary low.NodeReference[string]
|
||||
Description low.NodeReference[string]
|
||||
ExternalDocs ExternalDoc
|
||||
OperationId low.NodeReference[string]
|
||||
Parameters []Parameter
|
||||
RequestBody RequestBody
|
||||
Responses Responses
|
||||
Callbacks map[string]Callback
|
||||
Deprecated low.NodeReference[bool]
|
||||
Security []SecurityRequirement
|
||||
Servers []Server
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
30
datamodel/low/3.0/path.go
Normal file
30
datamodel/low/3.0/path.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package v3
|
||||
|
||||
import (
|
||||
"github.com/pb33f/libopenapi/datamodel/low"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type Paths struct {
|
||||
Node *yaml.Node
|
||||
Paths map[string]Path
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
|
||||
type Path struct {
|
||||
Node *yaml.Node
|
||||
Value low.NodeReference[string]
|
||||
Summary low.NodeReference[string]
|
||||
Description low.NodeReference[string]
|
||||
Get Operation
|
||||
Put Operation
|
||||
Post Operation
|
||||
Delete Operation
|
||||
Options Operation
|
||||
Head Operation
|
||||
Patch Operation
|
||||
Trace Operation
|
||||
Servers []Server
|
||||
Parameters []Parameter
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
14
datamodel/low/3.0/request_body.go
Normal file
14
datamodel/low/3.0/request_body.go
Normal file
@@ -0,0 +1,14 @@
|
||||
package v3
|
||||
|
||||
import (
|
||||
"github.com/pb33f/libopenapi/datamodel/low"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type RequestBody struct {
|
||||
Node *yaml.Node
|
||||
Description low.NodeReference[string]
|
||||
Content map[string]MediaType
|
||||
Required low.NodeReference[bool]
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
@@ -5,9 +5,16 @@ import (
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type Responses struct {
|
||||
Node *yaml.Node
|
||||
Codes map[string]Response
|
||||
Default Response
|
||||
}
|
||||
|
||||
type Response struct {
|
||||
Node *yaml.Node
|
||||
Description low.NodeReference[string]
|
||||
Headers map[string]Parameter
|
||||
Content map[string]MediaType
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
|
||||
@@ -33,4 +33,13 @@ type Schema struct {
|
||||
AdditionalProperties low.ObjectReference
|
||||
Description low.NodeReference[string]
|
||||
Default low.ObjectReference
|
||||
Nullable low.NodeReference[bool]
|
||||
Discriminator Discriminator
|
||||
ReadOnly low.NodeReference[bool]
|
||||
WriteOnly low.NodeReference[bool]
|
||||
XML XML
|
||||
ExternalDocs ExternalDoc
|
||||
Example low.ObjectReference
|
||||
Deprecated low.NodeReference[bool]
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
|
||||
24
datamodel/low/3.0/security_scheme.go
Normal file
24
datamodel/low/3.0/security_scheme.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package v3
|
||||
|
||||
import (
|
||||
"github.com/pb33f/libopenapi/datamodel/low"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type SecurityScheme struct {
|
||||
Node *yaml.Node
|
||||
Type low.NodeReference[string]
|
||||
Description low.NodeReference[string]
|
||||
Name low.NodeReference[string]
|
||||
In low.NodeReference[string]
|
||||
Scheme low.NodeReference[string]
|
||||
BearerFormat low.NodeReference[string]
|
||||
Flows OAuthFlows
|
||||
OpenIdConnectURL low.NodeReference[string]
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
|
||||
type SecurityRequirement struct {
|
||||
Node *yaml.Node
|
||||
Value []low.NodeReference[string]
|
||||
}
|
||||
14
datamodel/low/3.0/tag.go
Normal file
14
datamodel/low/3.0/tag.go
Normal file
@@ -0,0 +1,14 @@
|
||||
package v3
|
||||
|
||||
import (
|
||||
"github.com/pb33f/libopenapi/datamodel/low"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type Tag struct {
|
||||
Node *yaml.Node
|
||||
Name low.NodeReference[string]
|
||||
Description low.NodeReference[string]
|
||||
ExternalDocs ExternalDoc
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
16
datamodel/low/3.0/xml.go
Normal file
16
datamodel/low/3.0/xml.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package v3
|
||||
|
||||
import (
|
||||
"github.com/pb33f/libopenapi/datamodel/low"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type XML struct {
|
||||
Node *yaml.Node
|
||||
Name low.NodeReference[string]
|
||||
Namespace low.NodeReference[string]
|
||||
Prefix low.NodeReference[string]
|
||||
Attribute low.NodeReference[string]
|
||||
Wrapped low.NodeReference[bool]
|
||||
Extensions map[string]low.ObjectReference
|
||||
}
|
||||
@@ -6,12 +6,12 @@ type HasNode interface {
|
||||
GetNode() *yaml.Node
|
||||
}
|
||||
|
||||
type NodeReference[T comparable] interface {
|
||||
GetValue() T
|
||||
GetNode() *yaml.Node
|
||||
type NodeReference[T comparable] struct {
|
||||
Value T
|
||||
Node *yaml.Node
|
||||
}
|
||||
|
||||
type ObjectReference interface {
|
||||
GetValue() interface{}
|
||||
GetNode() *yaml.Node
|
||||
type ObjectReference struct {
|
||||
Value interface{}
|
||||
Node *yaml.Node
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user