@apistudio/apim-cli
Version:
CLI for API Management Products
1,197 lines (1,195 loc) • 116 kB
text/typescript
/**
* This file was auto-generated by openapi-typescript.
* Do not make direct changes to the file.
*/
export type paths = Record<string, never>;
export type webhooks = Record<string, never>;
export interface components {
schemas: {
Api: {
/** @enum {string} */
kind: "API";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
"api-spec": {
/** @description Field 'path' with JSON name '$path' accepts the value of either 'path' or '$path' from the YAML file. If both are specified, the value of '$path' takes priority. */
$path: string;
};
"rest-def"?: {
/** @description Field 'path' with JSON name '$path' accepts the value of either 'path' or '$path' from the YAML file. If both are specified, the value of '$path' takes priority. */
$path: string;
};
uriSchemes?: {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
};
properties?: {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
};
cors?: {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
};
scopes?: {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
}[];
"policy-sequence"?: {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
}[];
};
};
/** @description The CORS related information is captured in the message CORS */
CORS: {
/** @enum {string} */
kind: "CORS";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
rules: {
/** @enum {string} */
action: "allow" | "deny";
/** @description Multiple instances of allowed origins can be given */
originList: string[];
/** @description Credential can be allowed or not allowed */
allowCredentials?: boolean;
/** @description Multiple instances allowed methods can be given */
allowMethods?: string[];
/** @description Multiple instances of allowed headers can be given */
allowHeaders?: string[];
/** @description Single instance of maximum age can be given */
maxAge?: number;
exposeHeaders?: {
predefined?: boolean;
custom?: string;
backend?: boolean;
};
}[];
};
};
CountLimit: {
/** @enum {string} */
kind: "CountLimit";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
limits: {
limitDef: {
/** @description Unique name for the rate limit */
name: string;
definition: {
/** @description Reference to the limit definition */
$ref: string;
};
};
}[];
extensions?: {
"dp-nano-gateway"?: {
/** @default api.ibm.com/v1 */
apiVersion: string;
spec?: {
limits?: {
globalLimit: Record<string, never>;
}[];
};
};
};
};
};
CountLimitDef: {
/** @enum {string} */
kind: "CountLimitDef";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
/** @description Size of the rate limit bucket */
max: number;
/** @description Whether the count should auto-decrement */
autoDecrement: boolean;
extensions?: {
"dp-nano-gateway"?: {
/** @default api.ibm.com/v1 */
apiVersion: string;
spec?: {
/** @description Optional dynamic string expression */
weightExpr?: string;
/** @description Optional dynamic key to apply the rate limit to */
dynamicValue?: string;
};
};
};
};
};
Quota: {
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @enum {string} */
kind: "Quota";
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
/** @description Size of the rate limit bucket */
maxRequest?: number;
/** @description Time interval for the rate limit (e.g., 1s, 1m, 1h) */
interval?: string;
extensions?: {
"dp-gateway"?: {
/** @enum {string} */
apiVersion?: "api.ibm.com/v1";
spec?: {
/** @enum {string} */
onLimitReach?: "block" | "allow";
};
};
"dp-nano-gateway"?: {
/** @enum {string} */
apiVersion?: "api.ibm.com/v1";
spec?: {
/** @description Optional dynamic string expression */
weightExpr?: string;
/** @enum {string} */
exceedAction?: "continue" | "return429" | "return500";
intervalOffset?: number;
/** @description Optional dynamic key expression */
dynamicValue?: string;
};
};
"webm-gateway"?: {
/** @enum {string} */
apiVersion?: "api.ibm.com/v1";
spec?: {
alertMessage?: string;
/** @enum {string} */
alertFrequency?: "always" | "once";
/** @enum {string} */
onLimitReach?: "block" | "allow";
notification?: {
enabled?: boolean;
notifyAfter?: string;
message?: string;
email?: string[];
};
};
};
};
};
};
Product: {
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @enum {string} */
kind: "Product";
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
info?: {
categories?: string[];
contact?: {
name?: string;
email?: string;
url?: string;
};
license?: {
name?: string;
url?: string;
};
termsOfService?: string;
summary?: string;
};
apis?: {
$ref?: string;
}[];
plans?: {
$ref?: string;
}[];
extensions?: {
"portal-config"?: {
/** @enum {string} */
apiVersion?: "api.ibm.com/v1";
spec?: {
visibility?: {
view?: {
/** @enum {string} */
type?: "authenticated" | "public" | "custom";
orgs?: string[];
tags?: string[];
enabled?: boolean;
};
subscribe?: {
/** @enum {string} */
type?: "authenticated" | "custom";
orgs?: string[];
tags?: string[];
enabled?: boolean;
};
};
};
};
"dp-nano-gateway"?: {
/** @enum {string} */
apiVersion?: "api.ibm.com/v1";
spec?: {
properties?: {
[key: string]: {
value?: string;
description?: string;
encoded?: boolean;
};
};
env?: {
name?: string;
value?: string;
valueFrom?: {
configMapKeyRef?: {
name?: string;
key?: string;
};
secretKeyRef?: {
name?: string;
key?: string;
};
fieldRef?: {
fieldPath?: string;
};
resourceFieldRef?: {
resource?: string;
};
};
}[];
hostAliases?: {
ip?: string;
hostnames?: string[];
}[];
logLevel?: {
/** @enum {string} */
all?: "trace" | "debug" | "info" | "warn" | "error" | "off";
};
quotaService?: {
cache?: {
capacity?: number;
maxAgeMilliseconds?: number;
maxPercent?: number;
fallback?: {
enabled?: boolean;
};
};
responseHeaders?: string;
updateInterval?: number;
};
replicas?: number;
resources?: {
limits?: {
cpu?: string;
memory?: string;
};
requests?: {
cpu?: string;
memory?: string;
};
};
sqlInjectionFilters?: {
commands?: string;
escapeSequence?: string;
keywordInjection?: string;
likeMatch?: string;
metacharacters?: string;
msSqlCommands?: string;
andOrAttack?: string;
oracleBufferOverflow?: string;
simpleMetacharacters?: string;
custom?: {
[key: string]: string;
};
};
};
};
};
};
};
Plan: {
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @enum {string} */
kind: "Plan";
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
qos?: {
withQuota: {
unlimited?: Record<string, never>;
} & {
[key: string]: {
$ref: string;
}[];
};
};
extensions?: {
"webm-gateway"?: {
apiVersion?: string;
spec?: {
pricing?: {
value: number;
currency: string;
};
withRateLimit?: {
maxRequest: number;
interval: string;
alertMessage?: string;
alertFrequency?: string;
name: string;
}[];
};
};
"dp-nano-gateway"?: {
apiVersion?: string;
spec?: {
isApprovalRequired?: boolean;
apis?: {
$ref: string;
operations?: {
id?: string;
path?: string;
method?: string;
withQuota?: {
unlimited?: Record<string, never>;
} & {
[key: string]: {
$ref: string;
}[];
};
}[];
}[];
withAssemblyCountLimit?: {
[key: string]: {
$ref: string;
}[];
};
/** @description Arbitrary key-value pairs for custom properties */
properties?: {
[key: string]: string;
};
telemetry?: {
[key: string]: string;
};
};
};
"dp-gateway"?: {
apiVersion?: string;
spec?: {
isApprovalRequired?: boolean;
withRateLimit?: {
maxRequest: number;
interval: string;
name: string;
}[];
withAssemblyCountLimit?: {
name: string;
maxRequest: number | string;
"hard-limit"?: boolean;
"cache-only"?: boolean;
"is-client"?: boolean;
"use-api-name"?: boolean;
"use-app-id"?: boolean;
"use-client-id"?: boolean;
"dynamic-value"?: number;
weight?: number;
"auto-decrement"?: boolean;
}[];
withAssemblyRateLimit?: {
name: string;
maxRequest: number;
interval: string;
"cache-only"?: boolean;
"is-client"?: boolean;
"use-api-name"?: boolean;
"use-app-id"?: boolean;
"use-client-id"?: boolean;
"dynamic-value"?: number;
weight?: number;
}[];
withAssemblyQuotaLimit?: {
name: string;
maxRequest: number;
interval: string;
"hard-limit"?: boolean;
"cache-only"?: boolean;
"is-client"?: boolean;
"use-api-name"?: boolean;
"use-app-id"?: boolean;
"use-client-id"?: boolean;
"dynamic-value"?: number;
weight?: number;
}[];
apis?: {
$ref: string;
operations?: {
path: string;
method: string;
withQuota?: {
unlimited?: Record<string, never>;
} & {
[key: string]: {
$ref: string;
}[];
};
}[];
}[];
};
};
};
};
};
/** @description The policy sequence related information is captured in the message policy sequence */
StagedPolicySequence: {
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @enum {string} */
kind: "StagedPolicySequence";
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
transport?: {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
}[];
security?: {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
}[];
monitoring?: {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
}[];
routing?: {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
}[];
"req-processing"?: {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
}[];
"res-processing"?: {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
}[];
"error-handling"?: {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
}[];
};
};
/** @description The message identifies the scope */
Scope: {
/** @enum {string} */
kind: "Scope";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
"policy-sequence": {
/** @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file. If both 'ref' and '$ref' are specified, the value of '$ref' takes priority. */
$ref: string;
}[];
/** @description Multiple instances of resources can be given */
resources: {
methods: ("get" | "post" | "put" | "delete" | "patch" | "head" | "keep")[];
path: string;
}[];
};
};
/** @description The validate API Specification related information is captured in the message validateAPISpecification. */
ValidateAPISpecification: {
/** @enum {string} */
kind: "ValidateAPISpecification";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
/** @enum {string} */
input: "request" | "response" | "message";
validate: {
request: {
schema?: {
validate?: boolean;
};
query?: boolean;
path?: boolean;
header?: boolean;
cookie?: boolean;
contentType?: boolean;
};
} | {
response: {
schema?: {
validate?: boolean;
};
header?: boolean;
contentType?: boolean;
};
} | {
openApiSchemaRef: {
schemaReference: string;
/** @enum {string} */
failureStatusCode: "400" | "500";
};
} | {
file: {
$path: string;
/** @enum {string} */
failureStatusCode: "400" | "500";
};
};
};
};
Project: {
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @enum {string} */
kind: "Project";
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
api?: {
/**
* @description Field 'ref' with JSON name '$ref' accepts the value of either 'ref' or '$ref' from the YAML file.
* If both 'ref' and '$ref' are specified, the value of '$ref' takes priority.
*/
$ref: string;
}[];
};
};
UriSchemes: {
/** @enum {string} */
kind: "URISchemes";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
/** @description Multiple instance of protocol can be given */
uriSchemes: ("http" | "https")[];
};
};
Properties: {
/** @enum {string} */
kind: "Properties";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
/** @description Defines a set of named properties with value, description, and encoding flag */
spec: {
[key: string]: {
/** @description Actual property value */
value: string;
/** @description Description of the property */
description?: string;
/** @description Indicates whether the value is base64 encoded */
encoded: boolean;
};
};
};
LoadBalancer: {
/** @enum {string} */
kind: "LoadBalancer";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
input?: string;
output?: string;
weightedRandomHttp?: {
verb?: string;
statusException?: {
pattern?: string;
}[];
endpoints?: {
endpoint: {
name?: string;
tlsClientProfile?: string;
url?: string;
/** @enum {string} */
urlType?: "plain" | "variables" | "jsonata" | "distributedVariable";
/** @enum {string} */
version?: "HTTP/1.0" | "HTTP/1.1" | "HTTP/2";
timeout?: number;
/** @enum {string} */
compressRequest?: "gzip" | "br" | "deflate" | "none";
decompressResponse?: boolean;
followRedirects?: boolean;
chunkedUpload?: boolean;
persistentConnections?: boolean;
};
suspendTimeout?: number;
weight?: number;
}[];
};
roundRobinHttp?: {
verb?: string;
statusException?: {
pattern: string;
}[];
endpoints?: {
suspendTimeout?: number;
endpoint: {
name?: string;
tlsClientProfile?: string;
url?: string;
/** @enum {string} */
urlType?: "plain" | "variables" | "jsonata" | "distributedVariable";
/** @enum {string} */
compressRequest?: "br" | "gzip" | "deflate" | "none";
/** @enum {string} */
version?: "HTTP/1.0" | "HTTP/1.1" | "HTTP/2";
timeout?: number;
/** @default false */
decompressResponse: boolean;
/** @default false */
followRedirects: boolean;
chunkedUpload?: boolean;
persistentConnections?: boolean;
};
}[];
};
} & (unknown | unknown);
};
AWSLambda: {
/** @enum {string} */
kind: "InvokeAWSLambda";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
/** @description Name of the AWS Lambda function */
functionName?: string;
/** @description Version of the AWS Lambda function */
qualifier?: string;
/** @enum {string} */
invocationType?: "requestResponse" | "event";
region?: string;
awsAuthType?: {
accessSecret?: string;
};
tlsClientProfile?: string;
input?: string;
output?: string;
clientConfig?: {
socketTimeout?: number;
connectionTimeout?: number;
requestTimeout?: number;
clientExecutionTimeout?: number;
clientRetryCount?: number;
connectionExpirationTimeout?: number;
enableExpectContinue?: boolean;
enableGzip?: boolean;
enableHostPrefixInjection?: boolean;
maxConnectionIdleTime?: number;
responseMetadataCacheSize?: number;
enableThrottledRetries?: boolean;
enableKeepAlive?: boolean;
enableResponseMetadataCache?: boolean;
signatureAlgorithm?: string;
tcpSendBufferSizeHint?: number;
tcpReceiveBufferSizeHint?: number;
};
};
};
SetAuthorization: {
/** @enum {string} */
kind: "SetAuthorization";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
basic: {
static: {
username: string;
/** @description Must be a resource reference in format $(VARIABLE_NAME). Do not enter actual passwords. */
password: string;
};
/** @enum {string} */
valueType?: "plain" | "jsonata";
} | {
useIncoming: Record<string, never>;
} | {
secret: string;
};
message?: string;
} | {
oAuth2: {
/** @description Must be a resource reference in format $(VARIABLE_NAME). Do not enter actual apiKey. */
token: string;
} | {
useIncoming: Record<string, never>;
} | {
secret: string;
};
message?: string;
} | {
ntlm: {
static: {
username: string;
/** @description Must be a resource reference in format $(VARIABLE_NAME). Do not enter actual passwords. */
password: string;
};
} | {
useIncoming: Record<string, never>;
} | {
transparent: Record<string, never>;
};
message?: string;
} | {
jwt: {
useIncoming: Record<string, never>;
} | {
secret: string;
};
message?: string;
} | {
kerberos: {
useIncoming: Record<string, never>;
} | {
delegateIncomingCredentials: {
/** @description Must be a resource reference in format $(VARIABLE_NAME). Do not enter actual passwords. */
clientPassword: string;
clientPrincipal: string;
servicePrincipal: string;
/** @enum {string} */
servicePrincipalNameform: "Username" | "Hostbased";
};
} | {
incomingHTTPBasicAuthCred: {
servicePrincipal: string;
/** @enum {string} */
servicePrincipalNameform: "Username" | "Hostbased";
};
} | {
useCustomCredentials: {
/** @description Must be a resource reference in format $(VARIABLE_NAME). Do not enter actual passwords. */
clientPassword: string;
clientPrincipal: string;
servicePrincipal: string;
/** @enum {string} */
servicePrincipalNameform: "Username" | "Hostbased";
};
};
message?: string;
} | {
anonymous: Record<string, never>;
message?: string;
};
};
Invoke: {
/** @enum {string} */
kind: "Invoke";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
cache?: {
expire?: {
fromMessageHeader: {
headerName: string;
messageName: string;
};
} | {
fromVariable: {
name: string;
};
} | {
fromCacheControl: {
messageName: string;
};
} | {
static: {
/** Format: uint64 */
seconds: number;
};
};
scope?: {
narrowScope: Record<string, never>;
} | {
wideScope: Record<string, never>;
};
};
endpoint: {
http: {
statusException?: {
pattern: string;
}[];
target: {
/** @default true */
persistentConnections: boolean;
/**
* Format: uint64
* @default 20
*/
timeout: number;
tlsClientProfile?: string;
url: string;
/** @default false */
decompressResponse: boolean;
/** @default false */
followRedirects: boolean;
/** @default false */
chunkedUpload: boolean;
/** @enum {string} */
urlType?: "plain" | "variables" | "jsonata" | "distributedVariable";
/** @enum {string} */
compressRequest?: "br" | "gzip" | "deflate" | "none";
/** @enum {string} */
version?: "HTTP/1.0" | "HTTP/1.1" | "HTTP/2";
};
verb?: string;
};
};
input?: string;
output?: string;
};
};
GlobalPolicy: {
/** @enum {string} */
kind: "GlobalPolicy";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
"filter-api-type"?: string[];
"filter-http-methods"?: ("GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD")[];
"filter-attributes"?: string;
/** @description List of references */
"policy-sequence": {
$ref?: string;
}[];
};
};
IAM: {
/** @enum {string} */
kind: "IAM";
/** @default api.ibm.com/v1 */
apiVersion: string;
/** @description Defines a message named Metadata */
metadata: {
description?: string;
name: string;
namespace?: string;
tags?: string[];
/** @enum {string} */
type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
version: string;
labels?: {
gatewayTypes?: string[];
} & {
[key: string]: unknown;
};
};
spec: {
accessControl?: ({
httpBasic?: {
applicationSecurity?: {
/** @enum {string} */
mode?: "authorize" | "identify" | "authenticate";
};
credentialLocation?: {
httpHeader?: {
name?: string;
};
};
credentialRegistry?: string[];
userGroupAuthorization?: {
requiredGroups?: string[];
};
};
} | {
apiKey?: {
applicationSecurity?: {
/** @enum {string} */
mode?: "authorize" | "identify" | "authenticate";
};
credentialLocation?: {
httpHeader?: {
name?: string;
};
};
};
} | {
oauth?: {
applicationSecurity?: {
/** @enum {string} */
mode?: "authorize" | "identify" | "authenticate";
};
credentialLocation?: {
httpHeader?: {
name?: string;
};
};
providers?: string[];
introspectionCredentials?: {
idHeader?: string;
secretheader?: string;
};
audClaim?: string[];
requiredScopes?: {
provider?: string;
scopes?: string[];
}[];
};
} | {
jwt?: {
applicationSecurity?: {
/** @enum {string} */
mode?: "authorize" | "identify" | "authenticate";
};
credentialLocation?: {