devportal.solo.ioapiproduct.proto

Package : devportal.solo.io

Top

apiproduct.proto

Table of Contents

APIProductSpec

API Products define a group of API Operations (endpoints) to be published for use by Developers. The API Product resource declares which APIs are bundled together as well as how to route to the backends serving those APIs.

API Products also define Usage Plans which are used to define access and rate limits for Identified API Consumers.

Field Type Description
displayInfo devportal.solo.io.APIProductSpec.DisplayInfo User-facing information to display to GUI users for this API Product.
publishRoutes devportal.solo.io.google.protobuf.BoolValue expose Gateway Routes for the APIs published in this API Product. defaults to true..
domains []devportal.solo.io. the domains that will serve this api product. domains must be unique across all API Products. These must be a valid FQDN or wildcard hostname. Port should not be included here, instead specified on the Gateway resource in Gloo or Istio..
basePath devportal.solo.io. the base path that will serve this api product. endpoint matchers must be unique for a domain+basepath set. incoming requests will be rewritten to match the API WARNING: this field is currently ignored by the server..
apis []devportal.solo.io.APIProductSpec.APISelector the selection of APIs defined in ApiDocs which this APIProduct exposes..
defaultRoute devportal.solo.io.RouteSpecifier an optional default configuration for all Operations defined in this APIProduct. Operations contained in this APIProduct will inherit this config when they do not provide their own. If no OperationConfig is defined for an Operation at any level, a route will not be exposed for the Operation..
plans []devportal.solo.io.UsagePlan a list of Usage Plans available for accessing this API Product. if none are specified, unlimited access will be enabled for unauthorized users..

APIProductSpec.APISelector

used to a set of Operations from a specific ApiDoc

Field Type Description
apiDoc common.devportal.solo.io.ObjectRef A reference to the ApiDoc defining the operations.
openApi devportal.solo.io.OpenAPIOperationSelector a selection of OpenAPI methods.
grpc devportal.solo.io.GrpcMethodSelector information specific to a grpc method.

APIProductSpec.DisplayInfo

user-facing display information about this

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

APIProductSpec.DisplayInfo.Contact

Field Type Description
name string .
url string .
email string .

APIProductSpec.DisplayInfo.License

Field Type Description
name string .
url string .

APIProductStatus

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

Field Type Description
observedGeneration devportal.solo.io. The observed generation of the APIProduct. When this matches the APIProduct’s metadata.generation, it indicates the status is up-to-date..
state devportal.solo.io.common.devportal.solo.io.State The current state of the APIProduct..
reason devportal.solo.io. A human-readable string explaining the error, if any..
modifiedDate devportal.solo.io.google.protobuf.Timestamp Most recent date the ApiDoc was updated..
usagePlans []devportal.solo.io.APIProductStatus.UsagePlanStatus for each Usage Plan defined on the API Product, indicates the APIKeys, if any, provisioned for the plan.
openApiSchema devportal.solo.io.google.protobuf.Struct the merged OpenAPI Schema for any selected OpenAPI operations.
grpcDescriptors devportal.solo.io.google.protobuf.Struct the merged gRPC Descriptors for any selected gRPC methods.
numberOfEndpoints devportal.solo.io. the total number of API endpoints exposed in the published API Product.
apiRoutes []devportal.solo.io.APIRoute an internal representation of the HTTP Routes generated for this API Product. these are translated to Gateway configuration for any enabled routes..

APIProductStatus.UsagePlanStatus

Gives the Status of a Usage P that lives on the portal.

Field Type Description
name string Name of the plan.
provisionedKeys common.devportal.solo.io.ObjectRef The Secrets containing the APIKeys that have been provisioned for this key scope..

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 routing configurations.

Field Type Description
operationId devportal.solo.io. the ID of the operation. this can be a gRPC method in the format “package.service.method” or an OpenAPI OperationID.
method devportal.solo.io. the HTTP method of the operation.
path devportal.solo.io. the full HTTP Path of the operation. if a parameter is specified (as in OpenAPI), a regex matcher will be generated..
summary devportal.solo.io. optional description of the route.
route devportal.solo.io.RouteSpec the resolved route config for the API Route..

GrpcMethodSelector

a list of references to methods in a gRPC definition

Field Type Description
methods []devportal.solo.io.GrpcMethodSelector.GrpcMethod the list of methods defined in the gRPC Schema.

GrpcMethodSelector.GrpcMethod

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

Field Type 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..
route devportal.solo.io.RouteSpecifier Specify a route for exposing the Operation to HTTP traffic. If not provided, this will be inherited from the API Product’s default Route. Route Specifiers can also be placed directly in the API Doc on the operation or service itself. See details on [configuring routing inside of API Docs](

/dev-portal/latest/todo ). |

OpenAPIOperationSelector

Field Type Description
operations []devportal.solo.io.OpenAPIOperationSelector.OpenAPIOperation the list of operations to select from in the OpenAPI schema.

OpenAPIOperationSelector.OpenAPIOperation

describes an operation defined in an OpenAPI schema

Field Type Description
id string the OperationID of the operation. the same ID may not be selected more than once.
route devportal.solo.io.RouteSpecifier Specify a route for exposing the Operation to HTTP traffic. If not provided, this will be inherited from the API Product’s default Route. Route Specifiers can also be plaed directly in the API Doc on the operation or service itself. See details on [configuring routing inside of API Docs](

/dev-portal/latest/todo ). |

UsagePlan

A UsagePlan describes a policy applied to Consumers of an API Product. Rate limits will be applied to HTTP traffic according to the plan for which the API Key was issued.

Field Type Description
name devportal.solo.io. Names must be unique for usage plans.
displayName devportal.solo.io. User-facing display name for the plan.
rateLimit devportal.solo.io.UsagePlan.RateLimitPolicy The rate limits enforced for users (API Consumers) of the plan. Leave empty to allow unlimited API access for users of this plan..
authPolicy devportal.solo.io.UsagePlan.AuthPolicy choose an auth policy for this plan.
allowedScopes []devportal.solo.io. If using an OAuth Auth Policy, a list of Allowed Scopes must be provided here to properly authorize users authenticated with OAuth.
If an OAuth token carries one of these scopes, the client will be permitted access to the API under this Usage Plan.
Allowed Scopes must be unique (cannot overlap) across all of a Product’s Plans..

UsagePlan.RateLimitPolicy

a Rate Limit Policy that can be applied to request traffic from an authorized client.

Field Type Description
unit devportal.solo.io.UsagePlan.RateLimitPolicy.Unit .
requestsPerUnit uint32 .

UsagePlan.AuthPolicy

The set of valid Auth Policies for used to authorize client requests

Name Number Description
Unauthorized 0 Consumers do not require authorization to use this plan. Only one Unauthorized usage plan may exist for an API Product.
APIKey 1 Consumers will authenticate using API Keys created under this usage plan.
OAuth 2 Consumers will authenticate using OAuth tokens. If using OAuth, at least one OAuth scope must be provided in AllowedScopes

UsagePlan.RateLimitPolicy.Unit

Name Number Description
UNKNOWN 0
SECOND 1
MINUTE 2
HOUR 3
DAY 4