gnostic_plugin_v1

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 19, 2018 License: Apache-2.0 Imports: 15 Imported by: 0

README

Plugins

This directory contains support code for building Gnostic plugins and associated examples.

Plugins are used to process API descriptions and can perform tasks like documentation and code generation. Plugins can be written in any language that is supported by the Protocol Buffer tools.

Documentation

Overview

Package gnostic_plugin_v1 is a generated protocol buffer package.

It is generated from these files:

plugins/plugin.proto

It has these top-level messages:

Version
Parameter
Request
Message
Messages
Response
File

Index

Constants

This section is empty.

Variables

View Source
var Message_Level_name = map[int32]string{
	0: "UNKNOWN",
	1: "INFO",
	2: "WARNING",
	3: "ERROR",
	4: "FATAL",
}
View Source
var Message_Level_value = map[string]int32{
	"UNKNOWN": 0,
	"INFO":    1,
	"WARNING": 2,
	"ERROR":   3,
	"FATAL":   4,
}

Functions

func HandleResponse

func HandleResponse(response *Response, outputLocation string) error

Types

type Environment

type Environment struct {
	Request         *Request  // plugin request object
	Response        *Response // response message
	Invocation      string    // string representation of call
	RunningAsPlugin bool      // true if app is being run as a plugin
}

Environment contains the environment of a plugin call.

func NewEnvironment

func NewEnvironment() (env *Environment, err error)

NewEnvironment creates a plugin context from arguments and standard input.

func (*Environment) RespondAndExit

func (env *Environment) RespondAndExit()

RespondAndExit serializes and returns the plugin response and then exits.

func (*Environment) RespondAndExitIfError

func (env *Environment) RespondAndExitIfError(err error)

RespondAndExitIfError checks an error and if it is non-nil, records it and serializes and returns the response and then exits.

type File

type File struct {
	// name of the file
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// data to be written to the file
	Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
}

File describes a file generated by a plugin.

func (*File) Descriptor

func (*File) Descriptor() ([]byte, []int)

func (*File) GetData

func (m *File) GetData() []byte

func (*File) GetName

func (m *File) GetName() string

func (*File) ProtoMessage

func (*File) ProtoMessage()

func (*File) Reset

func (m *File) Reset()

func (*File) String

func (m *File) String() string

type Message

type Message struct {
	// message severity
	Level Message_Level `protobuf:"varint,1,opt,name=level,enum=gnostic.plugin.v1.Message_Level" json:"level,omitempty"`
	// a unique message identifier
	Code string `protobuf:"bytes,2,opt,name=code" json:"code,omitempty"`
	// message text
	Text string `protobuf:"bytes,3,opt,name=text" json:"text,omitempty"`
	// an associated key path in an API description
	Keys []string `protobuf:"bytes,4,rep,name=keys" json:"keys,omitempty"`
}

Plugins can return messages to be collated and reported by gnostic.

func (*Message) Descriptor

func (*Message) Descriptor() ([]byte, []int)

func (*Message) GetCode

func (m *Message) GetCode() string

func (*Message) GetKeys

func (m *Message) GetKeys() []string

func (*Message) GetLevel

func (m *Message) GetLevel() Message_Level

func (*Message) GetText

func (m *Message) GetText() string

func (*Message) ProtoMessage

func (*Message) ProtoMessage()

func (*Message) Reset

func (m *Message) Reset()

func (*Message) String

func (m *Message) String() string

type Message_Level

type Message_Level int32
const (
	Message_UNKNOWN Message_Level = 0
	Message_INFO    Message_Level = 1
	Message_WARNING Message_Level = 2
	Message_ERROR   Message_Level = 3
	Message_FATAL   Message_Level = 4
)

func (Message_Level) EnumDescriptor

func (Message_Level) EnumDescriptor() ([]byte, []int)

func (Message_Level) String

func (x Message_Level) String() string

type Messages

type Messages struct {
	Messages []*Message `protobuf:"bytes,1,rep,name=messages" json:"messages,omitempty"`
}

func (*Messages) Descriptor

func (*Messages) Descriptor() ([]byte, []int)

func (*Messages) GetMessages

func (m *Messages) GetMessages() []*Message

func (*Messages) ProtoMessage

func (*Messages) ProtoMessage()

func (*Messages) Reset

func (m *Messages) Reset()

func (*Messages) String

func (m *Messages) String() string

type Parameter

type Parameter struct {
	// The name of the parameter as specified in the option string
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// The parameter value as specified in the option string
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

A parameter passed to the plugin from (or through) gnostic.

func (*Parameter) Descriptor

func (*Parameter) Descriptor() ([]byte, []int)

func (*Parameter) GetName

func (m *Parameter) GetName() string

func (*Parameter) GetValue

func (m *Parameter) GetValue() string

func (*Parameter) ProtoMessage

func (*Parameter) ProtoMessage()

func (*Parameter) Reset

func (m *Parameter) Reset()

func (*Parameter) String

func (m *Parameter) String() string

type Request

type Request struct {
	// filename or URL of the original source document
	SourceName string `protobuf:"bytes,1,opt,name=source_name,json=sourceName" json:"source_name,omitempty"`
	// Output path specified in the plugin invocation.
	OutputPath string `protobuf:"bytes,2,opt,name=output_path,json=outputPath" json:"output_path,omitempty"`
	// Plugin parameters parsed from the invocation string.
	Parameters []*Parameter `protobuf:"bytes,3,rep,name=parameters" json:"parameters,omitempty"`
	// The version number of gnostic.
	CompilerVersion *Version `protobuf:"bytes,4,opt,name=compiler_version,json=compilerVersion" json:"compiler_version,omitempty"`
	// API models
	Models []*google_protobuf.Any `protobuf:"bytes,5,rep,name=models" json:"models,omitempty"`
}

An encoded Request is written to the plugin's stdin.

func (*Request) AddModel

func (request *Request) AddModel(modelType string, model proto.Message) error

func (*Request) Descriptor

func (*Request) Descriptor() ([]byte, []int)

func (*Request) GetCompilerVersion

func (m *Request) GetCompilerVersion() *Version

func (*Request) GetModels

func (m *Request) GetModels() []*google_protobuf.Any

func (*Request) GetOutputPath

func (m *Request) GetOutputPath() string

func (*Request) GetParameters

func (m *Request) GetParameters() []*Parameter

func (*Request) GetSourceName

func (m *Request) GetSourceName() string

func (*Request) ProtoMessage

func (*Request) ProtoMessage()

func (*Request) Reset

func (m *Request) Reset()

func (*Request) String

func (m *Request) String() string

type Response

type Response struct {
	// Error message.  If non-empty, the plugin failed.
	// The plugin process should exit with status code zero
	// even if it reports an error in this way.
	//
	// This should be used to indicate errors which prevent the plugin from
	// operating as intended.  Errors which indicate a problem in gnostic
	// itself -- such as the input Document being unparseable -- should be
	// reported by writing a message to stderr and exiting with a non-zero
	// status code.
	Errors []string `protobuf:"bytes,1,rep,name=errors" json:"errors,omitempty"`
	// file output, each file will be written by gnostic to an appropriate location.
	Files []*File `protobuf:"bytes,2,rep,name=files" json:"files,omitempty"`
	// informational messages to be collected and reported by gnostic.
	Messages []*Message `protobuf:"bytes,3,rep,name=messages" json:"messages,omitempty"`
}

The plugin writes an encoded Response to stdout.

func (*Response) Descriptor

func (*Response) Descriptor() ([]byte, []int)

func (*Response) GetErrors

func (m *Response) GetErrors() []string

func (*Response) GetFiles

func (m *Response) GetFiles() []*File

func (*Response) GetMessages

func (m *Response) GetMessages() []*Message

func (*Response) ProtoMessage

func (*Response) ProtoMessage()

func (*Response) Reset

func (m *Response) Reset()

func (*Response) String

func (m *Response) String() string

type Version

type Version struct {
	Major int32 `protobuf:"varint,1,opt,name=major" json:"major,omitempty"`
	Minor int32 `protobuf:"varint,2,opt,name=minor" json:"minor,omitempty"`
	Patch int32 `protobuf:"varint,3,opt,name=patch" json:"patch,omitempty"`
	// A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should
	// be empty for mainline stable releases.
	Suffix string `protobuf:"bytes,4,opt,name=suffix" json:"suffix,omitempty"`
}

The version number of gnostic.

func (*Version) Descriptor

func (*Version) Descriptor() ([]byte, []int)

func (*Version) GetMajor

func (m *Version) GetMajor() int32

func (*Version) GetMinor

func (m *Version) GetMinor() int32

func (*Version) GetPatch

func (m *Version) GetPatch() int32

func (*Version) GetSuffix

func (m *Version) GetSuffix() string

func (*Version) ProtoMessage

func (*Version) ProtoMessage()

func (*Version) Reset

func (m *Version) Reset()

func (*Version) String

func (m *Version) String() string

Directories

Path Synopsis
gnostic_analyze is a tool for analyzing OpenAPI descriptions.
gnostic_analyze is a tool for analyzing OpenAPI descriptions.
summarize
summarize is a tool for summarizing the results of gnostic_analyze runs.
summarize is a tool for summarizing the results of gnostic_analyze runs.
gnostic_go_generator is a sample Gnostic plugin that generates Go code that supports an API.
gnostic_go_generator is a sample Gnostic plugin that generates Go code that supports an API.
examples/v2.0/bookstore/bookstore
Package bookstore exists to allow this repo to work with recursive go get.
Package bookstore exists to allow this repo to work with recursive go get.
examples/v2.0/sample/sample
Package sample exists to allow this repo to work with recursive go get.
Package sample exists to allow this repo to work with recursive go get.
examples/v2.0/xkcd/xkcd
Package xkcd exists to allow this repo to work with recursive go get.
Package xkcd exists to allow this repo to work with recursive go get.
examples/v3.0/bookstore/bookstore
Package bookstore exists to allow this repo to work with recursive go get.
Package bookstore exists to allow this repo to work with recursive go get.
examples/v3.0/urlshortener/urlshortener
Package urlshortener exists to allow this repo to work with recursive go get.
Package urlshortener exists to allow this repo to work with recursive go get.
gnostic_go_generator is a sample Gnostic plugin that generates Go code that supports an API.
gnostic_go_generator is a sample Gnostic plugin that generates Go code that supports an API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL