UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

1,197 lines (1,195 loc) 116 kB
/** * 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?: {