apidoc.proto

Package : devportal.solo.io

Top

apidoc.proto

Table of Contents

APIDocSpec

An APIDoc tells the DevPortal controller how to load an API Specification Document (e.g. a Swagger YAML file). APIDocs define the operations which are be bundled and exposed in API Products. The API Specifications contained within an APIDoc can be used to provide configuration for HTTP routing of calls to the APIs defined in the spec.

Field Type Label Description
openApi APIDocSpec.OpenApiDoc Set this field if the APIDoc is of type OpenApi (default).
grpc APIDocSpec.GrpcDoc Set this field if the APIDoc is of type gRPC (default).

APIDocSpec.GrpcDoc

Parameters specific to a gRPC APIDOc.

Field Type Label Description
dataSource common.devportal.solo.io.DataSource Use a generic DataSource to retrieve the serialized gRPC Descriptors. To generate the descriptors manually, add --descriptors_out=<file> to the protoc command used to generate your proto files.
reflectionSource APIDocSpec.GrpcDoc.ReflectionDescriptorsSource Use gRPC reflection to retrieve the gRPC descriptors

APIDocSpec.GrpcDoc.ReflectionDescriptorsSource

Retrieve the descriptors from a gRPC server using gRPC Reflection. See https://github.com/grpc/grpc/blob/master/doc/server-reflection.md for more details.

Field Type Label Description
serviceAddress string the address of the grpc service
connectionTimeout google.protobuf.Duration the duration of time to wait for a grpc connection to be established before erroring out
insecure bool connect over HTTP rather than HTTPS

APIDocSpec.OpenApiDoc

Parameters specific to OpenApi APIDoc.

Field Type Label Description
content common.devportal.solo.io.DataSource DataSource for retrieving the OpenAPI schema content

APIDocStatus

The current status of the APIDoc. The APIDoc will be processed as soon as one or more Portals select it for publishing.

Field Type Label Description
observedGeneration int64 The observed generation of the APIDoc. When this matches the APIDoc’s metadata.generation, it indicates the status is up-to-date.
state common.devportal.solo.io.State The current state of the APIDoc.
reason string A human-readable string explaining the error, if any.
displayName string User-facing display name for the APIDoc.
version string User-facing version number
description string User-facing description
openApi OpenAPIOperations information specific to a grpc method
grpc GrpcMethods information specific to a grpc method

GrpcMethods

Field Type Label Description
methods []GrpcMethods.GrpcMethod repeated the list of methods defined in the gRPC Schema

GrpcMethods.GrpcMethod

describes an operation (RPC method) defined in a set of gRPC Descriptors

Field Type Label Description
serviceName string the name of the gRPC service serving the RPC method.
rpcName string the name of the RPC method as defined on the service.
summary string the summary, if any, for the method
route RouteSpecifier the Routing configuration, if any, defined for this operation within the gRPC descriptors. Defined using the router.devportal.solo.io. gRPC options.

OpenAPIOperations

Field Type Label Description
operations []OpenAPIOperations.Operation repeated the list of operations defined in the OpenAPI schema

OpenAPIOperations.Operation

describes an operation as defined in an OpenAPI Schema

Field Type Label Description
operationId string the OperationID of the operation
path string the HTTP Path for the operation
verb string the HTTP Verb for the operation
summary string the summary, if any, for the operation
route RouteSpecifier the Routing configuration, if any, defined for this operation within the OpenAPI doc. Defined using the x-solo-product-router OpenAPI extension.
usagePlans []string repeated The names of the usage plans that are authorized to access this route. If the route is imported into a Product where the UsagePlan does not exist, the route will be considered invalid. If this route is shared between multiple API Products, the usage plans listed here must be defined on each one. Defined using the x-solo-product-usage-plans OpenAPI extension.