> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Enum Reference

> This document provides a comprehensive reference for all enumerations used in the Apinizer Management API.

## Response Status

### EnumStatus

Response status values used in all API responses.

| Value     | Description                      |
| --------- | -------------------------------- |
| `SUCCESS` | Operation completed successfully |
| `FAILURE` | Operation failed                 |

### Usage

All API responses include a `status` field with one of these values.

### Example

```json theme={null}
{
  "status": "SUCCESS",
  "resultList": [...],
  "resultCount": 1
}
```

## API Types

### EnumApiType

Type of API Proxy.

| Value       | Description       |
| ----------- | ----------------- |
| `REST`      | RESTful API       |
| `SOAP`      | SOAP Web Service  |
| `GRPC`      | gRPC Service      |
| `WEBSOCKET` | WebSocket Service |

### Usage

Used in API Proxy objects to indicate the API type.

## HTTP Methods

### EnumHttpRequestMethod

HTTP request methods supported by the API.

| Value     | Description                        |
| --------- | ---------------------------------- |
| `GET`     | Retrieve resource                  |
| `POST`    | Create resource or submit data     |
| `PUT`     | Update resource (full replacement) |
| `PATCH`   | Update resource (partial update)   |
| `DELETE`  | Delete resource                    |
| `HEAD`    | Retrieve headers only              |
| `OPTIONS` | Retrieve allowed methods           |
| `TRACE`   | Echo request for debugging         |
| `ALL`     | All HTTP methods                   |

### Usage

Used in endpoint definitions, client routes, and policy target specifications.

## Policy Scope

### EnumPolicyTargetScope

Scope where a policy applies.

| Value      | Description                                      |
| ---------- | ------------------------------------------------ |
| `ALL`      | Policy applies to all endpoints in the API Proxy |
| `ENDPOINT` | Policy applies only to a specific endpoint       |

### Usage

Used in policy operation metadata (`operationMetadata.targetScope`).

**Note:** When `targetScope` is `ENDPOINT`, both `targetEndpoint` and `targetEndpointHTTPMethod` must be provided.

## Policy Pipeline

### EnumPolicyTargetPipeline

Pipeline where a policy executes.

| Value      | Description                                    |
| ---------- | ---------------------------------------------- |
| `REQUEST`  | Executes before forwarding request to backend  |
| `RESPONSE` | Executes after receiving response from backend |
| `ERROR`    | Executes when an error occurs                  |

### Usage

Used in policy operation metadata (`operationMetadata.targetPipeline`).

## Access Type

### EnumAccessType

Type of resource that can be accessed.

| Value             | Description              |
| ----------------- | ------------------------ |
| `API_PROXY`       | API Proxy resource       |
| `API_PROXY_GROUP` | API Proxy Group resource |

### Usage

Used in credential access management to specify which type of resource access is granted.

## Variable Types

### EnumVariableType

Type of variable used in policies and conditions.

| Value            | Description                                                 |
| ---------------- | ----------------------------------------------------------- |
| `HEADER`         | Extract value from HTTP header                              |
| `PARAMETER`      | Extract value from URL parameter (query, path, or form)     |
| `BODY`           | Extract value from request/response body                    |
| `CONTEXT_VALUES` | Extract value from context (e.g., current time, IP address) |
| `CUSTOM`         | Custom variable defined with script                         |

### Usage

Used in `VariableDTO` to specify how to extract data.

See [Variable Definition](/api-reference/appendix/variable-definition) for complete documentation.

## Variable Parameter Types

### EnumVariableParameterType

Type of parameter when `VariableDTO.type` is `PARAMETER`.

| Value   | Description                            |
| ------- | -------------------------------------- |
| `QUERY` | Query parameter (e.g., `?param=value`) |
| `PATH`  | Path parameter (e.g., `/users/{id}`)   |
| `FORM`  | Form parameter (from form data)        |

### Usage

Used in `VariableDTO.paramType` when `type` is `PARAMETER`.

## Message Content Types

### EnumMessageContentType

Content type of message body.

| Value  | Description      |
| ------ | ---------------- |
| `JSON` | JSON format      |
| `XML`  | XML format       |
| `FORM` | Form data format |

### Usage

Used in `VariableDTO.messageContentType` when extracting data from body (`type=BODY`).

## Script Types

### EnumScriptType

Script language for custom variables and script policies.

| Value        | Description                 |
| ------------ | --------------------------- |
| `GROOVY`     | Groovy script               |
| `JAVASCRIPT` | JavaScript (Nashorn) script |

### Usage

Used in `VariableDTO.scriptLanguage` and script-based policies.

## API Proxy Spec Types

### EnumApiProxySpecType

Type of API specification used to create an API Proxy.

| Value           | Description                                            |
| --------------- | ------------------------------------------------------ |
| `WSDL`          | WSDL (Web Services Description Language) for SOAP APIs |
| `SWAGGER`       | Swagger 2.0 specification                              |
| `OPEN_API`      | OpenAPI 3.0 specification                              |
| `REVERSE_PROXY` | Reverse proxy (no specification file)                  |

### Usage

Used when importing or creating API Proxies from specification files.

## Condition Value Comparison Operators

### EnumConditionValueComparisonOperator

Comparison operators used in policy conditions and RLCL conditions for value comparisons.

| Value                         | Description                                          |
| ----------------------------- | ---------------------------------------------------- |
| `LT`                          | Less than                                            |
| `LE`                          | Less than or equal to                                |
| `GT`                          | Greater than                                         |
| `GE`                          | Greater than or equal to                             |
| `EQ`                          | Equal to                                             |
| `NE`                          | Not equal to                                         |
| `EQ_IGNORE_CASE`              | Equal to (case insensitive, string only)             |
| `NE_IGNORE_CASE`              | Not equal to (case insensitive, string only)         |
| `STARTS_WITH`                 | Starts with (string only)                            |
| `NOT_STARTS_WITH`             | Does not start with (string only)                    |
| `STARTS_WITH_IGNORE_CASE`     | Starts with (case insensitive, string only)          |
| `NOT_STARTS_WITH_IGNORE_CASE` | Does not start with (case insensitive, string only)  |
| `ENDS_WITH`                   | Ends with (string only)                              |
| `NOT_ENDS_WITH`               | Does not end with (string only)                      |
| `ENDS_WITH_IGNORE_CASE`       | Ends with (case insensitive, string only)            |
| `NOT_ENDS_WITH_IGNORE_CASE`   | Does not end with (case insensitive, string only)    |
| `CONTAINS`                    | Contains (string only)                               |
| `NOT_CONTAINS`                | Does not contain (string only)                       |
| `CONTAINS_IGNORE_CASE`        | Contains (case insensitive, string only)             |
| `NOT_CONTAINS_IGNORE_CASE`    | Does not contain (case insensitive, string only)     |
| `IS_EXISTS`                   | Variable exists (regardless of value)                |
| `IS_NOT_EXISTS`               | Variable does not exist                              |
| `IS_NOT_EMPTY`                | Variable exists and is not empty                     |
| `IS_EMPTY`                    | Variable does not exist or is empty                  |
| `EXISTS_AND_EMPTY`            | Variable exists but is empty                         |
| `IN`                          | Value is in list                                     |
| `NOT_IN`                      | Value is not in list                                 |
| `IN_IGNORE_CASE`              | Value is in list (case insensitive, string only)     |
| `NOT_IN_IGNORE_CASE`          | Value is not in list (case insensitive, string only) |

### Usage

Used in `ConditionRuleDTO.valueComparisonOperator` for policy conditions and RLCL conditions to specify how values should be compared.

**Note:**

* Numeric operators (`LT`, `LE`, `GT`, `GE`, `EQ`, `NE`) work with numeric data types.
* String operators (`STARTS_WITH`, `ENDS_WITH`, `CONTAINS`, `NOT_CONTAINS` and their `IGNORE_CASE`/`NOT_` variants) work with string data types only.
* Existence operators (`IS_EXISTS`, `IS_NOT_EXISTS`, `IS_EMPTY`, `IS_NOT_EMPTY`, `EXISTS_AND_EMPTY`) check for variable existence and emptiness. These do not require a second value.
* List operators (`IN`, `NOT_IN` and their `IGNORE_CASE` variants) check if a value is present in a list. List values are separated by `#` character.
* Positive operators (EQ, CONTAINS, IN, STARTS\_WITH, ENDS\_WITH, etc.) return `false` when the variable is null. Negative operators (NE, NOT\_CONTAINS, NOT\_IN, NOT\_STARTS\_WITH, NOT\_ENDS\_WITH, etc.) return `true` when the variable is null.

## Body Read Behavior

### EnumBodyReadBehavior

Controls when the gateway reads the request or response body.

| Value                   | Description                                                  |
| ----------------------- | ------------------------------------------------------------ |
| `ALWAYS_READ`           | Always read the body (default)                               |
| `READ_IF_POLICY_EXISTS` | Read the body only if a policy that needs body access exists |
| `NEVER_READ`            | Never read the body                                          |

### Usage

Used in API Proxy metadata and creation to control body reading behavior:

* `requestBodyReadBehavior` - Controls request body reading
* `responseBodyReadBehavior` - Controls response body reading

### Performance Note

Using `READ_IF_POLICY_EXISTS` can improve gateway performance by skipping unnecessary body reads for requests/responses that don't need body processing.

## Related Documentation

* [Variable Definition](/api-reference/appendix/variable-definition) - Complete variable documentation
* [Glossary](/api-reference/appendix/glossary) - Terms and definitions
* [OpenAPI Spec](/api-reference/appendix/openapi-spec) - OpenAPI specification access
