apiproduct.proto

Package : devportal.solo.io

Top

apiproduct.proto

Table of Contents

APIProductSpec

APIProducts represent a logical grouping of APIDoc operations that should be exposed to end users as a homogeneous API. Each APIProduct consists of one or more versions, and each version defines its own distinct set of APIDoc operations as well as the backends serving each operation.
Together with the Environments that reference them, APIProducts control the way APIs are exposed by the Portal and the Router for consumption by client applications.

Field Type Label Description
displayInfo APIProductSpec.DisplayInfo User-facing information to display to GUI users for this APIProduct.
versions []APIProductSpec.Version repeated A list of versions of the APIProduct. All versions will inherit the display_info defined on the top level APIProduct.

APIProductSpec.APISelector

Selects a set of operations from a specific APIDoc.

Field Type Label Description
apiDoc common.devportal.solo.io.ObjectRef A reference to the APIDoc defining the operations.
openApi OpenAPIOperationSelector A selection of OpenAPI operations.
grpc GrpcMethodSelector Information specific to a gRPC method.

APIProductSpec.DisplayInfo

User-facing display information about this APIProduct.

Field Type Label Description
title string
description string
termsOfService string
contact APIProductSpec.DisplayInfo.Contact
license APIProductSpec.DisplayInfo.License
image common.devportal.solo.io.DataSource The image to display in UIs for this APIProduct.

APIProductSpec.DisplayInfo.Contact

Field Type Label Description
name string
url string
email string

APIProductSpec.DisplayInfo.License

Field Type Label Description
name string
url string

APIProductSpec.Version

Field Type Label Description
name string The identifier of this version. The name must be unique across all versions of this APIProduct.
apis []APIProductSpec.APISelector repeated The set of operations selected from one or more APIDocs that are included in this version of the APIProduct.
defaultRoute RouteSpecifier An optional default routing configuration for all operations defined in this APIProduct. Operations contained in this APIProduct will inherit this configuration when they do not provide their own. If no routing configuration is defined for an operation at any level, a route will not be exposed for the operation.
tags []APIProductSpec.Version.TagsEntry repeated User-defined set of tags for this version that allow for targeted search of versions in Portal web applications.

APIProductSpec.Version.TagsEntry

Field Type Label Description
key string
value google.protobuf.Empty

APIProductStatus

The current status of the APIProduct.

Field Type Label Description
observedGeneration int64 The observed generation of the APIProduct. When this matches the APIProduct’s metadata.generation, it indicates the status is up-to-date.
state common.devportal.solo.io.State The current state of the APIProduct.
reason string A human-readable string explaining the error, if any.
modifiedDate google.protobuf.Timestamp Most recent date the APIProduct was updated.
versionInfo []APIProductStatus.VersionInfoEntry repeated Maps an APIProduct version name to a set of properties associated with each version.

APIProductStatus.APIProductVersionInfo

Information that is specific to a particular APIProduct version.

Field Type Label Description
openApiSchema google.protobuf.Struct The merged OpenAPI Schema for any selected OpenAPI operations.
grpcDescriptors google.protobuf.Struct The merged gRPC Descriptors for any selected gRPC methods.
apiRoutes []APIRoute repeated An internal representation of the HTTP Routes generated for this APIProduct. These are translated to Gateway configuration for any enabled routes.
numberOfEndpoints int32 The number of API endpoints exposed in this version of the APIProduct.

APIProductStatus.VersionInfoEntry

Field Type Label Description
key string
value APIProductStatus.APIProductVersionInfo

APIRoute

An API Route is a route (matcher + destination) generated from an API definition combined with a Route config. These are translated internally into Istio and Gloo Edge routing configurations.

Field Type Label Description
operationId string The ID of the operation. This can be an OpenAPI operationID or a gRPC method in the format “package.service.method”.
method string The HTTP method of the operation.
path string The full HTTP path of the operation. If a parameter is specified (as in OpenAPI), a regex matcher will be generated.
summary string Optional description of the route.
route RouteSpec The resolved route config for the API Route.
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.

GatewayConfig

Indicates how operations will be exposed on the underlying Gateway (i.e. Gloo Edge or Istio)

Field Type Label Description
route RouteSpecifier Specifies a route for exposing the operation to HTTP traffic. If not provided, this will be inherited from the APIProduct’s default_route. RouteSpecifiers can also be placed directly in the APIDoc on the operation or service itself 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. Currently not implemented.

GrpcMethodSelector

A list of references to methods in a gRPC definition.

Field Type Label Description
methods []GrpcMethodSelector.GrpcMethod repeated The list of methods defined in the gRPC schema. If no list is provided, all methods will be imported by default.

GrpcMethodSelector.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.
gatewayConfig GatewayConfig Specify how to expose the method on the Gateway

OpenAPIOperationSelector

Field Type Label Description
operations []OpenAPIOperationSelector.OpenAPIOperation repeated The list of operations to select from in the OpenAPI schema. If no list is provided, all operations will be imported by default.

OpenAPIOperationSelector.OpenAPIOperation

Describes an operation defined in an OpenAPI schema.

Field Type Label Description
id string The OperationID of the operation. The same ID may not be selected more than once.
gatewayConfig GatewayConfig Specifies how to expose the operation on the Gateway.