{"swagger":"2.0","info":{"description":"Api Documentation","version":"1.0","title":"Api Documentation","termsOfService":"urn:tos","contact":{},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0"}},"host":"localhost:8080","basePath":"/","tags":[{"name":"feature-resource","description":"Feature Resource"},{"name":"feature-store-resource","description":"Feature Store Resource"},{"name":"ff-4j-resource","description":"FF 4j Resource"},{"name":"group-resource","description":"Group Resource"},{"name":"monitoring-resource","description":"Monitoring Resource"},{"name":"property-resource","description":"Property Resource"},{"name":"property-store-resource","description":"Property Store Resource"}],"paths":{"/api/ff4j":{"get":{"tags":["ff-4j-resource"],"summary":"Gets <b>ff4j</b> status overview","description":"Gets information related to <b>Monitoring</b>, <b>Security</b>, <b>Cache</b> and <b>Store</b>","operationId":"getStatusUsingGET","produces":["application/json"],"responses":{"200":{"description":"Success, return status of ff4j instance","schema":{"$ref":"#/definitions/FF4jStatusApiBean"}}},"deprecated":false}},"/api/ff4j/check/{uid}":{"get":{"tags":["ff-4j-resource"],"summary":"<b>Simple check</b> feature toggle","operationId":"checkUsingGET","produces":["*/*"],"parameters":[{"name":"uid","in":"path","description":"uid","required":true,"type":"string"}],"responses":{"200":{"description":"If feature is flipped","schema":{"type":"boolean"}},"404":{"description":"Feature not found"}},"deprecated":false},"post":{"tags":["ff-4j-resource"],"summary":"<b>Advanced check</b> feature toggle (parametrized)","operationId":"checkUsingPOST","consumes":["application/x-www-form-urlencoded"],"produces":["*/*"],"parameters":[{"name":"formParams","in":"formData","description":"formParams","required":true,"items":{"type":"object","additionalProperties":{"type":"string"}}},{"name":"uid","in":"path","description":"uid","required":true,"type":"string"}],"responses":{"200":{"description":"If feature is flipped","schema":{"type":"boolean"}},"400":{"description":"Invalid parameter"},"404":{"description":"Feature not found"}},"deprecated":false}},"/api/ff4j/monitoring":{"get":{"tags":["monitoring-resource"],"summary":"getMonitoringStatus","operationId":"getMonitoringStatusUsingGET","produces":["application/json"],"parameters":[{"name":"end","in":"query","description":"end","required":false,"type":"integer","format":"int64"},{"name":"start","in":"query","description":"start","required":false,"type":"integer","format":"int64"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/EventRepositoryApiBean"}}},"deprecated":false}},"/api/ff4j/propertyStore":{"get":{"tags":["property-store-resource"],"summary":"Display information regarding <b>Properties Store</b>","operationId":"getPropertyStoreUsingGET","produces":["application/json"],"responses":{"200":{"description":"status of current properties store","schema":{"$ref":"#/definitions/PropertyStoreApiBean"}}},"deprecated":false}},"/api/ff4j/propertyStore/cache":{"get":{"tags":["property-store-resource"],"summary":"Display information related to <b>Cache</b>","operationId":"getPropertiesFromCacheUsingGET","produces":["application/json"],"responses":{"200":{"description":"Gets the cached properties","schema":{"$ref":"#/definitions/CacheApiBean"}},"404":{"description":"property store is not cached"}},"deprecated":false}},"/api/ff4j/propertyStore/clear":{"delete":{"tags":["property-store-resource"],"summary":"Delete all <b>Properties</b> in store","operationId":"deleteAllPropertiesUsingDELETE","produces":["*/*"],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"204":{"description":"all properties have been deleted","schema":{"$ref":"#/definitions/ResponseEntity"}}},"deprecated":false}},"/api/ff4j/propertyStore/clearCache":{"delete":{"tags":["property-store-resource"],"summary":"Clear cache","operationId":"clearCachedPropertyStoreUsingDELETE","produces":["*/*"],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"204":{"description":"cache is cleared","schema":{"$ref":"#/definitions/ResponseEntity"}},"404":{"description":"property store is not cached"}},"deprecated":false}},"/api/ff4j/propertyStore/properties":{"get":{"tags":["property-store-resource"],"summary":"Display all the <b>Properties</b>","operationId":"getAllPropertiesUsingGET","produces":["application/json"],"responses":{"200":{"description":"get all Properties","schema":{"$ref":"#/definitions/PropertyApiBean"}}},"deprecated":false}},"/api/ff4j/propertyStore/properties/{name}":{"get":{"tags":["property-resource"],"summary":"Read information about a property","operationId":"getPropertyUsingGET","produces":["application/json"],"parameters":[{"name":"name","in":"path","description":"name","required":true,"type":"string"}],"responses":{"200":{"description":"Information about property","schema":{"$ref":"#/definitions/PropertyApiBean"}},"404":{"description":"Property not found"}},"deprecated":false},"put":{"tags":["property-resource"],"summary":"Create or update a property","operationId":"createOrUpdatePropertyUsingPUT","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"name","in":"path","description":"name","required":true,"type":"string"},{"in":"body","name":"propertyApiBean","description":"propertyApiBean","required":true,"schema":{"$ref":"#/definitions/PropertyApiBean"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"201":{"description":"Property has been created","schema":{"$ref":"#/definitions/ResponseEntity"}},"202":{"description":"Property has been updated","schema":{"$ref":"#/definitions/ResponseEntity"}},"204":{"description":"No content, no changes made to the feature","schema":{"$ref":"#/definitions/ResponseEntity"}},"400":{"description":"Property name is blank (or) property name did not match with the requested property name to be created or updated"}},"deprecated":false},"delete":{"tags":["property-resource"],"summary":"Delete a property","operationId":"deletePropertyUsingDELETE","produces":["application/json"],"parameters":[{"name":"name","in":"path","description":"name","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"204":{"description":"No content, property is deleted","schema":{"$ref":"#/definitions/ResponseEntity"}},"404":{"description":"Property not found"}},"deprecated":false}},"/api/ff4j/propertyStore/properties/{name}/update/{value}":{"post":{"tags":["property-resource"],"summary":"Update value of a property","operationId":"updatePropertyNameUsingPOST","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"name","in":"path","description":"name","required":true,"type":"string"},{"name":"value","in":"path","description":"value","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"202":{"description":"Property has been updated","schema":{"$ref":"#/definitions/ResponseEntity"}},"400":{"description":"Invalid new value"},"404":{"description":"Property not found"}},"deprecated":false}},"/api/ff4j/security":{"get":{"tags":["ff-4j-resource"],"summary":"Gets <b>Security</b> information (permissions manager)","description":"Security is implemented through dedicated <b>AuthorizationsManager</b> but it's not mandatory","operationId":"getSecurityInfoUsingGET","produces":["application/json"],"responses":{"200":{"description":"Status of current ff4j security bean","schema":{"$ref":"#/definitions/AuthorizationsManagerApiBean"}},"404":{"description":"no security has been defined"}},"deprecated":false}},"/api/ff4j/store":{"get":{"tags":["feature-store-resource"],"summary":"Displays information regarding the <b>FeaturesStore</b>","operationId":"getFeatureStoreUsingGET","produces":["application/json"],"responses":{"200":{"description":"status of current feature store","schema":{"$ref":"#/definitions/FeatureStoreApiBean"}}},"deprecated":false}},"/api/ff4j/store/cache":{"get":{"tags":["feature-store-resource"],"summary":"Display information related to <b>Cache</b>","operationId":"getFeaturesFromCacheUsingGET","produces":["application/json"],"responses":{"200":{"description":"Gets the cached features","schema":{"$ref":"#/definitions/CacheApiBean"}},"404":{"description":"feature store is not cached"}},"deprecated":false}},"/api/ff4j/store/clear":{"delete":{"tags":["feature-store-resource"],"summary":"Delete all <b>Features</b> in store","operationId":"deleteAllFeaturesUsingDELETE","produces":["*/*"],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"204":{"description":"all feature have been deleted","schema":{"$ref":"#/definitions/ResponseEntity"}}},"deprecated":false}},"/api/ff4j/store/clearCache":{"delete":{"tags":["feature-store-resource"],"summary":"Clear cache","operationId":"clearCachedFeatureStoreUsingDELETE","produces":["*/*"],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"204":{"description":"cache is cleared","schema":{"$ref":"#/definitions/ResponseEntity"}},"404":{"description":"feature store is not cached"}},"deprecated":false}},"/api/ff4j/store/features":{"get":{"tags":["feature-store-resource"],"summary":"Displays all the <b>Features</b>","operationId":"getAllFeaturesUsingGET","produces":["application/json"],"responses":{"200":{"description":"get all features","schema":{"$ref":"#/definitions/FeatureApiBean"}}},"deprecated":false}},"/api/ff4j/store/features/{uid}":{"get":{"tags":["feature-resource"],"summary":"getFeatureByUID","operationId":"getFeatureByUIDUsingGET","produces":["application/json"],"parameters":[{"name":"uid","in":"path","description":"uid","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/FeatureApiBean"}}},"deprecated":false},"put":{"tags":["feature-resource"],"summary":"Create or update a feature","operationId":"createOrUpdateFeatureUsingPUT","consumes":["application/json"],"produces":["application/json"],"parameters":[{"in":"body","name":"featureApiBean","description":"featureApiBean","required":true,"schema":{"$ref":"#/definitions/FeatureApiBean"}},{"name":"uid","in":"path","description":"uid","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"201":{"description":"Feature has been created","schema":{"$ref":"#/definitions/ResponseEntity"}},"202":{"description":"Feature has been updated","schema":{"$ref":"#/definitions/ResponseEntity"}},"204":{"description":"No content, no changes made to the feature","schema":{"$ref":"#/definitions/ResponseEntity"}},"400":{"description":"Feature uid is blank (or) feature uid did not match with the requested feature uid to be created or updated"}},"deprecated":false},"delete":{"tags":["feature-resource"],"summary":"Delete a feature","operationId":"deleteFeatureUsingDELETE","produces":["*/*"],"parameters":[{"name":"uid","in":"path","description":"uid","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"204":{"description":"No content, feature is deleted","schema":{"$ref":"#/definitions/ResponseEntity"}},"404":{"description":"Feature not found"}},"deprecated":false}},"/api/ff4j/store/features/{uid}/addGroup/{groupName}":{"post":{"tags":["feature-resource"],"summary":"Define the group of the feature","operationId":"addGroupToFeatureUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"groupName","in":"path","description":"groupName","required":true,"type":"string"},{"name":"uid","in":"path","description":"uid","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"202":{"description":"Group has been defined","schema":{"$ref":"#/definitions/ResponseEntity"}},"304":{"description":"Group already exists, nothing to update"},"404":{"description":"Feature not found"}},"deprecated":false}},"/api/ff4j/store/features/{uid}/disable":{"post":{"tags":["feature-resource"],"summary":"Disable a feature","operationId":"disableFeatureUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"uid","in":"path","description":"uid","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"202":{"description":"Features has been disabled","schema":{"$ref":"#/definitions/ResponseEntity"}},"404":{"description":"Feature not found"}},"deprecated":false}},"/api/ff4j/store/features/{uid}/enable":{"post":{"tags":["feature-resource"],"summary":"Enable a feature","operationId":"enableFeatureUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"uid","in":"path","description":"uid","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"202":{"description":"Features has been enabled","schema":{"$ref":"#/definitions/ResponseEntity"}},"404":{"description":"Feature not found"}},"deprecated":false}},"/api/ff4j/store/features/{uid}/grantrole/{role}":{"post":{"tags":["feature-resource"],"summary":"Grant a permission to a feature","operationId":"grantRoleToFeatureUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"role","in":"path","description":"role","required":true,"type":"string"},{"name":"uid","in":"path","description":"uid","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"202":{"description":"Permission has been granted","schema":{"$ref":"#/definitions/ResponseEntity"}},"304":{"description":"Role already exists, nothing to update"},"404":{"description":"Feature not found"}},"deprecated":false}},"/api/ff4j/store/features/{uid}/removeGroup/{groupName}":{"post":{"tags":["feature-resource"],"summary":"Remove the group of the feature","operationId":"removeGroupFromFeatureUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"groupName","in":"path","description":"groupName","required":true,"type":"string"},{"name":"uid","in":"path","description":"uid","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"204":{"description":"Group has been removed","schema":{"$ref":"#/definitions/ResponseEntity"}},"404":{"description":"Feature not found"}},"deprecated":false}},"/api/ff4j/store/features/{uid}/removerole/{role}":{"post":{"tags":["feature-resource"],"summary":"Remove a permission from a feature","operationId":"removeRoleFromFeatureUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"role","in":"path","description":"role","required":true,"type":"string"},{"name":"uid","in":"path","description":"uid","required":true,"type":"string"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ResponseEntity"}},"202":{"description":"Permission has been granted","schema":{"$ref":"#/definitions/ResponseEntity"}},"404":{"description":"Feature not found"}},"deprecated":false}},"/api/ff4j/store/groups":{"get":{"tags":["feature-store-resource"],"summary":"Display information regarding <b>Groups</b>","operationId":"getAllGroupsUsingGET","produces":["application/json"],"responses":{"200":{"description":"Groups resource","schema":{"$ref":"#/definitions/GroupDescApiBean"}}},"deprecated":false}},"/api/ff4j/store/groups/{groupName}":{"get":{"tags":["group-resource"],"summary":"Get all the features belonging to the group","operationId":"getFeaturesByGroupUsingGET","produces":["application/json"],"parameters":[{"name":"groupName","in":"path","description":"groupName","required":true,"type":"string"}],"responses":{"200":{"description":"features belonging to the group","schema":{"$ref":"#/definitions/FeatureApiBean"}},"404":{"description":"Group not found"}},"deprecated":false}},"/api/ff4j/store/groups/{groupName}/disable":{"post":{"tags":["group-resource"],"summary":"Disable a group","operationId":"disableGroupUsingPOST","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"groupName","in":"path","description":"groupName","required":true,"type":"string"}],"responses":{"200":{"description":"Group has been disabled"},"404":{"description":"Group not found"}},"deprecated":false}},"/api/ff4j/store/groups/{groupName}/enable":{"post":{"tags":["group-resource"],"summary":"Enable a group","operationId":"enableGroupUsingPOST","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"groupName","in":"path","description":"groupName","required":true,"type":"string"}],"responses":{"200":{"description":"Group has been enabled"},"404":{"description":"Group not found"}},"deprecated":false}}},"definitions":{"AuthorizationsManagerApiBean":{"type":"object","properties":{"permissions":{"type":"array","items":{"type":"string"}},"type":{"type":"string"}},"title":"AuthorizationsManagerApiBean"},"BarChartApiBean":{"type":"object","properties":{"labels":{"type":"array","items":{"type":"string"}},"series":{"type":"array","items":{"$ref":"#/definitions/BarSeriesApiBean"}},"title":{"type":"string"}},"title":"BarChartApiBean"},"BarSeriesApiBean":{"type":"object","properties":{"color":{"type":"string"},"label":{"type":"string"},"value":{"type":"number","format":"double"}},"title":"BarSeriesApiBean"},"CacheApiBean":{"type":"object","properties":{"cacheProvider":{"type":"string"},"cacheStore":{"type":"string"},"featureNames":{"type":"array","items":{"type":"string"}},"propertyNames":{"type":"array","items":{"type":"string"}}},"title":"CacheApiBean"},"EventRepositoryApiBean":{"type":"object","properties":{"barChart":{"$ref":"#/definitions/BarChartApiBean"},"eventsPie":{"$ref":"#/definitions/PieChartApiBean"},"hitCount":{"type":"integer","format":"int32"},"type":{"type":"string"}},"title":"EventRepositoryApiBean"},"FF4jStatusApiBean":{"type":"object","properties":{"authorizationsManager":{"$ref":"#/definitions/AuthorizationsManagerApiBean"},"autocreate":{"type":"boolean"},"eventRepository":{"$ref":"#/definitions/EventRepositoryApiBean"},"featuresStore":{"$ref":"#/definitions/FeatureStoreApiBean"},"uptime":{"type":"string"},"version":{"type":"string"}},"title":"FF4jStatusApiBean"},"FeatureApiBean":{"type":"object","properties":{"customProperties":{"type":"object","additionalProperties":{"$ref":"#/definitions/PropertyApiBean"}},"description":{"type":"string"},"enable":{"type":"boolean"},"flippingStrategy":{"$ref":"#/definitions/FlippingStrategyApiBean"},"group":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"uid":{"type":"string"}},"title":"FeatureApiBean"},"FeatureStoreApiBean":{"type":"object","properties":{"cache":{"$ref":"#/definitions/CacheApiBean"},"features":{"type":"array","items":{"type":"string"}},"groups":{"type":"array","items":{"type":"string"}},"numberOfFeatures":{"type":"integer","format":"int32"},"numberOfGroups":{"type":"integer","format":"int32"},"type":{"type":"string"}},"title":"FeatureStoreApiBean"},"FlippingStrategyApiBean":{"type":"object","properties":{"initParams":{"type":"object","additionalProperties":{"type":"string"}},"type":{"type":"string"}},"title":"FlippingStrategyApiBean"},"GroupDescApiBean":{"type":"object","properties":{"features":{"type":"array","items":{"type":"string"}},"groupName":{"type":"string"}},"title":"GroupDescApiBean"},"PieChartApiBean":{"type":"object","properties":{"sectors":{"type":"array","items":{"$ref":"#/definitions/PieSectorApiBean"}},"title":{"type":"string"}},"title":"PieChartApiBean"},"PieSectorApiBean":{"type":"object","properties":{"color":{"type":"string"},"label":{"type":"string"},"value":{"type":"number","format":"double"}},"title":"PieSectorApiBean"},"PropertyApiBean":{"type":"object","properties":{"description":{"type":"string"},"fixedValues":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"}},"title":"PropertyApiBean"},"PropertyStoreApiBean":{"type":"object","properties":{"cache":{"$ref":"#/definitions/CacheApiBean"},"numberOfProperties":{"type":"integer","format":"int32"},"properties":{"type":"array","items":{"type":"string"}},"type":{"type":"string"}},"title":"PropertyStoreApiBean"},"ResponseEntity":{"type":"object","properties":{"body":{"type":"object"},"statusCode":{"type":"string","enum":["100","101","102","103","200","201","202","203","204","205","206","207","208","226","300","301","302","303","304","305","307","308","400","401","402","403","404","405","406","407","408","409","410","411","412","413","414","415","416","417","418","419","420","421","422","423","424","426","428","429","431","451","500","501","502","503","504","505","506","507","508","509","510","511"]},"statusCodeValue":{"type":"integer","format":"int32"}},"title":"ResponseEntity"}}}
