mgmtapi

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package mgmtapi provides primitives to interact with the openapi HTTP API.

Code generated by unknown module path version unknown version DO NOT EDIT.

Package mgmtapi provides primitives to interact with the openapi HTTP API.

Code generated by unknown module path version unknown version DO NOT EDIT.

Package mgmtapi provides primitives to interact with the openapi HTTP API.

Code generated by unknown module path version unknown version DO NOT EDIT.

Package mgmtapi provides primitives to interact with the openapi HTTP API.

Code generated by unknown module path version unknown version DO NOT EDIT.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ErrorResponse added in v0.9.0

func ErrorResponse(w http.ResponseWriter, p Problem)

Error creates an detailed error response.

func GetSwagger

func GetSwagger() (swagger *openapi3.T, err error)

GetSwagger returns the Swagger specification corresponding to the generated code in this file. The external references of Swagger specification are resolved. The logic of resolving external references is tightly connected to "import-mapping" feature. Externally referenced files must be embedded in the corresponding golang packages. Urls can be supported but this task was out of the scope.

func Handler

func Handler(si ServerInterface) http.Handler

Handler creates http.Handler with routing matching OpenAPI spec.

func HandlerFromMux

func HandlerFromMux(si ServerInterface, r chi.Router) http.Handler

HandlerFromMux creates http.Handler with routing matching OpenAPI spec based on the provided mux.

func HandlerFromMuxWithBaseURL

func HandlerFromMuxWithBaseURL(si ServerInterface, r chi.Router, baseURL string) http.Handler

func HandlerWithOptions

func HandlerWithOptions(si ServerInterface, options ChiServerOptions) http.Handler

HandlerWithOptions creates http.Handler with additional options

func NewGetConfigRequest

func NewGetConfigRequest(server string) (*http.Request, error)

NewGetConfigRequest generates requests for GetConfig

func NewGetInfoRequest

func NewGetInfoRequest(server string) (*http.Request, error)

NewGetInfoRequest generates requests for GetInfo

func NewGetInterfacesRequest

func NewGetInterfacesRequest(server string) (*http.Request, error)

NewGetInterfacesRequest generates requests for GetInterfaces

func NewGetLogLevelRequest

func NewGetLogLevelRequest(server string) (*http.Request, error)

NewGetLogLevelRequest generates requests for GetLogLevel

func NewSetLogLevelRequest

func NewSetLogLevelRequest(server string, body SetLogLevelJSONRequestBody) (*http.Request, error)

NewSetLogLevelRequest calls the generic SetLogLevel builder with application/json body

func NewSetLogLevelRequestWithBody

func NewSetLogLevelRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewSetLogLevelRequestWithBody generates requests for SetLogLevel with any type of body

func PathToRawSpec

func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error)

Constructs a synthetic filesystem for resolving external references when loading openapi specifications.

func ServeSpecInteractive

func ServeSpecInteractive(w http.ResponseWriter, r *http.Request)

ServeSpecInteractive serves the interactive redocly OpenAPI3 spec.

func ServeSpecJSON

func ServeSpecJSON(w http.ResponseWriter, r *http.Request)

ServeSpecJSON serves the json encoded OpenAPI3 spec.

Types

type BFD

type BFD struct {
	// DesiredMinimumTxInterval The minimum interval between transmission of BFD control packets that the operator desires. This value is advertised to the peer, however the actual interval used is specified by taking the maximum of desired-minimum-tx-interval and the value of the remote required-minimum-receive interval value.
	DesiredMinimumTxInterval string `json:"desired_minimum_tx_interval"`

	// DetectionMultiplier The number of packets that must be missed to declare this session as down. The detection interval for the BFD session is calculated by multiplying the value of the negotiated transmission interval by this value.
	DetectionMultiplier int `json:"detection_multiplier"`

	// Enabled Indication of whether BFD is enabled and configured on this interface.
	Enabled bool `json:"enabled"`

	// RequiredMinimumReceive The minimum interval between received BFD control packets that this system should support. This value is advertised to the remote peer to indicate the maximum frequency (i.e., minimum inter-packet interval) between BFD control packets that is acceptable to the local system.
	RequiredMinimumReceive string `json:"required_minimum_receive"`
}

BFD defines model for BFD.

type BadRequest

type BadRequest = StandardError

BadRequest defines model for BadRequest.

type ChiServerOptions

type ChiServerOptions struct {
	BaseURL          string
	BaseRouter       chi.Router
	Middlewares      []MiddlewareFunc
	ErrorHandlerFunc func(w http.ResponseWriter, r *http.Request, err error)
}

type Client

type Client struct {
	// The endpoint of the server conforming to this interface, with scheme,
	// https://api.deepmap.com for example. This can contain a path relative
	// to the server, such as https://api.deepmap.com/dev-test, and all the
	// paths in the swagger spec will be appended to the server.
	Server string

	// Doer for performing requests, typically a *http.Client with any
	// customized settings, such as certificate chains.
	Client HttpRequestDoer

	// A list of callbacks for modifying requests which are generated before sending over
	// the network.
	RequestEditors []RequestEditorFn
}

Client which conforms to the OpenAPI3 specification for this service.

func NewClient

func NewClient(server string, opts ...ClientOption) (*Client, error)

Creates a new Client, with reasonable defaults

func (*Client) GetConfig

func (c *Client) GetConfig(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetInfo

func (c *Client) GetInfo(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetInterfaces

func (c *Client) GetInterfaces(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetLogLevel

func (c *Client) GetLogLevel(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) SetLogLevel

func (c *Client) SetLogLevel(ctx context.Context, body SetLogLevelJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) SetLogLevelWithBody

func (c *Client) SetLogLevelWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

type ClientInterface

type ClientInterface interface {
	// GetConfig request
	GetConfig(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetInfo request
	GetInfo(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetInterfaces request
	GetInterfaces(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetLogLevel request
	GetLogLevel(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

	// SetLogLevel request with any body
	SetLogLevelWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	SetLogLevel(ctx context.Context, body SetLogLevelJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
}

The interface specification for the client above.

type ClientOption

type ClientOption func(*Client) error

ClientOption allows setting custom parameters during construction

func WithBaseURL

func WithBaseURL(baseURL string) ClientOption

WithBaseURL overrides the baseURL.

func WithHTTPClient

func WithHTTPClient(doer HttpRequestDoer) ClientOption

WithHTTPClient allows overriding the default Doer, which is automatically created using http.Client. This is useful for tests.

func WithRequestEditorFn

func WithRequestEditorFn(fn RequestEditorFn) ClientOption

WithRequestEditorFn allows setting up a callback function, which will be called right before sending the request. This can be used to mutate the request.

type ClientWithResponses

type ClientWithResponses struct {
	ClientInterface
}

ClientWithResponses builds on ClientInterface to offer response payloads

func NewClientWithResponses

func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error)

NewClientWithResponses creates a new ClientWithResponses, which wraps Client with return type handling

func (*ClientWithResponses) GetConfigWithResponse

func (c *ClientWithResponses) GetConfigWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetConfigResponse, error)

GetConfigWithResponse request returning *GetConfigResponse

func (*ClientWithResponses) GetInfoWithResponse

func (c *ClientWithResponses) GetInfoWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetInfoResponse, error)

GetInfoWithResponse request returning *GetInfoResponse

func (*ClientWithResponses) GetInterfacesWithResponse

func (c *ClientWithResponses) GetInterfacesWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetInterfacesResponse, error)

GetInterfacesWithResponse request returning *GetInterfacesResponse

func (*ClientWithResponses) GetLogLevelWithResponse

func (c *ClientWithResponses) GetLogLevelWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetLogLevelResponse, error)

GetLogLevelWithResponse request returning *GetLogLevelResponse

func (*ClientWithResponses) SetLogLevelWithBodyWithResponse

func (c *ClientWithResponses) SetLogLevelWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SetLogLevelResponse, error)

SetLogLevelWithBodyWithResponse request with arbitrary body returning *SetLogLevelResponse

func (*ClientWithResponses) SetLogLevelWithResponse

func (c *ClientWithResponses) SetLogLevelWithResponse(ctx context.Context, body SetLogLevelJSONRequestBody, reqEditors ...RequestEditorFn) (*SetLogLevelResponse, error)

type ClientWithResponsesInterface

type ClientWithResponsesInterface interface {
	// GetConfig request
	GetConfigWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetConfigResponse, error)

	// GetInfo request
	GetInfoWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetInfoResponse, error)

	// GetInterfaces request
	GetInterfacesWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetInterfacesResponse, error)

	// GetLogLevel request
	GetLogLevelWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetLogLevelResponse, error)

	// SetLogLevel request with any body
	SetLogLevelWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SetLogLevelResponse, error)

	SetLogLevelWithResponse(ctx context.Context, body SetLogLevelJSONRequestBody, reqEditors ...RequestEditorFn) (*SetLogLevelResponse, error)
}

ClientWithResponsesInterface is the interface specification for the client with responses above.

type GetConfigResponse

type GetConfigResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *StandardError
}

func ParseGetConfigResponse

func ParseGetConfigResponse(rsp *http.Response) (*GetConfigResponse, error)

ParseGetConfigResponse parses an HTTP response from a GetConfigWithResponse call

func (GetConfigResponse) Status

func (r GetConfigResponse) Status() string

Status returns HTTPResponse.Status

func (GetConfigResponse) StatusCode

func (r GetConfigResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetInfoResponse

type GetInfoResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *StandardError
}

func ParseGetInfoResponse

func ParseGetInfoResponse(rsp *http.Response) (*GetInfoResponse, error)

ParseGetInfoResponse parses an HTTP response from a GetInfoWithResponse call

func (GetInfoResponse) Status

func (r GetInfoResponse) Status() string

Status returns HTTPResponse.Status

func (GetInfoResponse) StatusCode

func (r GetInfoResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetInterfacesResponse

type GetInterfacesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *InterfacesResponse
	JSON400      *Problem
}

func ParseGetInterfacesResponse

func ParseGetInterfacesResponse(rsp *http.Response) (*GetInterfacesResponse, error)

ParseGetInterfacesResponse parses an HTTP response from a GetInterfacesWithResponse call

func (GetInterfacesResponse) Status

func (r GetInterfacesResponse) Status() string

Status returns HTTPResponse.Status

func (GetInterfacesResponse) StatusCode

func (r GetInterfacesResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetLogLevelResponse

type GetLogLevelResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *LogLevel
	JSON400      *StandardError
}

func ParseGetLogLevelResponse

func ParseGetLogLevelResponse(rsp *http.Response) (*GetLogLevelResponse, error)

ParseGetLogLevelResponse parses an HTTP response from a GetLogLevelWithResponse call

func (GetLogLevelResponse) Status

func (r GetLogLevelResponse) Status() string

Status returns HTTPResponse.Status

func (GetLogLevelResponse) StatusCode

func (r GetLogLevelResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type HttpRequestDoer

type HttpRequestDoer interface {
	Do(req *http.Request) (*http.Response, error)
}

Doer performs HTTP requests.

The standard http.Client implements this interface.

type Interface

type Interface struct {
	Bfd BFD `json:"bfd"`

	// InterfaceId SCION interface identifier.
	InterfaceId int `json:"interface_id"`

	// InternalInterface The address of internal SCION interface of the router.
	InternalInterface string            `json:"internal_interface"`
	Neighbor          InterfaceNeighbor `json:"neighbor"`
	Relationship      LinkRelationship  `json:"relationship"`

	// ScionMtu The maximum transmission unit in bytes for SCION packets. This represents the protocol data unit (PDU) of the SCION layer and is usually calculated as maximum Ethernet payload - IP Header - UDP Header.
	ScionMtu ScionMTU  `json:"scion_mtu"`
	State    LinkState `json:"state"`
}

Interface defines model for Interface.

type InterfaceNeighbor

type InterfaceNeighbor struct {
	// Address UDP/IP underlay address of the SCION Interface.
	Address string `json:"address"`
	IsdAs   IsdAs  `json:"isd_as"`
}

InterfaceNeighbor defines model for InterfaceNeighbor.

type InterfacesResponse

type InterfacesResponse struct {
	Interfaces        *[]Interface        `json:"interfaces,omitempty"`
	SiblingInterfaces *[]SiblingInterface `json:"sibling_interfaces,omitempty"`
}

InterfacesResponse defines model for InterfacesResponse.

type InvalidParamFormatError

type InvalidParamFormatError struct {
	ParamName string
	Err       error
}

func (*InvalidParamFormatError) Error

func (e *InvalidParamFormatError) Error() string

func (*InvalidParamFormatError) Unwrap

func (e *InvalidParamFormatError) Unwrap() error

type IsdAs

type IsdAs = string

IsdAs defines model for IsdAs.

type LinkRelationship

type LinkRelationship string

LinkRelationship defines model for LinkRelationship.

const (
	CHILD  LinkRelationship = "CHILD"
	CORE   LinkRelationship = "CORE"
	PARENT LinkRelationship = "PARENT"
	PEER   LinkRelationship = "PEER"
)

Defines values for LinkRelationship.

type LinkState

type LinkState string

LinkState defines model for LinkState.

const (
	DOWN LinkState = "DOWN"
	UP   LinkState = "UP"
)

Defines values for LinkState.

type LogLevel

type LogLevel struct {
	// Level Logging level
	Level LogLevelLevel `json:"level"`
}

LogLevel defines model for LogLevel.

type LogLevelLevel

type LogLevelLevel string

LogLevelLevel Logging level

const (
	Debug LogLevelLevel = "debug"
	Error LogLevelLevel = "error"
	Info  LogLevelLevel = "info"
)

Defines values for LogLevelLevel.

type MiddlewareFunc

type MiddlewareFunc func(http.Handler) http.Handler

type Problem

type Problem struct {
	// Detail A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
	Detail *string `json:"detail,omitempty"`

	// Instance A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code.
	Instance *string `json:"instance,omitempty"`

	// Status The HTTP status code generated by the origin server for this occurrence of the problem.
	Status int `json:"status"`

	// Title A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
	Title string `json:"title"`

	// Type A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferencable and point to a human-readable documentation nor globally unique for the problem type.
	Type *string `json:"type,omitempty"`
}

Problem defines model for Problem.

type RequestEditorFn

type RequestEditorFn func(ctx context.Context, req *http.Request) error

RequestEditorFn is the function signature for the RequestEditor callback function

type RequiredHeaderError

type RequiredHeaderError struct {
	ParamName string
	Err       error
}

func (*RequiredHeaderError) Error

func (e *RequiredHeaderError) Error() string

func (*RequiredHeaderError) Unwrap

func (e *RequiredHeaderError) Unwrap() error

type RequiredParamError

type RequiredParamError struct {
	ParamName string
}

func (*RequiredParamError) Error

func (e *RequiredParamError) Error() string

type ScionMTU

type ScionMTU = int

ScionMTU The maximum transmission unit in bytes for SCION packets. This represents the protocol data unit (PDU) of the SCION layer and is usually calculated as maximum Ethernet payload - IP Header - UDP Header.

type Server

type Server struct {
	Config    http.HandlerFunc
	Info      http.HandlerFunc
	LogLevel  http.HandlerFunc
	Dataplane control.ObservableDataplane
}

Server implements the Control Service API.

func (*Server) GetConfig

func (s *Server) GetConfig(w http.ResponseWriter, r *http.Request)

GetConfig is an indirection to the http handler.

func (*Server) GetInfo

func (s *Server) GetInfo(w http.ResponseWriter, r *http.Request)

GetInfo is an indirection to the http handler.

func (*Server) GetInterfaces

func (s *Server) GetInterfaces(w http.ResponseWriter, r *http.Request)

GetInterfaces gets the interfaces and sibling interfaces of the router.

func (*Server) GetLogLevel

func (s *Server) GetLogLevel(w http.ResponseWriter, r *http.Request)

GetLogLevel is an indirection to the http handler.

func (*Server) SetLogLevel

func (s *Server) SetLogLevel(w http.ResponseWriter, r *http.Request)

SetLogLevel is an indirection to the http handler.

type ServerInterface

type ServerInterface interface {
	// Prints the TOML configuration file.
	// (GET /config)
	GetConfig(w http.ResponseWriter, r *http.Request)
	// Basic information page about the control service process.
	// (GET /info)
	GetInfo(w http.ResponseWriter, r *http.Request)
	// List the SCION interfaces
	// (GET /interfaces)
	GetInterfaces(w http.ResponseWriter, r *http.Request)
	// Get logging level
	// (GET /log/level)
	GetLogLevel(w http.ResponseWriter, r *http.Request)
	// Set logging level
	// (PUT /log/level)
	SetLogLevel(w http.ResponseWriter, r *http.Request)
}

ServerInterface represents all server handlers.

type ServerInterfaceWrapper

type ServerInterfaceWrapper struct {
	Handler            ServerInterface
	HandlerMiddlewares []MiddlewareFunc
	ErrorHandlerFunc   func(w http.ResponseWriter, r *http.Request, err error)
}

ServerInterfaceWrapper converts contexts to parameters.

func (*ServerInterfaceWrapper) GetConfig

func (siw *ServerInterfaceWrapper) GetConfig(w http.ResponseWriter, r *http.Request)

GetConfig operation middleware

func (*ServerInterfaceWrapper) GetInfo

GetInfo operation middleware

func (*ServerInterfaceWrapper) GetInterfaces

func (siw *ServerInterfaceWrapper) GetInterfaces(w http.ResponseWriter, r *http.Request)

GetInterfaces operation middleware

func (*ServerInterfaceWrapper) GetLogLevel

func (siw *ServerInterfaceWrapper) GetLogLevel(w http.ResponseWriter, r *http.Request)

GetLogLevel operation middleware

func (*ServerInterfaceWrapper) SetLogLevel

func (siw *ServerInterfaceWrapper) SetLogLevel(w http.ResponseWriter, r *http.Request)

SetLogLevel operation middleware

type SetLogLevelJSONRequestBody

type SetLogLevelJSONRequestBody = LogLevel

SetLogLevelJSONRequestBody defines body for SetLogLevel for application/json ContentType.

type SetLogLevelResponse

type SetLogLevelResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *LogLevel
	JSON400      *StandardError
}

func ParseSetLogLevelResponse

func ParseSetLogLevelResponse(rsp *http.Response) (*SetLogLevelResponse, error)

ParseSetLogLevelResponse parses an HTTP response from a SetLogLevelWithResponse call

func (SetLogLevelResponse) Status

func (r SetLogLevelResponse) Status() string

Status returns HTTPResponse.Status

func (SetLogLevelResponse) StatusCode

func (r SetLogLevelResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type SiblingInterface

type SiblingInterface struct {
	// InterfaceId SCION interface identifier.
	InterfaceId int `json:"interface_id"`

	// InternalInterface Internal address of the local router.
	InternalInterface string           `json:"internal_interface"`
	Neighbor          SiblingNeighbor  `json:"neighbor"`
	Relationship      LinkRelationship `json:"relationship"`

	// ScionMtu The maximum transmission unit in bytes for SCION packets. This represents the protocol data unit (PDU) of the SCION layer and is usually calculated as maximum Ethernet payload - IP Header - UDP Header.
	ScionMtu ScionMTU  `json:"scion_mtu"`
	State    LinkState `json:"state"`
}

SiblingInterface defines model for SiblingInterface.

type SiblingNeighbor

type SiblingNeighbor struct {
	IsdAs IsdAs `json:"isd_as"`
}

SiblingNeighbor defines model for SiblingNeighbor.

type StandardError

type StandardError struct {
	// Error Error message
	Error string `json:"error"`
}

StandardError defines model for StandardError.

type TooManyValuesForParamError

type TooManyValuesForParamError struct {
	ParamName string
	Count     int
}

func (*TooManyValuesForParamError) Error

type UnescapedCookieParamError

type UnescapedCookieParamError struct {
	ParamName string
	Err       error
}

func (*UnescapedCookieParamError) Error

func (e *UnescapedCookieParamError) Error() string

func (*UnescapedCookieParamError) Unwrap

func (e *UnescapedCookieParamError) Unwrap() error

type UnmarshallingParamError added in v0.9.0

type UnmarshallingParamError struct {
	ParamName string
	Err       error
}

func (*UnmarshallingParamError) Error added in v0.9.0

func (e *UnmarshallingParamError) Error() string

func (*UnmarshallingParamError) Unwrap added in v0.9.0

func (e *UnmarshallingParamError) Unwrap() error

Jump to

Keyboard shortcuts

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