diff --git a/website/docs/api/admin/segments.mdx b/website/docs/api/admin/segments.mdx
index f38a8d186f..27bb7ca37a 100644
--- a/website/docs/api/admin/segments.mdx
+++ b/website/docs/api/admin/segments.mdx
@@ -21,7 +21,7 @@ Retrieve all segments that exist in this Unleash instance. Returns a list of [se
-
+
Example responses
@@ -55,26 +55,15 @@ payload={{
/>
-
+
Example responses
-### 200 OK
+### 201 Created
-Contains the newly created segment object.
+The segment was successfully created. This response has no body.
-``` json
-{
- "id": 1,
- "name": "my-segment",
- "description": "a segment description",
- "constraints": [],
- "createdBy": "user@example.com",
- "createdAt": "2022-04-01T14:02:25.491Z"
-}
-```
-
-### 400 Bad request
+### 400 Bad Request
A segment with the provided name already exists.
@@ -82,9 +71,9 @@ A segment with the provided name already exists.
### Payload structure
-Use a JSON object with the following parameters to create a new segment.
+Use a JSON object with the following properties to create a new segment.
-| Parameter | Type | Required | Description | Example value |
+| Property | Type | Required | Description | Example value |
|---------------|--------------------------------------------|----------|------------------------------------------------|--------------------------------------------------|
| `name` | string | Yes | The name of the segment. Must be URL friendly. | `"mobile-users"` |
| `description` | string | No | A description of the segment. | `"This segment is for users on mobile devices."` |
@@ -95,7 +84,7 @@ Use a JSON object with the following parameters to create a new segment.
Retrieves the segment with the specified ID.
`} title="Retrieve the segment with the provided ID."/>
-
+
Example responses
@@ -118,15 +107,163 @@ No segment with the provided ID exists.
-## Update segment by id: `PUT /:id`
+## Update an existing segment
-## Delete segment by id: `DELETE /:id`
+Replace the data of the specified segment with the provided payload.
-## List strategies that use a specific segment: `GET /:id/strategies`
-## List segments applied to a specific strategy: `GET /strategies/:strategyId`
+`} title="Update a segment with new data."
+payload={{
+ "name": "my-segment",
+ "description": "this is a newly provided description.",
+ "constraints": []
+}}
+/>
-## Replace activation strategy segments `POST /strategies/:strategyId`
+
+
+Example responses
+
+### 204 No Content
+
+The update was successful. This response has no body.
+
+### 404 Not Found
+
+No segment with the provided ID exists.
+
+
+
+## Delete a segment
+
+Delete the request with the specified ID.
+
+`} title="Delete a segment." />
+
+
+
+Example responses
+
+### 204 No Content
+
+The segment was deleted successfully.
+
+### 404 Not Found
+
+No segment with the provided ID exists.
+
+### 409 Conflict
+
+The segment is being used by at least one strategy and can not be deleted. To delete the segment, first remove it from any strategies that use it.
+
+
+
+## List strategies that use a specific segment
+
+Retrieve all strategies that use the specified segment. Returns a list of [activation strategy objects](#ifeaturestrategy).
+
+/strategies`} title="Retrieve all activation strategies that use the specified segment."/>
+
+
+
+Example responses
+
+### 200 OK
+
+``` json
+[
+ {
+ "id": "strategy-id",
+ "featureName": "my-feature",
+ "projectId": "my-project",
+ "environment": "development",
+ "strategyName": "my strategy",
+ "parameters": {},
+ "constraints": [],
+ "createdAt": "2022-04-01T14:02:25.491Z"
+ }
+]
+```
+
+### 404 Not Found
+
+No segment with the provided id exists.
+
+
+
+## List segments applied to a specific strategy
+
+Retrieve all segments that are applied to the specified strategy. Returns a list of [segment objects](#isegment).
+
+`} title="Retrieve all segments that are used by the specified strategy."/>
+
+
+
+Example responses
+
+### 200 OK
+
+``` json
+[
+ {
+ "id": 1,
+ "name": "my-segment",
+ "description": "a segment description",
+ "constraints": [],
+ "createdBy": "user@example.com",
+ "createdAt": "2022-04-01T14:02:25.491Z"
+ }
+]
+```
+
+### 404 Not Found
+
+No strategy with the provided id exists.
+
+
+
+
+## Replace activation strategy segments
+
+Replace the segments applied to the specified activation strategy with the provided segment list.
+
+
+
+
+
+Example responses
+
+### 201 Created
+
+The strategy's list of segments was succesfully updated.
+
+### 403 Forbidden
+
+You do not have access to edit this activation strategy.
+
+### 404 Not Found
+
+No strategy with the provided ID exists.
+
+
+
+### Payload structure
+
+Use a JSON object with the following properties to update the list of applied segments.
+
+| Property | Type | Required | Description | Example value |
+|-----------------|-------------------------------|----------|---------------------------------------------------|-----------------|
+| `projectId` | string | Yes | The ID of the feature toggle's project. | `"my-project"` |
+| `strategyId` | string | Yes | The ID of the strategy. | `"my-strategy"` |
+| `environmentId` | string | Yes | The ID of the environment. | `"development"` |
+| "segmentIds" | list of segment IDs (numbers) | Yes | The list of segment IDs to apply to the strategy. | `[]` |
## Types
@@ -157,3 +294,19 @@ export interface IConstraint {
caseInsensitive?: boolean;
}
```
+
+### `IFeatureStrategy`: strategy interface {#ifeaturestrategy}
+
+``` ts
+export interface IFeatureStrategy {
+ id: string;
+ featureName: string;
+ projectId: string;
+ environment: string;
+ strategyName: string;
+ parameters: object;
+ sortOrder?: number;
+ constraints: IConstraint[];
+ createdAt?: Date;
+}
+```