{"openapi":"3.1.0","info":{"title":"API Gateway","description":"REST APIs for API Gateway features.","contact":{"name":"Slack Us","url":"https://panw-rnd.slack.com/archives/C01DQJBJ7LJ","email":"pcs-scrum-platform-da-aaaacvlzsrzhfngxbqrn5mqpre@paloaltonetworks.org.slack.com"},"version":""},"servers":[{"url":"https://api.prismacloud.io","description":"Generated server url"}],"security":[{"bearer-jwt":["read","write"]}],"paths":{"/api/v1/routes":{"get":{"tags":["routes-controller"],"summary":"Get Routes","description":"API to retrieve current routes.","operationId":"getRoutes","parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"serviceName","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRoutesResponse"}}}},"4XX":{"description":"Client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["routes-controller"],"summary":"Put Routes","description":"API to add routes, overwrites previously defined routes.","operationId":"putRoutes","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PutRoutesRequest"}}},"required":true},"responses":{"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"202":{"description":"Accepted"},"4XX":{"description":"Client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["routes-controller"],"summary":"Delete Route","description":"API to delete route in database.","operationId":"deleteRoute","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"202":{"description":"Accepted"},"4XX":{"description":"Client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/routes/predicates":{"get":{"tags":["routes-controller"],"summary":"Get Route Predicates","description":"API to list valid route predicates.","operationId":"getRoutePredicateNames","responses":{"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRoutePredicatesResponse"}}}},"4XX":{"description":"Client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/routes/gateway_filters":{"get":{"tags":["routes-controller"],"summary":"Get Gateway Filters","description":"API to list valid gateway filters.","operationId":"getGatewayFilterNames","responses":{"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetGatewayFiltersResponse"}}}},"4XX":{"description":"Client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/fallback":{"get":{"tags":["circuit-breaker-fallback-controller"],"operationId":"errorFallback","responses":{"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"tags":["circuit-breaker-fallback-controller"],"operationId":"errorFallback_2","responses":{"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"tags":["circuit-breaker-fallback-controller"],"operationId":"errorFallback_1","responses":{"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"tags":["circuit-breaker-fallback-controller"],"operationId":"errorFallback_3","responses":{"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"options":{"tags":["circuit-breaker-fallback-controller"],"operationId":"errorFallback_6","responses":{"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"head":{"tags":["circuit-breaker-fallback-controller"],"operationId":"errorFallback_5","responses":{"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"patch":{"tags":["circuit-breaker-fallback-controller"],"operationId":"errorFallback_4","responses":{"400":{"description":"Bad Request","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"ErrorDetails":{"type":"object","properties":{"name":{"type":"string"},"message":{"type":"string"}},"required":["message","name"]},"ErrorResponse":{"type":"object","properties":{"timestamp":{"type":"string"},"status":{"type":"integer","format":"int32"},"error":{"type":"string"},"errorDetails":{"type":"array","items":{"$ref":"#/components/schemas/ErrorDetails"}},"message":{"type":"string"},"path":{"type":"string"}},"required":["error","message","path","status","timestamp"]},"FilterDefinition":{"type":"object","properties":{"name":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}}},"required":["name"]},"PredicateDefinition":{"type":"object","properties":{"name":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}}},"required":["name"]},"PutRoutesRequest":{"type":"object","properties":{"routes":{"type":"array","items":{"$ref":"#/components/schemas/RouteDefinition"},"minItems":1},"serviceName":{"type":"string","maxLength":64,"minLength":0}},"required":["routes"]},"RouteDefinition":{"type":"object","properties":{"id":{"type":"string"},"predicates":{"type":"array","items":{"$ref":"#/components/schemas/PredicateDefinition"},"minItems":1},"filters":{"type":"array","items":{"$ref":"#/components/schemas/FilterDefinition"}},"uri":{"type":"string","format":"uri"},"metadata":{"type":"object","additionalProperties":{}},"order":{"type":"integer","format":"int32"},"enabled":{"type":"boolean"}},"required":["predicates","uri"]},"GetRoutePredicatesResponse":{"type":"object","properties":{"predicates":{"type":"array","items":{"type":"string"}}},"required":["predicates"]},"GetGatewayFiltersResponse":{"type":"object","properties":{"gatewayFilters":{"type":"array","items":{"type":"string"}}},"required":["gatewayFilters"]},"GetRoutesResponse":{"type":"object","properties":{"globalFilters":{"type":"array","items":{"type":"string"}},"routes":{"type":"array","items":{"$ref":"#/components/schemas/RouteResponse"}}},"required":["globalFilters","routes"]},"RouteResponse":{"type":"object","properties":{"id":{"type":"string"},"uri":{"type":"string","format":"uri"},"order":{"type":"integer","format":"int32"},"predicates":{"type":"array","items":{"type":"string"}},"filters":{"type":"array","items":{"type":"string"}},"metadata":{"type":"object","additionalProperties":{}}}}},"securitySchemes":{"bearer-jwt":{"type":"http","name":"Authorization","in":"header","scheme":"bearer","bearerFormat":"JWT"}}}}