mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-06 12:37:49 +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
|
package v3
|
||||||
|
|
||||||
import "gopkg.in/yaml.v3"
|
import (
|
||||||
|
"gopkg.in/yaml.v3"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
type Components struct {
|
type Components struct {
|
||||||
Node *yaml.Node
|
Node *yaml.Node
|
||||||
Schemas map[string]Schema
|
Schemas map[string]Schema
|
||||||
Responses map[string]Response
|
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
|
package v3
|
||||||
|
|
||||||
|
import "github.com/pb33f/libopenapi/datamodel/low"
|
||||||
|
|
||||||
type Document struct {
|
type Document struct {
|
||||||
Version string
|
Version string
|
||||||
Info Info
|
Info Info
|
||||||
Servers []Server
|
Servers []Server
|
||||||
Components Components
|
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"
|
"gopkg.in/yaml.v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type Responses struct {
|
||||||
|
Node *yaml.Node
|
||||||
|
Codes map[string]Response
|
||||||
|
Default Response
|
||||||
|
}
|
||||||
|
|
||||||
type Response struct {
|
type Response struct {
|
||||||
Node *yaml.Node
|
Node *yaml.Node
|
||||||
Description low.NodeReference[string]
|
Description low.NodeReference[string]
|
||||||
Headers map[string]Parameter
|
Headers map[string]Parameter
|
||||||
Content map[string]MediaType
|
Content map[string]MediaType
|
||||||
|
Extensions map[string]low.ObjectReference
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,4 +33,13 @@ type Schema struct {
|
|||||||
AdditionalProperties low.ObjectReference
|
AdditionalProperties low.ObjectReference
|
||||||
Description low.NodeReference[string]
|
Description low.NodeReference[string]
|
||||||
Default low.ObjectReference
|
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
|
GetNode() *yaml.Node
|
||||||
}
|
}
|
||||||
|
|
||||||
type NodeReference[T comparable] interface {
|
type NodeReference[T comparable] struct {
|
||||||
GetValue() T
|
Value T
|
||||||
GetNode() *yaml.Node
|
Node *yaml.Node
|
||||||
}
|
}
|
||||||
|
|
||||||
type ObjectReference interface {
|
type ObjectReference struct {
|
||||||
GetValue() interface{}
|
Value interface{}
|
||||||
GetNode() *yaml.Node
|
Node *yaml.Node
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user