openapi-directory
Version:
Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS
1 lines • 83.5 kB
JSON
{"openapi":"3.0.0","info":{"contact":{"email":"oss@maif.fr","name":"Otoroshi Team"},"description":"Admin API of the Otoroshi reverse proxy","license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"},"title":"Otoroshi Admin","version":"1.1.2","x-apisguru-categories":["developer_tools"],"x-logo":{"backgroundColor":"#FFFFFF","url":"https://maif.github.io/otoroshi/assets/images/svg/otoroshi_logo.svg"},"x-origin":[{"format":"swagger","url":"https://raw.githubusercontent.com/MAIF/otoroshi/master/docs/manual/code/swagger.json","version":"2.0"}],"x-providerName":"maif.local","x-serviceName":"otoroshi"},"externalDocs":{"description":"Find out more about Otoroshi","url":"https://maif.github.io/otoroshi/"},"tags":[{"description":"Everything about Otoroshi global configuration","name":"configuration"},{"description":"Everything about Otoroshi import/export","name":"import"},{"description":"Everything about Otoroshi entities templates","name":"templates"},{"description":"Everything about Otoroshi Environments","name":"environments"},{"description":"Everything about Otoroshi service groups","name":"groups"},{"description":"Everything about Otoroshi api keys","name":"apikeys"},{"description":"Everything about Otoroshi service descriptors","name":"services"},{"description":"Everything about Otoroshi stats","name":"stats"}],"paths":{"/api/apikeys":{"get":{"deprecated":false,"description":"Get all api keys","operationId":"allApiKeys","responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApiKey"},"type":"array"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get all api keys","tags":["apikeys"]}},"/api/globalconfig":{"get":{"deprecated":false,"description":"Get the full configuration of Otoroshi","operationId":"globalConfig","responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalConfig"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get the full configuration of Otoroshi","tags":["configuration"]},"patch":{"deprecated":false,"description":"Update the global configuration with a diff","operationId":"patchGlobalConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Patch"}}},"description":"The updated global config as patch","required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalConfig"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Update the global configuration with a diff","tags":["configuration"]},"put":{"deprecated":false,"description":"Update the global configuration","operationId":"putGlobalConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalConfig"}}},"description":"The updated global config","required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GlobalConfig"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Update the global configuration","tags":["configuration"]}},"/api/groups":{"get":{"deprecated":false,"description":"Get all service groups","operationId":"allServiceGroups","responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Group"},"type":"array"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get all service groups","tags":["groups"]},"post":{"deprecated":false,"description":"Create a new service group","operationId":"createGroup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}},"description":"The service group to create","required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Create a new service group","tags":["groups"]}},"/api/groups/{groupId}/apikeys":{"get":{"deprecated":false,"description":"Get all api keys for the group of a service","operationId":"apiKeysFromGroup","parameters":[{"description":"The api key group id","in":"path","name":"groupId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApiKey"},"type":"array"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get all api keys for the group of a service","tags":["apikeys"]},"post":{"deprecated":false,"description":"Create a new api key for a group","operationId":"createApiKeyFromGroup","parameters":[{"description":"The api key group id","in":"path","name":"groupId","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/ApiKey2"},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Create a new api key for a group","tags":["apikeys"]}},"/api/groups/{groupId}/apikeys/{clientId}":{"delete":{"deprecated":false,"description":"Delete an api key for a specified service group","operationId":"deleteApiKeyFromGroup","parameters":[{"description":"The api key group id","in":"path","name":"groupId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Delete an api key","tags":["apikeys"]},"get":{"deprecated":false,"description":"Get an api key for a specified service group","operationId":"apiKeyFromGroup","parameters":[{"description":"The api key group id","in":"path","name":"groupId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get an api key","tags":["apikeys"]},"patch":{"deprecated":false,"description":"Update an api key for a specified service descriptor with a diff","operationId":"patchApiKeyFromGroup","parameters":[{"description":"The api key group id","in":"path","name":"groupId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/Patch"},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Update an api key with a diff","tags":["apikeys"]},"put":{"deprecated":false,"description":"Update an api key for a specified service group","operationId":"updateApiKeyFromGroup","parameters":[{"description":"The api key group id","in":"path","name":"groupId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/ApiKey"},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Update an api key","tags":["apikeys"]}},"/api/groups/{groupId}/apikeys/{clientId}/quotas":{"delete":{"deprecated":false,"description":"Reset the quota state of an api key","operationId":"resetApiKeyFromGroupQuotas","parameters":[{"description":"The api key group id","in":"path","name":"groupId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quotas"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Reset the quota state of an api key","tags":["apikeys"]},"get":{"deprecated":false,"description":"Get the quota state of an api key","operationId":"apiKeyFromGroupQuotas","parameters":[{"description":"The api key group id","in":"path","name":"groupId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quotas"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get the quota state of an api key","tags":["apikeys"]}},"/api/groups/{serviceGroupId}":{"delete":{"deprecated":false,"description":"Delete a service group","operationId":"deleteGroup","parameters":[{"description":"The service group id","in":"path","name":"serviceGroupId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Delete a service group","tags":["groups"]},"get":{"deprecated":false,"description":"Get a service group","operationId":"serviceGroup","parameters":[{"description":"The service group id","in":"path","name":"serviceGroupId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get a service group","tags":["groups"]},"patch":{"deprecated":false,"description":"Update a service group with a diff","operationId":"patchGroup","parameters":[{"description":"The service group id","in":"path","name":"serviceGroupId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Patch"}}},"description":"The patch for the service group","required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Update a service group with a diff","tags":["groups"]},"put":{"deprecated":false,"description":"Update a service group","operationId":"updateGroup","parameters":[{"description":"The service group id","in":"path","name":"serviceGroupId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}},"description":"The updated service group","required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Update a service group","tags":["groups"]}},"/api/groups/{serviceGroupId}/services":{"get":{"deprecated":false,"description":"Get all services descriptor for a group","operationId":"serviceGroupServices","parameters":[{"description":"The service group id","in":"path","name":"serviceGroupId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApiKey"},"type":"array"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get all services descriptor for a group","tags":["services"]}},"/api/import":{"post":{"deprecated":false,"description":"Import the full state of Otoroshi as a file","operationId":"fullImportFromFile","requestBody":{"$ref":"#/components/requestBodies/ImportExport"},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Done"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Import the full state of Otoroshi as a file","tags":["import"]}},"/api/live":{"get":{"deprecated":false,"description":"Get global otoroshi stats","operationId":"globalLiveStats","responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get global otoroshi stats","tags":["stats"]}},"/api/live/{id}":{"get":{"deprecated":false,"description":"Get live feed of global otoroshi stats (global) or for a service {id}","operationId":"serviceLiveStats","parameters":[{"description":"The service id or global for otoroshi stats","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}},"text/event-stream":{"schema":{"$ref":"#/components/schemas/Stats"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get live feed of otoroshi stats","tags":["stats"]}},"/api/otoroshi.json":{"get":{"deprecated":false,"description":"Export the full state of Otoroshi","operationId":"fullExport","responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportExport"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Export the full state of Otoroshi","tags":["import"]},"post":{"deprecated":false,"description":"Import the full state of Otoroshi","operationId":"fullImport","requestBody":{"$ref":"#/components/requestBodies/ImportExport"},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Done"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Import the full state of Otoroshi","tags":["import"]}},"/api/services":{"get":{"deprecated":false,"description":"Get all services","operationId":"allServices","responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Service"},"type":"array"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get all services","tags":["services"]},"post":{"deprecated":false,"description":"Create a new service descriptor","operationId":"createService","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}},"description":"The service descriptor to create","required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Create a new service descriptor","tags":["services"]}},"/api/services/{serviceId}":{"delete":{"deprecated":false,"description":"Delete a service descriptor","operationId":"deleteService","parameters":[{"description":"The service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Delete a service descriptor","tags":["services"]},"get":{"deprecated":false,"description":"Get a service descriptor","operationId":"service","parameters":[{"description":"The service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get a service descriptor","tags":["services"]},"patch":{"deprecated":false,"description":"Update a service descriptor with a diff","operationId":"patchService","parameters":[{"description":"The service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Patch"}}},"description":"The patch for the service","required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Update a service descriptor with a diff","tags":["services"]},"put":{"deprecated":false,"description":"Update a service descriptor","operationId":"updateService","parameters":[{"description":"The service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}},"description":"The updated service descriptor","required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Update a service descriptor","tags":["services"]}},"/api/services/{serviceId}/apikeys":{"get":{"deprecated":false,"description":"Get all api keys for the group of a service","operationId":"apiKeys","parameters":[{"description":"The api key service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ApiKey"},"type":"array"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get all api keys for the group of a service","tags":["apikeys"]},"post":{"deprecated":false,"description":"Create a new api key for a service","operationId":"createApiKey","parameters":[{"description":"The api key service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/ApiKey2"},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Create a new api key for a service","tags":["apikeys"]}},"/api/services/{serviceId}/apikeys/{clientId}":{"delete":{"deprecated":false,"description":"Delete an api key for a specified service descriptor","operationId":"deleteApiKey","parameters":[{"description":"The api key service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Delete an api key","tags":["apikeys"]},"get":{"deprecated":false,"description":"Get an api key for a specified service descriptor","operationId":"apiKey","parameters":[{"description":"The api key service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get an api key","tags":["apikeys"]},"patch":{"deprecated":false,"description":"Update an api key for a specified service descriptor with a diff","operationId":"patchApiKey","parameters":[{"description":"The api key service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/Patch"},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Update an api key with a diff","tags":["apikeys"]},"put":{"deprecated":false,"description":"Update an api key for a specified service descriptor","operationId":"updateApiKey","parameters":[{"description":"The api key service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/ApiKey"},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Update an api key","tags":["apikeys"]}},"/api/services/{serviceId}/apikeys/{clientId}/group":{"get":{"deprecated":false,"description":"Get the group of an api key","operationId":"apiKeyGroup","parameters":[{"description":"The api key service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get the group of an api key","tags":["apikeys"]}},"/api/services/{serviceId}/apikeys/{clientId}/quotas":{"delete":{"deprecated":false,"description":"Reset the quota state of an api key","operationId":"resetApiKeyQuotas","parameters":[{"description":"The api key service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quotas"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Reset the quota state of an api key","tags":["apikeys"]},"get":{"deprecated":false,"description":"Get the quota state of an api key","operationId":"apiKeyQuotas","parameters":[{"description":"The api key service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}},{"description":"the api key id","in":"path","name":"clientId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quotas"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get the quota state of an api key","tags":["apikeys"]}},"/api/services/{serviceId}/targets":{"delete":{"deprecated":false,"description":"Delete a service descriptor target","operationId":"serviceDeleteTarget","parameters":[{"description":"The service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Target"},"type":"array"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Delete a service descriptor target","tags":["services"]},"get":{"deprecated":false,"description":"Get a service descriptor targets","operationId":"serviceTargets","parameters":[{"description":"The service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Target"},"type":"array"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get a service descriptor targets","tags":["services"]},"patch":{"deprecated":false,"description":"Update a service descriptor targets","operationId":"updateServiceTargets","parameters":[{"description":"The service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Patch"}}},"description":"The patch for the service targets","required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Target"},"type":"array"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Update a service descriptor targets","tags":["services"]},"post":{"deprecated":false,"description":"Add a target to a service descriptor","operationId":"serviceAddTarget","parameters":[{"description":"The service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Target"}}},"description":"The updated service descriptor","required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Target"},"type":"array"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Add a target to a service descriptor","tags":["services"]}},"/api/services/{serviceId}/template":{"delete":{"deprecated":false,"description":"Delete a service descriptor error template","operationId":"deleteServiceTemplate","parameters":[{"description":"The service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deleted"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Delete a service descriptor error template","tags":["services"]},"get":{"deprecated":false,"description":"Get a service descriptor error template","operationId":"serviceTemplate","parameters":[{"description":"The service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorTemplate"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get a service descriptor error template","tags":["services"]},"post":{"deprecated":false,"description":"Update a service descriptor targets","operationId":"createServiceTemplate","parameters":[{"description":"The service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorTemplate"}}},"description":"The patch for the service error template","required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorTemplate"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Create a service descriptor error template","tags":["services"]},"put":{"deprecated":false,"description":"Update an error template to a service descriptor","operationId":"updateServiceTemplate","parameters":[{"description":"The service id","in":"path","name":"serviceId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorTemplate"}}},"description":"The updated service descriptor template","required":true},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorTemplate"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Update an error template to a service descriptor","tags":["services"]}},"/health":{"get":{"deprecated":false,"description":"Import the full state of Otoroshi as a file","operationId":"health","responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OtoroshiHealth"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"404":{"description":"Resource not found or does not exist"}},"summary":"Return current Otoroshi health","tags":["health"]}},"/lines":{"get":{"deprecated":false,"description":"Get all environments provided by the current Otoroshi instance","operationId":"allLines","responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Environment"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get all environments","tags":["environments"]}},"/lines/{line}/services":{"get":{"deprecated":false,"description":"Get all services for an environment provided by the current Otoroshi instance","operationId":"servicesForALine","parameters":[{"description":"The environment where to find services","in":"path","name":"line","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Service"},"type":"array"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get all services for an environment","tags":["environments"]}},"/new/apikey":{"get":{"deprecated":false,"description":"Get a template of an Otoroshi Api Key. The generated entity is not persisted","operationId":"initiateApiKey","responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get a template of an Otoroshi Api Key","tags":["templates"]}},"/new/group":{"get":{"deprecated":false,"description":"Get a template of an Otoroshi service group. The generated entity is not persisted","operationId":"initiateServiceGroup","responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get a template of an Otoroshi service group","tags":["templates"]}},"/new/service":{"get":{"deprecated":false,"description":"Get a template of an Otoroshi service descriptor. The generated entity is not persisted","operationId":"initiateService","responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Bad resource format. Take another look to the swagger, or open an issue :)"},"401":{"description":"You have to provide an Api Key. Api Key can be passed with 'Otoroshi-Client-Id' and 'Otoroshi-Client-Secret' headers, or use basic http authentication"},"404":{"description":"Resource not found or does not exist"}},"security":[{"otoroshi_auth":[]}],"summary":"Get a template of an Otoroshi service descriptor","tags":["templates"]}}},"servers":[{"url":"http://maif.local/api"}],"components":{"requestBodies":{"ImportExport":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportExport"}}},"description":"The full export","required":true},"ApiKey":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}},"description":"The updated api key","required":true},"ApiKey2":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}},"description":"The api key to create","required":true},"Patch":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Patch"}}},"description":"The patch for the api key","required":true}},"securitySchemes":{"otoroshi_auth":{"type":"http","scheme":"basic"}},"schemas":{"ApiKey":{"description":"An Otoroshi Api Key. An Api Key is defined for a group of services to allow usage of the same Api Key for multiple services.","properties":{"authorizedGroup":{"description":"The group id on which the key is authorized","example":"a string value","type":"string"},"clientId":{"description":"The unique id of the Api Key. Usually 16 random alpha numerical characters, but can be anything","example":"a string value","type":"string"},"clientName":{"description":"The name of the api key, for humans ;-)","example":"a string value","type":"string"},"clientSecret":{"description":"The secret of the Api Key. Usually 64 random alpha numerical characters, but can be anything","example":"a string value","type":"string"},"dailyQuota":{"description":"Authorized number of calls per day","example":123,"format":"int64","type":"integer"},"enabled":{"description":"Whether or not the key is enabled. If disabled, resources won't be available to calls using this key","example":true,"type":"boolean"},"metadata":{"additionalProperties":{"type":"string"},"description":"Bunch of metadata for the key","example":{"key":"value"},"type":"object"},"monthlyQuota":{"description":"Authorized number of calls per month","example":123,"format":"int64","type":"integer"},"throttlingQuota":{"description":"Authorized number of calls per second, measured on 10 seconds","example":123,"format":"int64","type":"integer"}},"required":["clientId","clientSecret","clientName","authorizedGroup","enabled"],"type":"object"},"Auth0Config":{"description":"Configuration for Auth0 domain","properties":{"callbackUrl":{"description":"Auth0 callback URL","example":"a string value","type":"string"},"clientId":{"description":"Auth0 client id","example":"a string value","type":"string"},"clientSecret":{"description":"Auth0 client secret","example":"a string value","type":"string"},"domain":{"description":"Auth0 domain","example":"a string value","type":"string"}},"required":["clientId","clientSecret","domain","callbac