2020-12-03 21:09:16 +01:00
# TESTING
# QA team test cases. Test code exists but were these based on a list of steps required to produce a result?
# Are there any real-world users of Unleash who are happy to read and test the Open API specification and make suggestions for improvement? Would they be happy to screen-record what they are doing (how they use the API will give invaluable insights)?
# Ideally, you'd want developers using Java, Node.js, Go, Ruby, Python and .Net to test
# Could there be a simple sample app that implemented all API calls (using realistic scenarios)? Might just be a consolidated version of the tests/e2e code with some triggers (buttons) and some UI to display outcomes.
# OAS REVIEW
# Move responses to root responses section in components (from schema section)
2020-12-15 09:14:00 +01:00
# Issues with rendering as nested externaldocs from Swagger UI. See GET /admin/feature-types. Not an issue in other tools (see redoc.html)
# Other candidates for $ref: createdAt, lastSeen/updatedAt, instanceId, appName/appNamePath, sdkVersion, feature toggle type titles, enabled, stale, weight
2020-12-03 21:09:16 +01:00
# STYLE
# Add style guide MD. UK/US = US, Newspaper/Movie, Plurals. &. What 's the closest match for Unleash? http://apistylebook.com/design/guidelines/
# OAS styler - Only use backticks for code samples and API paths. Use bold for schema items and italic for schema item settings
2020-12-15 09:14:00 +01:00
openapi : 3.0 .3
2020-12-03 21:09:16 +01:00
servers :
2020-12-15 09:14:00 +01:00
- description : Local host
2020-12-03 21:09:16 +01:00
url : 'http://localhost:4242/api'
2020-12-15 09:14:00 +01:00
- description : Unleash open source demo
2020-12-03 21:34:01 +01:00
url : 'http://unleash.herokuapp.com/api'
2020-12-15 09:14:00 +01:00
# - description: Windows server
# url: 'http://192.168.178.108:4242/api'
2020-12-03 21:09:16 +01:00
tags :
2021-08-27 12:10:53 +02:00
- name : Feature toggles
description : Accessing feature toggles
2020-12-03 21:09:16 +01:00
- name : Archive
description : Handling Feature Toggle archiving and un-archiving
- name : Events
description : Identifying events on the Unleash server
- name : Feature types
description : Details of the five Unleash Feature Toggle types
- name : Import and export
description : Importing and exporting feature toggles and strategies
- name : Metrics
description : Determining usage of feature toggles and applications
- name : Strategies
description : Accessing and updating strategies
2021-08-27 12:10:53 +02:00
- name : Client
description : Client application aspects of the Unleash API
2020-12-03 21:09:16 +01:00
info :
title : Unleash API
description : |-
Unleash is an open source feature flag and toggle system for all your applications and services.
2021-01-06 14:24:39 +01:00
# Try it out
## Try it in your browser
2020-12-15 09:14:00 +01:00
2020-12-03 21:09:16 +01:00
Once you have [set your Unleash server up](https://unleash.github.io/docs/getting_started), you can test the API from inside your browser. The following assumes the server is running on localhost:4242.
The following 'endpoints' (such as `GET /admin/metrics/applications`) provide reference documentation for the Unleash REST API. To try out API calls :
2021-01-06 14:24:39 +01:00
1 . Navigate to an endpoint
2 . Click **Try it out** - in the right-hand (black) panel
2020-12-03 21:09:16 +01:00
3 . Customize the **Request body** and/or **Parameters**.
4 . Click **Execute**.
You will see the cURL request submitted to the API server and the corresponding response.
2020-12-15 09:14:00 +01:00
## Try it in Postman
2020-12-03 21:09:16 +01:00
Alternatively, you can test the API in [Postman](https://app.getpostman.com/run-collection/8552ddcd4cc9fc012548)
[ ![ Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/8552ddcd4cc9fc012548)
2021-08-27 12:10:53 +02:00
version : 4.0 .13
2020-12-03 21:09:16 +01:00
contact :
name : The Unleash team
url : 'https://unleash.github.io/'
externalDocs :
description : Unleash documentation
url : 'https://unleash.github.io/docs/getting_started'
paths :
2020-12-15 09:14:00 +01:00
/client/register :
post :
summary : Registers a client instance with the Unleash server.
description : You can retrieve this data with a `GET /admin/metrics/applications/{appName}` API call.
operationId : clientRegister
externalDocs :
description : Client specification
url : 'https://unleash.github.io/docs/client_specification'
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/clientRegistrationSchema'
tags :
- Client
responses :
'202' :
description : Successful response - client has been registered
'400' :
description : 'Bad body request (for example, appName is not correct)'
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request POST \
--url http://localhost:4242/api/client/register \
--data '{"appName":"my-application","instanceId":"generated-732038-17080","sdkVersion":"unleash-client-node:3.4.0","strategies":[{"strategy":"default"}],"started":"2016-11-03T07:16:43.572Z","interval":10000}'
2020-12-15 09:14:00 +01:00
/client/metrics :
post :
2021-01-06 14:24:39 +01:00
summary : Register a metrics *bucket*.
description : A *bucket* is a set of metrics data that tells you how often a Feature Toggle was enabled or disabled during a specified period of time
2020-12-15 09:14:00 +01:00
operationId : sendMetrics
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/metricsPayloadSchema'
tags :
- Client
- Metrics
responses :
'202' :
description : Successful response - payload has been accepted
'400' :
description : 'Bad body request (for example, appName is not correct)'
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request POST \
--url http://localhost:4242/api/client/metrics \
--data '{"appName":"my-application","instanceId":"generated-732038-17080","bucket":{"start":"2020-12-08T13:50:00.000Z","stop":"2020-12-08T13:55:00.000Z","toggles":{"yesno":{"yesorno":"yes"},"metricsCount":{"count":1}}}}'
2020-12-15 09:14:00 +01:00
/client/features :
# Would normally $ref here but it tangles with an OAS bug - which affects both Redoc and Swagger UI - https://github.com/swagger-api/swagger-ui/issues/6249 (closed issue but still broken in latest release)
get :
summary : Fetches all feature toggles from the Unleash server.
description : |-
The response returns all active feature toggles and their current strategy configuration :
- Feature toggles will have *at least* one strategy
- Strategies have a `name` and `parameters` map.
operationId : getClientFeatures
externalDocs :
description : Activation strategies
url : 'https://unleash.github.io/docs/activation_strategy'
tags :
- Client
- Feature toggles
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/clientResponse'
2020-12-15 09:14:00 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/client/features
2020-12-15 09:14:00 +01:00
'/client/features/{featureName}' :
get :
summary : Fetches a specific Feature Toggle from the Unleash server.
description : |
The response returns the Feature Toggle's current strategy configuration :
- It will have *at least* one configured strategy.
- A strategy will have a *name* and *parameters* map.
**This is mainly provided to help debug the API. Do not use for client implementations.**
externalDocs :
description : Activation strategies
url : 'https://unleash.github.io/docs/activation_strategy'
operationId : getClientFeature
parameters :
- $ref : '#/components/parameters/featureNamePath'
tags :
- Client
- Feature toggles
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/successResponse'
2020-12-15 09:14:00 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/client/features/featureName
2020-12-03 21:09:16 +01:00
/admin/features :
get :
summary : Fetches all feature toggles from the Unleash server.
description : |
The response returns all active feature toggles and their current strategy configuration :
- A feature toggle will have *at least* one configured strategy.
- A strategy will have a `name` and `parameters` map.
externalDocs :
description : Activation strategies
url : 'https://unleash.github.io/docs/activation_strategy'
operationId : getFeatures
tags :
- Feature toggles
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/successResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/admin/features
2020-12-03 21:09:16 +01:00
post :
summary : Create a Feature Toggle
description : Create a new Feature Toggle
tags :
- Feature toggles
operationId : createFeatureToggle
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/featureToggleSchema'
responses :
'201' :
description : Feature Toggle successfully created
'400' :
description : 'Bad body request (for example, Feature Toggle name is not unique)'
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request POST \
--url http://localhost:4242/api/admin/features \
--data '[{"name":"featureX","description":"Toggles featureX on and off","type":"release","enabled":true,"stale":false,"strategies":[{"name":"default","editable":true,"description":"Default on/off strategy.","parameters":{"parameter":{"name":"groupId","type":"string","description":"Define activation groups to allow you to correlate across feature toggles.","required":false}}}],"variants":[{"name":"yellow","weight":20}],"createdAt":"string"}]'
2020-12-03 21:09:16 +01:00
'/admin/features/{featureName}' :
get :
summary : Fetches a specific Feature Toggle from the Unleash server.
description : |
The response returns the Feature Toggle's current strategy configuration :
- It will have *at least* one configured strategy.
- A strategy will have a *name* and *parameters* map.
externalDocs :
description : Activation strategies
url : 'https://unleash.github.io/docs/activation_strategy'
operationId : getFeature
parameters :
- $ref : '#/components/parameters/featureNamePath'
tags :
- Feature toggles
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/successResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/admin/features/featureName
2020-12-03 21:09:16 +01:00
put :
summary : Update a Feature Toggle
description : Update a Feature Toggle.
operationId : featureName
tags :
- Feature toggles
parameters :
- $ref : '#/components/parameters/featureNamePath'
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/featureToggleSchema'
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/successResponse'
'401' :
$ref : '#/components/responses/notAuthorizedResponse'
2020-12-03 21:09:16 +01:00
'400' :
description : Bad body request (for example 'strategies' is not an array)
'404' :
description : Feature Toggle not found
x-code-samples :
2021-01-25 07:57:40 +01:00
- lang : 'cURL'
source : |
curl --request PUT \
--url http://localhost:4242/api/admin/features/featureName \
--data '[{"name":"featureX","description":"Toggles featureX on and off","type":"release","enabled":true,"stale":false,"strategies":[{"name":"default","editable":true,"description":"Default on/off strategy.","parameters":{"parameter":{"name":"groupId","type":"string","description":"Define activation groups to allow you to correlate across feature toggles.","required":false}}}],"variants":[{"name":"yellow","weight":20}],"createdAt":"string"}]'
2020-12-03 21:09:16 +01:00
- lang : 'Go'
source : |
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "http://localhost:4242/api/admin/features/featureName"
payload := strings.NewReader("[{\"name\":\"featureX\",\"description\":\"Toggles featureX on and off\",\"type\":\"release\",\"enabled\":true,\"stale\":false,\"strategies\":[{\"name\":\"default\",\"editable\":true,\"description\":\"Default on/off strategy.\",\"parameters\":{\"parameter\":{\"name\":\"groupId\",\"type\":\"string\",\"description\":\"Define activation groups to allow you to correlate across feature toggles.\",\"required\":false}}}],\"variants\":[{\"name\":\"yellow\",\"weight\":20}],\"createdAt\":\"string\"}]")
req, _ := http.NewRequest("PUT", url, payload)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
- lang : 'Java'
source : |
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("PUT", "http://localhost:4242/api/admin/features/featureName")
.setBody("[{\"name\":\"featureX\",\"description\":\"Toggles featureX on and off\",\"type\":\"release\",\"enabled\":true,\"stale\":false,\"strategies\":[{\"name\":\"default\",\"editable\":true,\"description\":\"Default on/off strategy.\",\"parameters\":{\"parameter\":{\"name\":\"groupId\",\"type\":\"string\",\"description\":\"Define activation groups to allow you to correlate across feature toggles.\",\"required\":false}}}],\"variants\":[{\"name\":\"yellow\",\"weight\":20}],\"createdAt\":\"string\"}]")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();
- lang : 'Python'
source : |
import requests
url = "http://localhost:4242/api/admin/features/featureName"
payload = "[{\"name\":\"featureX\",\"description\":\"Toggles featureX on and off\",\"type\":\"release\",\"enabled\":true,\"stale\":false,\"strategies\":[{\"name\":\"default\",\"editable\":true,\"description\":\"Default on/off strategy.\",\"parameters\":{\"parameter\":{\"name\":\"groupId\",\"type\":\"string\",\"description\":\"Define activation groups to allow you to correlate across feature toggles.\",\"required\":false}}}],\"variants\":[{\"name\":\"yellow\",\"weight\":20}],\"createdAt\":\"string\"}]"
response = requests.request("PUT", url, data=payload)
print(response.text)
- lang : 'Ruby'
source : |
require 'uri'
require 'net/http'
url = URI("http://localhost:4242/api/admin/features/featureName")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Put.new(url)
request.body = "[{\"name\":\"featureX\",\"description\":\"Toggles featureX on and off\",\"type\":\"release\",\"enabled\":true,\"stale\":false,\"strategies\":[{\"name\":\"default\",\"editable\":true,\"description\":\"Default on/off strategy.\",\"parameters\":{\"parameter\":{\"name\":\"groupId\",\"type\":\"string\",\"description\":\"Define activation groups to allow you to correlate across feature toggles.\",\"required\":false}}}],\"variants\":[{\"name\":\"yellow\",\"weight\":20}],\"createdAt\":\"string\"}]"
response = http.request(request)
puts response.read_body
- lang : 'JavaScript'
source : |
fetch("http://localhost:4242/api/admin/features/featureName", {
"method": "PUT" ,
"headers": {},
"body": "[{\"name\":\"featureX\",\"description\":\"Toggles featureX on and off\",\"type\":\"release\",\"enabled\":true,\"stale\":false,\"strategies\":[{\"name\":\"default\",\"editable\":true,\"description\":\"Default on/off strategy.\",\"parameters\":{\"parameter\":{\"name\":\"groupId\",\"type\":\"string\",\"description\":\"Define activation groups to allow you to correlate across feature toggles.\",\"required\":false}}}],\"variants\":[{\"name\":\"yellow\",\"weight\":20}],\"createdAt\":\"string\"}]"
})
.then(response => {
console.log(response);
})
.catch(err => {
console.error(err);
});
delete :
summary : Archive a Feature Toggle.
description : |
Feature toggles can only be archived - they cannot be deleted.
If an old Feature Toggle *re-appears*, this is because someone else has created a new one with the same name.
operationId : archiveFeatureToggle
tags :
- Feature toggles
- Archive
parameters :
- $ref : '#/components/parameters/featureNamePath'
responses :
'200' :
description : Feature Toggle successfully archived
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
2020-12-03 21:09:16 +01:00
'404' :
description : Feature Toggle not found
2021-01-25 07:57:40 +01:00
x-code-samples :
- lang : 'cURL'
source : |
curl --request DELETE \
--url http://localhost:4242/api/admin/features/featureName
2020-12-03 21:09:16 +01:00
'/admin/features/{featureName}/toggle/on' :
post :
summary : Enable a Feature Toggle.
description : '**featureName** must match an existing Feature Toggle.'
operationId : enableFeatureToggle
tags :
- Feature toggles
parameters :
- $ref : '#/components/parameters/featureNamePath'
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/successResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
2020-12-03 21:09:16 +01:00
'404' :
description : Feature Toggle not found
2021-01-25 07:57:40 +01:00
x-code-samples :
- lang : 'cURL'
source : |
curl --request POST \
--url http://localhost:4242/api/admin/features/featureName/toggle/on
2020-12-03 21:09:16 +01:00
'/admin/features/{featureName}/toggle/off' :
post :
summary : Disable a Feature Toggle.
description : '**featureName** must match an existing Feature Toggle.'
operationId : disableFeatureToggle
tags :
- Feature toggles
parameters :
- $ref : '#/components/parameters/featureNamePath'
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/successResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
2020-12-03 21:09:16 +01:00
'404' :
description : Feature Toggle not found
2021-01-25 07:57:40 +01:00
x-code-samples :
- lang : 'cURL'
source : |
curl --request POST \
--url http://localhost:4242/api/admin/features/featureName/toggle/off
2020-12-03 21:09:16 +01:00
'/admin/features/{featureName}/stale/on' :
post :
summary : Mark a Feature Toggle as 'stale' (deprecated).
description : '**featureName** must match an existing Feature Toggle.'
externalDocs :
description : Feature Toggle types
url : 'https://unleash.github.io/docs/feature_toggle_types'
operationId : markFeatureToggleStale
tags :
- Feature toggles
parameters :
- $ref : '#/components/parameters/featureNamePath'
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/successResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
2020-12-03 21:09:16 +01:00
'404' :
description : Feature Toggle not found
2021-01-25 07:57:40 +01:00
x-code-samples :
- lang : 'cURL'
source : |
curl --request POST \
--url http://localhost:4242/api/admin/features/featureName/stale/on
2020-12-03 21:09:16 +01:00
'/admin/features/{featureName}/stale/off' :
post :
summary : Mark a Feature Toggle as active.
description : '**featureName** must match an existing Feature Toggle.'
externalDocs :
description : Feature Toggle types
url : 'https://unleash.github.io/docs/feature_toggle_types'
operationId : markFeatureToggleActive
tags :
- Feature toggles
parameters :
- $ref : '#/components/parameters/featureNamePath'
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/successResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
2020-12-03 21:09:16 +01:00
'404' :
description : Feature Toggle not found
2021-01-25 07:57:40 +01:00
x-code-samples :
- lang : 'cURL'
source : |
curl --request POST \
--url http://localhost:4242/api/admin/features/featureName/stale/off
2020-12-03 21:09:16 +01:00
/admin/archive/features :
get :
summary : List all the archived feature toggles on the Unleash server
description : Archived feature toggles are those that have been previously deleted
operationId : fetchArchivedToggles
tags :
- Archive
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/successResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
2020-12-03 21:09:16 +01:00
'404' :
description : Feature Toggle not found
2021-01-25 07:57:40 +01:00
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/admin/archive/features
2020-12-03 21:09:16 +01:00
'/admin/archive/revive/{featureName}' :
post :
summary : Un-archive a Feature Toggle
2021-01-06 14:24:39 +01:00
description : Restore a Feature Toggle that has been previously deleted
2020-12-03 21:09:16 +01:00
operationId : reviveFeatureToggle
tags :
- Archive
parameters :
- $ref : '#/components/parameters/featureNamePath'
responses :
'200' :
description : Feature Toggle successfully revived
'404' :
description : Feature Toggle not found
2021-01-25 07:57:40 +01:00
x-code-samples :
- lang : 'cURL'
source : |
curl --request POST \
--url http://localhost:4242/api/admin/archive/revive/featureName
2020-12-03 21:09:16 +01:00
/admin/strategies :
get :
summary : Fetch all strategies and their parameters.
description : Fetch all strategies and their parameters.
operationId : getStrategies
tags :
- Strategies
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/strategyExistsResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/admin/strategies
2020-12-03 21:09:16 +01:00
post :
summary : Create Strategy
description : Create Strategy
operationId : createStrategy
tags :
- Strategies
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/createStrategy'
responses :
'201' :
description : Strategy successfully added
'400' :
description : Bad body request (for example 'strategies' is not an array)
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
2020-12-03 21:09:16 +01:00
'409' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/strategyExistsResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request POST \
--url http://localhost:4242/api/admin/strategies \
--data '{"name":"gradualRollout","description":"Gradual rollout to logged in users","parameters":[{"name":"percentage","type":"percentage","description":"What percent of users should the new Feature Toggle be active for?","required":true}]}'
2020-12-03 21:09:16 +01:00
'/admin/strategies/{strategyName}' :
put :
summary : Update Strategy
description : |
Use to update a Strategy definition.
**name** and **strategyName** must match and must also match an existing Strategy name.
**Caution: It can be dangerous to change a Strategy (as the implementation also might need to be changed).**
operationId : updateStrategy
tags :
- Strategies
parameters :
- $ref : '#/components/parameters/strategyNamePath'
requestBody :
required : true
content :
application/json :
schema :
$ref : '#/components/schemas/createStrategy'
responses :
'200' :
description : Strategy successfully updated.
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
2020-12-03 21:09:16 +01:00
'404' :
description : Strategy not updated due to errors in query and/or request body (such as **name** and **strategyName** not matching).
2021-01-25 07:57:40 +01:00
x-code-samples :
- lang : 'cURL'
source : |
curl --request PUT \
--url http://localhost:4242/api/admin/strategies/strategyName \
--data '{"name":"gradualRollout","description":"Gradual rollout to logged in users","parameters":[{"name":"percentage","type":"percentage","description":"What percent of users should the new Feature Toggle be active for?","required":true}]}'
2020-12-03 21:09:16 +01:00
/admin/metrics/seen-toggles :
get :
summary : Returns a list of applications and the feature toggles that Unleash has 'seen' for each application.
description : 'It is only guaranteed that feature toggles reported by client applications within the last hour will be returned. However, in most cases, earlier reported feature toggles will also be returned.'
operationId : seenToggles
tags :
- Metrics
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/seenTogglesResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/admin/metrics/seen-toggles
2020-12-03 21:09:16 +01:00
/admin/metrics/feature-toggles :
get :
summary : Gives 'last minute' and 'last hour' metrics for all active feature toggles (based on what was reported by the client applications).
description : |-
- **Yes** is the number of times a given feature toggle was enabled in a client applucation
- **No** is the number of times it was disabled.
operationId : featureToggles
tags :
- Metrics
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/featureAccessResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/admin/metrics/feature-toggles
2020-12-03 21:09:16 +01:00
/admin/metrics/applications :
get :
summary : A list of known applications ('seen' by Unleash in the last two days)
description : Also has a link for more details.
operationId : getApplications
tags :
- Metrics
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/applicationsResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/admin/metrics/applications
2020-12-03 21:09:16 +01:00
'/admin/metrics/applications/{appName}' :
get :
summary : Details about a client application.
description : 'Details include things such as instances, strategies implemented and seen feature toggles.'
operationId : getApplicationDetails
tags :
- Metrics
parameters :
- $ref : '#/components/parameters/appNamePath'
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/appDetailsResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
2020-12-03 21:09:16 +01:00
'500' :
description : Application name not found
2021-01-25 07:57:40 +01:00
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/admin/metrics/applications/appName
2020-12-03 21:09:16 +01:00
/admin/metrics/seen-apps :
get :
summary : Details about seen applications
description : (per Feature Toggle)
operationId : seenApps
tags :
- Metrics
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/applicationsResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/admin/metrics/seen-apps
2020-12-03 21:09:16 +01:00
/admin/events :
get :
operationId : get-admin-events
summary : Fetch all changes in the Unleash system
description : |-
Returns one of the six event types :
- feature-created
- feature-updated
- feature-archived
- feature-revived
- strategy-created
- strategy-deleted
tags :
- Events
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/eventsResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/admin/events
2020-12-03 21:09:16 +01:00
/admin/state/export :
get :
operationId : get-admin-state-export
summary : Export feature toggles and strategies
description : Exports a list of feature toggles and/or strategies in either JSON or YAML format.
externalDocs :
description : Import and export
url : 'https://unleash.github.io/docs/import_export'
tags :
- Import and export
parameters :
- schema :
type : string
enum :
- json
- yaml
in : query
name : format
description : |
Choose export format, either json or yaml. json is the default
example : json
- schema :
type : boolean
in : query
name : download
example : false
description : Do you want to export the data as a file? Default is false
- schema :
type : boolean
in : query
name : featureToggles
description : Do you want to include feature toggles in the export? Default is true
example : true
- schema :
type : boolean
in : query
name : strategies
description : Do you want to include strategies in the export? Default is true
example : true
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/exportResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/admin/state/export
2020-12-03 21:09:16 +01:00
/admin/state/import :
post :
summary : Import feature toggles and strategies
operationId : post-admin-state-import
tags :
- Import and export
description : |-
Upload the data, in JSON or YAML format.
You can add in the POST body or upload a file
- **POST body** (JSON format only) - next to **Request body**, choose the *application/json* dropdown option.
- **File upload** (JOSN or YAML format) - next to **Request body**, choose the *multipart/form-data* dropdown option. This adopts the same schema as `GET /admin/state/export`
externalDocs :
description : Import and export
url : 'https://unleash.github.io/docs/import_export'
parameters :
- schema :
type : boolean
default : 'false'
example : false
in : query
name : drop
description : Be careful using this in production environments. Set to true if you want the to remove all strategies and feature toggles from the datebase before import. Default is false.
- schema :
type : boolean
default : 'false'
example : false
in : query
name : keep
description : Set to *true* if you want keep all existing feature toggles and strategies as is; only the missing feature toggles and strategies will be inserted from the import data. Default is true.
example : true
requestBody :
content :
multipart/form-data :
schema :
type : object
properties :
fileName :
type : string
format : binary
application/json :
schema :
$ref : '#/components/schemas/200export'
responses :
'200' :
description : Successful import.
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
2020-12-03 21:09:16 +01:00
'404' :
description : No import data provided.
2021-01-25 07:57:40 +01:00
x-code-samples :
- lang : 'cURL'
source : |
curl --request POST \
--url 'http://localhost:4242/api/admin/state/import?drop=false&keep=false' \
--data '{"fileName":"string"}'
2020-12-03 21:09:16 +01:00
/admin/feature-types :
get :
summary : Fetch the list of Unleash feature types
description : |-
- release
- experiment
- ops
- killswitch
- permission
operationId : get-admin-feature-types
tags :
- Feature types
responses :
'200' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/featureTypeResponse'
2020-12-03 21:09:16 +01:00
'401' :
2021-01-25 07:57:40 +01:00
$ref : '#/components/responses/notAuthorizedResponse'
x-code-samples :
- lang : 'cURL'
source : |
curl --request GET \
--url http://localhost:4242/api/admin/feature-types
2020-12-03 21:09:16 +01:00
components :
parameters :
featureNamePath :
name : featureName
description : Must match an existing Feature Toggle name.
example : featureX
required : true
in : path
schema :
type : string
strategyNamePath :
name : strategyName
required : true
in : path
description : Must match an existing Strategy name.
example : flexibleRollout
schema :
type : string
appNamePath :
name : appName
required : true
in : path
description : Must match an existing application name.
example : my-application
schema :
type : string
2021-01-25 07:57:40 +01:00
responses :
successResponse :
description : "Successful response"
content :
application/json :
schema :
$ref : '#/components/schemas/200'
notAuthorizedResponse :
description : "Not authorized"
content :
application/json :
schema :
$ref : '#/components/schemas/401'
clientResponse :
description : "Successful response"
content :
application/json :
schema :
$ref : '#/components/schemas/200Client'
strategyExistsResponse :
description : "Strategy already exists"
content :
application/json :
schema :
$ref : '#/components/schemas/409'
strategyResponse :
description : "Successful response"
content :
application/json :
schema :
$ref : '#/components/schemas/200strategy'
seenTogglesResponse :
description : "Successful response"
content :
application/json :
schema :
$ref : '#/components/schemas/200seen'
featureAccessResponse :
description : "Successful response"
content :
application/json :
schema :
$ref : '#/components/schemas/200feature'
appDetailsResponse :
description : "Successful response"
content :
application/json :
schema :
$ref : '#/components/schemas/200appdetails'
applicationsResponse :
description : "Successful response"
content :
application/json :
schema :
$ref : '#/components/schemas/applicationArray'
eventsResponse :
description : "Successful response"
content :
application/json :
schema :
$ref : '#/components/schemas/200-events'
exportResponse :
description : "Successful response"
content :
application/json :
schema :
$ref : '#/components/schemas/200export'
featureTypeResponse :
description : "Successful response"
content :
application/json :
schema :
$ref : '#/components/schemas/200featuretype'
2020-12-03 21:09:16 +01:00
schemas :
'200' :
type : object
properties :
version :
$ref : '#/components/schemas/versionSchema'
features :
$ref : '#/components/schemas/featureToggleSchema'
x-tags :
- Responses
'401' :
type : object
properties :
type :
type : string
minLength : 1
path :
type : string
minLength : 1
message :
type : string
minLength : 1
required :
- type
- path
- message
x-tags :
- Responses
'409' :
type : object
required :
- isJoi
- name
- details
properties :
isJoi :
description : For internal use by the Unleash developers
type : boolean
name :
description : Title of error
type : string
minLength : 1
details :
type : array
uniqueItems : true
minItems : 1
items :
required :
- message
properties :
message :
description : Error message
type : string
minLength : 1
x-tags :
- Responses
200strategy :
type : object
required :
- version
- strategies
properties :
version :
$ref : '#/components/schemas/versionSchema'
strategies :
$ref : '#/components/schemas/strategySchema'
x-tags :
- Responses
createStrategy :
type : object
properties :
name :
type : string
minLength : 1
example : gradualRollout
description :
type : string
minLength : 1
example : Gradual rollout to logged in users
parameters :
type : array
uniqueItems : true
minItems : 1
items :
required :
- name
- type
- description
- required
properties :
name :
type : string
minLength : 1
example : percentage
type :
type : string
minLength : 1
example : percentage
description :
type : string
minLength : 1
example : What percent of users should the new Feature Toggle be active for?
required :
type : boolean
example : true
required :
- name
- description
- parameters
x-tags :
- Schemas
200seen :
type : array
minItems : 1
uniqueItems : true
items :
type : object
required :
- appName
- seenToggles
- metricsCount
properties :
appName :
type : string
minLength : 1
2020-12-15 09:14:00 +01:00
description : 'Application name'
example : 'my-application'
2020-12-03 21:09:16 +01:00
seenToggles :
2020-12-15 09:14:00 +01:00
$ref : '#/components/schemas/toggleSchema'
2020-12-03 21:09:16 +01:00
x-tags :
- Responses
200feature :
description : |-
- **lastHour** - how many times a Feature Toggle was accessed in the last hour.
- **lastMinute** - how many times a Feature Toggle was accessed in the last minute.
type : array
minItems : 1
uniqueItems : true
items :
type : object
required :
- appName
- seenToggles
properties :
appName :
type : string
enum :
- lastHour
- lastMinute
minLength : 1
example : lastHour
seenToggles :
2020-12-15 09:14:00 +01:00
$ref : '#/components/schemas/toggleSchema'
x-tags :
- Responses
metricsPayloadSchema :
2021-01-06 14:24:39 +01:00
description : A *bucket* of metrics data that tells you how often a Feature Toggle was enabled or disabled during a specified period of time
2020-12-15 09:14:00 +01:00
type : object
required :
- appName
- instanceId
- bucket
properties :
appName :
type : string
description : 'The name of your application'
example : 'my-application'
instanceId :
description : The name of the system running the application
type : string
minLength : 1
example : generated-732038-17080
bucket :
type : object
required :
- start
- stop
- toggles
properties :
start :
type : string
2021-01-06 14:24:39 +01:00
description : 'The start time for your metrics (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))'
2020-12-15 09:14:00 +01:00
example : '2020-12-08T13:50:00.000Z'
stop :
type : string
2021-01-06 14:24:39 +01:00
description : 'The end time for your metrics (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))'
2020-12-15 09:14:00 +01:00
example : '2020-12-08T13:55:00.000Z'
toggles :
$ref : '#/components/schemas/toggleSchema'
x-tags :
- Schemas
toggleSchema :
type : object
required :
- yesno
- metricsCount
properties :
yesno :
2021-01-06 14:24:39 +01:00
description : Was a Feature Toggle enabled (yes) or disabled (no)?
2020-12-15 09:14:00 +01:00
type : object
properties :
yesorno :
type : string
enum :
- 'yes'
- 'no'
example : 'yes'
metricsCount :
2021-01-06 14:24:39 +01:00
description : The number of times a Feature Toggle was enabled or disabled during the specified start and end time
2020-12-15 09:14:00 +01:00
type : object
properties :
count :
type : number
example : 1
x-tags :
- Schemas
clientRegistrationSchema :
type : object
required :
- appName
- instanceId
- strategies
- started
- interval
properties :
appName :
type : string
description : 'The name of your application'
example : 'my-application'
instanceId :
type : string
description : The name of the system running the application
minLength : 1
example : generated-732038-17080
sdkVersion :
description : The version of the Unleash client SDK running the application
type : string
example : 'unleash-client-node:3.4.0'
strategies :
type : array
description : List of strategy names implemented by this application
items :
2020-12-03 21:09:16 +01:00
required :
2020-12-15 09:14:00 +01:00
- strategy
2020-12-03 21:09:16 +01:00
properties :
2020-12-15 09:14:00 +01:00
strategy :
2020-12-03 21:09:16 +01:00
type : string
2020-12-15 09:14:00 +01:00
description : Strategy name
minLength : 1
example : 'default'
started :
type : string
description : 'When the client started (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))'
example : '2016-11-03T07:16:43.572Z'
interval :
type : number
description : 'How often to send metrics to the Unleash API (in milliseconds)'
example : 10000
2020-12-03 21:09:16 +01:00
x-tags :
2020-12-15 09:14:00 +01:00
- Schemas
2020-12-03 21:09:16 +01:00
applicationArray :
type : array
items :
$ref : '#/components/schemas/application'
x-tags :
- Schemas
application :
type : object
required :
- applications
properties :
applications :
type : array
uniqueItems : true
minItems : 1
items :
required :
- appName
- createdAt
- updatedAt
- strategies
properties :
appName :
description : Application name
type : string
example : my-application
createdAt :
description : 'The first time the application registered with Unleash (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))'
type : string
example : '2016-12-09T14:56:36.730Z'
updatedAt :
description : 'The last time the application ' 'talked' ' to Unleash (sent metrics, registered, fetched feature toggles) - in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime)'
type : string
example : '2020-11-14T09:55:23.653Z'
description :
description : A description of what the application does
type : string
strategies :
description : A description of what the application does
type : string
url :
description : Absolute URL to the actual application
type : string
example : 'http://someapp.internal.url'
color :
description : Deprecated. Do not use
type : string
icon :
description : 'The application' 's icon. Must be one of the [Material Design icon names](https://material.io/resources/icons/?style=baseline)'
type : string
example : comment_bank
x-tags :
- Schemas
200appdetails :
type : object
required :
- application
- instances
- strategies
- seenToggles
properties :
application :
$ref : '#/components/schemas/application'
strategies :
$ref : '#/components/schemas/strategySchema'
instances :
type : object
required :
- appName
- instanceId
- sdkVersion
- clientIp
- lastSeen
- createdAt
properties :
appName :
description : Application name
type : string
minLength : 1
example : my-application
instanceId :
description : The name of the system running the application
type : string
minLength : 1
example : generated-732038-17080
sdkVersion :
description : The version of the Unleash client SDK running the application
type : string
minLength : 1
example : 'unleash-client-node:3.4.0'
clientIp :
description : The IP address of the system running this instance of the application
type : string
minLength : 1
example : '::ffff:127.0.0.1'
lastSeen :
description : 'The last time the application ' 'talked' ' to Unleash (sent metrics, registered, fetched feature toggles) - in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime)'
type : string
minLength : 1
example : '2020-11-14T11:17:24.482Z'
createdAt :
description : 'The first time the application registered with Unleash (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))'
type : string
minLength : 1
example : '2020-11-13T16:56:29.279Z'
seenToggles :
$ref : '#/components/schemas/featureToggleSchema'
links :
type : object
properties :
self :
description : Deprecated. Do not use
type : string
minLength : 1
x-tags :
- Responses
featureToggleTypeSchema :
type : string
enum :
- release
- experiment
- ops
- killswitch
- permission
description : |-
'One of the five Unleash Feature Toggle types.
**type** is optional. If not defined, it defaults to *release*'
default : release
externalDocs :
description : Feature Toggle types
url : 'https://unleash.github.io/docs/feature_toggle_types'
minLength : 1
example : release
x-tags :
- Schemas
versionSchema :
type : number
description : For internal use by the Unleash developers
example : 1
x-tags :
- Schemas
featureToggleSchema :
type : array
items :
type : object
required :
- name
- description
- type
- enabled
- stale
- strategies
properties :
name :
description : Feature Toggle name must be unique.
type : string
minLength : 1
example : featureX
description :
type : string
minLength : 1
example : Toggles featureX on and off
type :
$ref : '#/components/schemas/featureToggleTypeSchema'
enabled :
description : Is the Feature Toggle enabled?
type : boolean
example : true
stale :
description : Is the Feature Toggle 'stale' (deprecated)?
type : boolean
example : false
strategies :
$ref : '#/components/schemas/strategySchema'
variants :
$ref : '#/components/schemas/variantsSchema'
createdAt :
type : string
minLength : 1
x-tags :
- Schemas
strategySchema :
type : array
items :
type : object
properties :
name :
description : Name of the Strategy
type : string
minLength : 1
example : default
editable :
type : boolean
example : true
description :
description : What the Strategy is
type : string
example : Default on/off strategy.
parameters :
type : object
properties :
parameter :
type : object
required :
- name
- type
properties :
name :
description : The name of the parameter
type : string
example : groupId
type :
description : The type of the parameter
type : string
example : string
description :
description : What the parameter does
type : string
example : Define activation groups to allow you to correlate across feature toggles.
required :
description : Is this a required parameter?
type : boolean
example : false
x-tags :
- Schemas
variantsSchema :
externalDocs :
description : How to use Feature Toggle variants
url : 'https://unleash.github.io/docs/toggle_variants'
type : array
items :
required :
- name
- weight
properties :
name :
description : The name of the Feature Toggle variant
type : string
minLength : 1
example : yellow
weight :
description : |-
A number between 0 and 1,000.
The client SDK will summarize all variant weights, hash the number and divide the users among them. The distribution will be according to the weight as a fraction of the sum of weight.
type : number
example : 20
x-tags :
- Schemas
2020-12-15 09:14:00 +01:00
2021-01-25 07:57:40 +01:00
200Client :
2020-12-15 09:14:00 +01:00
type : object
properties :
version :
$ref : '#/components/schemas/versionSchema'
features :
type : array
uniqueItems : true
minItems : 1
items :
required :
- name
- description
- type
- enabled
- stale
- strategies
- createdAt
properties :
name :
type : string
description : 'Feature Toggle name'
minLength : 1
example : 'Demo'
description :
type : string
description : 'A description of the Feature Toggle'
minLength : 1
example : 'Show off fedfdfature toggles'
type :
type : string
enum :
- Release
- Experiment
- Operational
- Kill switch
- Permission
description : 'The title of one of the five Feature Toggle types'
minLength : 1
example : 'Operational'
enabled :
description : Is the Feature Toggle enabled?
type : boolean
example : true
stale :
description : Is the Feature Toggle 'stale' (deprecated)?
type : boolean
example : false
strategies :
$ref : '#/components/schemas/strategySchema'
variants :
type : array
uniqueItems : true
items :
properties :
name :
type : string
description : 'Variant name'
minLength : 1
example : 'Red'
weight :
description : |-
A number between 0 and 1,000.
2021-01-06 14:24:39 +01:00
The client SDK will allocate traffic to each variant based on this weighting (as a fraction of the sum of all variant weights).
**Examples**
- You have four variants, each with a weight of 1000. The SDK will distribute traffic evenly : 25 % each
- You have two variants, one with a weight of 100 and one with a weight of 900. The SDK will send 90% of traffic to the variant with a weight of 900
2020-12-15 09:14:00 +01:00
type : number
example : 20
weightType :
type : string
minLength : 1
example : 'variable'
payload :
type : object
2021-01-06 14:24:39 +01:00
description : 'Optional data associated with the variant, consisting of a *type/value* pair (as defined in the SDK)'
2020-12-15 09:14:00 +01:00
properties :
type :
type : string
example : 'string'
value :
type : string
example : 'Something'
overrides :
type : array
description : An optional array of overrides. If any [context](https://unleash.github.io/docs/unleash_context) field matches any of these overrides, *this* variant will be selected.
items :
type : object
properties :
contextName :
type : string
description : 'One of the six context fields'
enum :
- userId
- sessionId
- remoteAddress
- properties
- appName
- environment
example : 'userId'
values :
type : array
description : 'The value(s) for the context field'
items :
properties :
value :
type : string
example : '123'
createdAt :
type : string
minLength : 1
x-tags :
- Responses
2020-12-03 21:09:16 +01:00
200-events :
type : object
properties :
version :
$ref : '#/components/schemas/versionSchema'
events :
type : array
required :
- id
- type
- createdBy
- createdAt
uniqueItems : true
minItems : 1
items :
properties :
id :
description : The event number. All events have a unique id.
type : number
example : 55
type :
description : One of the six event types
type : string
enum :
- feature-created
- feature-updated
- feature-archived
- feature-revived
- strategy-created
- strategy-deleted
minLength : 1
example : feature-updated
createdBy :
description : The current user's *email* or *username* (taken from the *User* object on the current session)
type : string
minLength : 1
createdAt :
description : 'The first time the application registered with Unleash (in [ISO8601 format](https://www.w3.org/TR/NOTE-datetime))'
type : string
example : '2016-12-09T14:56:36.730Z'
data :
$ref : '#/components/schemas/featureToggleSchema'
diffs :
description : |-
The JSON differences between the current and last version of the Feature Toggle.
(Uses the [deep-diff Node.js module](https://www.npmjs.com/package/deep-diff))
externalDocs :
description : Activation strategies
url : 'https://www.npmjs.com/package/deep-diff#differences'
type : array
items :
required :
- kind
- lhs
- rhs
properties :
kind :
description : |-
The kind of change :
- **N** - a newly-added property or element
- **D** - a property or element was deleted
- **E** - a property or element was edited
- **A** - a change occurred within an array
type : string
enum :
- 'N'
- D
- E
- A
example : E
path :
type : array
items :
required :
- pathItem
properties :
pathItem :
description : The property path (from the left-hand-side root)
type : string
example : enabled
lhs :
description : The value on the left-hand-side of the comparison (*undefined* if **kind** is *N*)
type : boolean
example : true
rhs :
description : The value on the right-hand-side of the comparison (*undefined* if **kind** is *D*)
type : boolean
example : false
x-tags :
- Responses
200export :
type : object
required :
- version
- features
- strategies
properties :
version :
$ref : '#/components/schemas/versionSchema'
features :
$ref : '#/components/schemas/featureToggleSchema'
strategies :
$ref : '#/components/schemas/strategySchema'
x-tags :
- Responses
200featuretype :
type : object
required :
- version
- types
properties :
version :
$ref : '#/components/schemas/versionSchema'
types :
type : array
uniqueItems : true
minItems : 1
items :
required :
- id
- name
- description
- lifetimeDays
properties :
id :
$ref : '#/components/schemas/featureToggleTypeSchema'
name :
description : The title of the Feature Toggle type
type : string
enum :
- Release
- Experiment
- Operational
- Kill switch
- Permission
minLength : 1
example : Release
description :
description : A description of what this Feature Toggle type could be used for
type : string
enum :
- Enables trunk-based development for teams practicing continuous delivery
- Performs multivariate or A/B testing
- Controls operational aspects of the system behavior
- Gracefully degrades system functionality
- Changes the features or product experiences that certain users receive
minLength : 1
lifetimeDays :
description : The number of days this Feature Toggle is intended to be used. This information is used to issue deprecation notices
externalDocs :
description : Feature Toggle types
url : 'https://unleash.github.io/docs/feature_toggle_types'
type : number
example : 40
x-tags :
2020-12-15 09:14:00 +01:00
- Responses