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:

Table 1. API asset
kind Description
kind: API Asset model for API.
Table 2. Top-level assets
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.
Table 3. Policy definitions
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.
Table 4. API products and plans
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.
Table 5. Testing APIs
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.