Defining kinds in IBM API Studio
The kind field categorizes assets in IBM API Studio and defines how the
platform processes configurations.
The kind field organizes APIs, policies, test cases, and environments, keeping
development and testing structured and consistent. Each kind specifies a type of
configuration and determines how IBM API Studio handles it. When the
kind field is defined, IBM API Studio processes the asset,
applies relevant settings, and integrates it with other components. This approach keeps
configurations clear, consistent, and organized.
The kind field helps distinguish between asset types and applies the appropriate
rules and behaviors. IBM API Studio processes APIs, test cases, policies, and environment variables
based on their kind values, keeping workflows structured.
IBM API Studio supports multiple kinds, each serving a specific purpose. The following are some of the supported kinds:
| kind | Description |
|---|---|
kind: API |
Asset model for API. |
| kind | Description |
|---|---|
kind: StagedPolicySequence |
Policy sequence asset model for the webMethods API Gateway. |
kind: DataPowerAssembly |
Policy sequence asset model for the DataPower API Gateway |
kind: FreeFlowPolicySequence |
Policy sequence asset model for the DataPower Nano Gateway. |
kind: GlobalPolicy |
Asset model for global policies. Note: The
GlobalPolicy asset model applies
only to the webMethods API Gateway. |
| kind | Description |
|---|---|
| webMethods API Gateway policies | |
| Transport | |
kind: InboundBulkHead |
Policy for restricting the number of concurrent requests to protect APIs from overload. |
kind: SetMediaType |
Policy to define the content type. |
kind: InboundMessaging |
Policy to process incoming messages from a messaging service. |
kind: URISchemes |
Policy for transport protocol configuration. |
| Identify and authorize | |
kind: IAM |
Policy to identify and validate the authorization of the applications to access the APIs. |
kind: AuthorizeUser |
Policy for authorizing a user based on defined conditions. |
kind: SetContextVariable |
Policy to set the context variable for stage policies. |
kind: InvokeMessagingExtension |
Policy for connecting to a messaging extension. |
kind: HTTPInvoke |
Policy for invoking an external HTTP endpoint. |
| Request processing | |
kind: TransformRequest |
Policy for transforming the request. |
kind: DataMasking |
Policy for data masking. |
kind: WebMethodsISService |
Policy to invoke services hosted on webMethods Integration Server. |
kind: SetContextVariable |
Setting the context variable for stage policies. |
kind: ValidateAPISpecification |
Policy for validating the API specification. |
kind: InvokeMessagingExtension |
Policy for connecting to a messaging extension. |
kind: HTTPInvoke |
Policy for invoking an external HTTP endpoint. |
| Traffic monitoring | |
kind: Log |
Policy for transaction logging to multiple destinations. |
kind: MonitorTraffic |
Policy for monitoring traffic and SLA management. |
kind: CacheServiceResult |
Policy for caching API responses. |
kind: RateLimit |
Policy for rate limiting API calls. |
| Routing | |
Invoke |
Policy to forward requests to a target backend service. |
Route |
Policy to route requests to target endpoints using conditions, content, or runtime resolution. |
LoadBalancer |
Policy to distribute requests across multiple backend endpoints. |
kind: WebMethodsISService |
Policy to invoke services hosted on webMethods Integration Server. |
kind: SetContextVariable |
Policy to set values in the request or runtime context. |
kind: SetAuthorization |
Policy to set authorization information for outbound requests. |
kind: OutboundAnonymous |
Policy to send outbound requests without credentials. |
kind: OutboundAlias |
Policy to apply an alias for outbound authentication. |
kind: Set |
Policy to add or modify HTTP headers in requests or responses. |
kind: InvokeMessagingExtension |
Policy for connecting to a messaging extension. |
kind: HTTPInvoke |
Policy for invoking an external HTTP endpoint. |
kind: InvokeAWSLambda |
Policy for invoking an external AWS Lambda function. |
| Error handling | |
kind: ErrorProcessing |
Policy for error processing. |
kind: DataMasking |
Policy for data masking. |
kind: SetContextVariable |
Setting the context variable for stage policies. |
kind: InvokeMessagingExtension |
Policy for connecting to a messaging extension. |
kind: HTTPInvoke |
Policy for invoking an external HTTP endpoint. |
kind: InvokeAWSLambda |
Policy for invoking an external AWS Lambda function. |
| Response processing | |
kind: TransformResponse |
Policy for transforming the response. |
kind: ValidateAPISpecification |
Policy for validating the API specification. |
kind: DataMasking |
Policy for data masking. |
kind: CORS |
Policy to enforces CORS rules. |
| DataPower Nanogateway policies | |
kind: cache |
Temporarily stores backend responses to improve performance and reduce load. |
kind: EnforceCircuitBreaker |
Limits requests to unstable backends when failures exceed a threshold. |
kind: CountLimit |
Tracks numeric counts and enforces defined limits. |
kind: RateLimit |
Applies rate or burst limits to control API traffic. |
kind: Retry |
Retries backend requests after transient failures. |
kind: Invoke |
Calls an external backend service and processes the response. |
kind: InvokeAWSLambda |
Invokes an AWS Lambda function and processes its response. |
kind: LoadBalancer |
Distributes requests across multiple backend endpoints. |
kind: LuaScript |
Executes custom Lua code during API processing. |
kind: Set |
Sets or updates context variables used later in the flow. |
kind: HandlebarsTemplate |
Generates output using a Handlebars template. |
kind: Transform |
Modifies or restructures payload content. |
kind: ValidateAPISpecification |
Validates incoming payloads against JSON or XML schemas. |
kind: parse |
Converts raw input into parsed JSON or XML. |
kind: Authenticate |
Validates the client's identity using a configured authentication provider. |
kind: Authorize |
Checks whether the authenticated client has the required permissions. |
kind: cors |
Applies Cross-Origin Resource Sharing rules for browser clients. |
kind: ExtractIdentity |
Extracts identity attributes from headers or tokens. |
kind: IBMCloudLogin |
Authenticates requests using IBM Cloud App ID. |
kind: SetAuthorization |
Sets outbound authorization information for backend requests. |
kind: SQLInjectionFilter |
Detects and blocks SQL injection patterns in requests. |
kind: Block |
Stops processing and returns a configured response. |
kind: redact |
Masks or removes sensitive data. |
kind: remove |
Removes headers, parameters, or fields from messages. |
kind: Telemetry |
Captures request or response details for monitoring. |
kind: InvokeWatsonxModels |
Invokes an watsonx.ai model. |
kind: InvokeWatsonxTokenize |
Invokes watsonx.ai tokenization. |
kind: InvokeWatsonxTextGen |
Generates text using watsonx.ai. |
kind: InvokeOpenAiChatCompletions |
Invokes an OpenAI chat completion. |
kind: InvokeOpenAiEmbeddings |
Generates embeddings using OpenAI. |
kind: InvokeOpenAiModelsId |
Retrieves details for an OpenAI model. |
kind: InvokeOpenAiModels |
Lists available OpenAI models. |
kind: InvokeAzureOpenAiChatCompletions |
Invokes an Azure OpenAI chat completion. |
kind: InvokeAzureOpenAiEmbeddings |
Generates embeddings using Azure OpenAI. |
kind: InvokeAzureOpenAiModelsId |
Retrieves details for an Azure OpenAI model. |
kind: InvokeAzureOpenAiModels |
Lists available Azure OpenAI models. |
kind: InvokeGeminiBatchEmbedContents |
Generates embeddings in batch using Gemini. |
kind: InvokeGeminiCountTokens |
Counts tokens using Gemini. |
kind: InvokeGeminiEmbedContent |
Generates embeddings using Gemini. |
kind: InvokeGeminiGenerateContent |
Generates content using Gemini. |
kind: InvokeGeminiModelsId |
Retrieves details for a Gemini model. |
kind: InvokeGeminiModels |
Lists available Gemini models. |
kind: if |
Evaluates a condition and runs logic only when the condition is met. |
kind: OperationSwitch |
Applies logic based on the API operation invoked by the client. |
kind: return |
Stops processing and immediately returns a response. |
kind: switch |
Selects the first matching branch from multiple case conditions. |
kind: Throw |
Generates an error that can be handled by a Try construct. |
kind: try |
Runs logic with built-in error handling and fallback behavior. |
| kind | Description |
|---|---|
kind: Product |
Defines a product that contains APIs and associated policies. |
kind: Plan |
Defines pricing, terms, and access control mechanisms. |
kind: Quota |
Defines the maximum number of requests allowed within a defined time window. |
| kind | Description |
|---|---|
kind: Test |
Asset model for defining a test for an API resource. |
kind: Environment |
Asset model defining the environment for executing tests. |
kind: Assertion |
Asset model for API test assertions. |