apiproduct.proto

Package : portal.gloo.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.
usagePlans []string repeated Specifies a list of usage plans defined by Environments that include this API Product. Each Environment that includes this API Product must define each usage plan referenced here. Will only be used in an Environment if no usage plan is specified for this API Product in that Environment’s Spec. If neither is provided, unlimited access will be enabled for unauthorized users.
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.portal.gloo.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.
gatewayConfig GatewayConfig Specifies how to expose operations in this API Doc on the Gateway. This configuration overrides the GatewayConfig set for the whole API Product version and is inherited by all the operations contained in this API Doc that do not provide their own GatewayConfig.
includeUnlistedOperations google.protobuf.BoolValue When true, all operations that are not explicitly listed will be implicitly selected. When false, all operations that are not explicitly listed will be omitted from the API Product. When this field is unset and no operation list is provided, we will default to selecting all operations. When this field is unset and some operations are provided, we will default to omitting operations not explicitly listed.

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.portal.gloo.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.
tags []APIProductSpec.Version.TagsEntry repeated User-defined set of tags for this version that allow for targeted search of versions in Portal web applications.
gatewayConfig GatewayConfig Specify how to expose this Version’s operations on the gateway. Operations contained in this Version will inherit this configuration when they do not provide their own.

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.portal.gloo.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.
observedLabels []APIProductStatus.ObservedLabelsEntry repeated The set of labels that are observed in the metadata.labels on the APIProduct. We need to keep track of these labels so we can notify resources that depend on the APIProduct via a label selector (i.e. Environments, Users, and Groups) if they change.
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
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.
apiType APIType The type of APIs (e.g. OpenAPI, gRPC) that are part of this version.

APIProductStatus.ObservedLabelsEntry

Field Type Label Description
key string
value string

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 gateway 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.
environmentRoute string A route config that will be specified by any Environment including this APIRoute
isGrpc bool Indicates whether the route points to a gRPC service.

GatewayConfig

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

Field Type Label Description
route RouteSpecifier Specifies a route for exposing the operation to HTTP traffic. RouteSpecifiers can also be placed directly in the APIDoc on the operation or service itself using the x-solo-product-router OpenAPI extension. If no routing configuration is defined for an operation at any level, a route will not be exposed for the operation.

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
exclude bool When true, this method will be omitted from the API Product. Use this field alongside the includeUnlistedOperations field to select methods via a blacklist approach. Defaults to false.

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.
exclude bool When true, this operation will be omitted from the API Product. Use this field alongside the includeUnlistedOperations field to select operations via a blacklist approach. Defaults to false.

APIType

The possible types of APIs.

Name Number Description
EMPTY 0
OPEN_API 1
GRPC 2
HYBRID 3