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.
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.
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.
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.
A reference to a RouteTable to be used for this API Product Version instead of one generated by Portal This allows for more complex routing than Portal exposes
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.
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.
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.
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.
When true, this method will be omitted from the API Product. Use this field alongside the includeUnlistedOperations field to select methods via a blocklist approach. Defaults to false.
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 blocklist approach. Defaults to false.