Edits a single change in a change request
PUT/api/admin/projects/:projectId/change-requests/:changeRequestId/changes/:changeId
This endpoint will edit one change from a change request if it matches the provided id. The edit removes previous change and inserts a new one. You should not rely on the changeId for subsequent edits and always check the most recent changeId.
Request
Path Parameters
- application/json
Body
required
changeRequestCreateSchema
- MOD1
- MOD2
- MOD3
- MOD4
- MOD5
- MOD6
- MOD7
- MOD8
- MOD9
- MOD10
- MOD11
Array [
]
Array [
]
Array [
Array [
]
]
Array [
]
oneOf
The name of this action.
Possible values: [updateSegment]
payload
object
required
Data used to create or update a segment
The ID of the segment to update.
1The name of this action.
Possible values: [deleteSegment]
payload
object
required
Required data to delete a segment.
The ID of the segment to delete.
1Update the enabled state for a feature.
The name of the feature that this change applies to.
my-best-featureThe name of this action.
Possible values: [updateEnabled]
payload
object
required
The new state of the feature.
trueOnly relevant when ALL the strategies are disabled. If true, all the disabled strategies will be enabled. If false, the default strategy will be added
trueAdd a strategy to the feature
The name of the feature that this change applies to.
my-best-featureThe name of this action.
Possible values: [addStrategy]
payload
object
required
Create a strategy configuration in a feature
The name of the strategy type
flexibleRolloutA descriptive title for the strategy
Gradual Rollout 25-ProdA toggle to disable the strategy. defaults to false. Disabled strategies are not evaluated or returned to the SDKs
falseThe order of the strategy in the list
9999constraints
object[]
required
A list of the constraints attached to the strategy. See https://docs.getunleash.io/reference/strategy-constraints
The name of the context field that this constraint should apply to.
appNameThe operator to use when evaluating this constraint. For more information about the various operators, refer to the strategy constraint operator documentation.
Possible values: [NOT_IN, IN, STR_ENDS_WITH, STR_STARTS_WITH, STR_CONTAINS, NUM_EQ, NUM_GT, NUM_GTE, NUM_LT, NUM_LTE, DATE_AFTER, DATE_BEFORE, SEMVER_EQ, SEMVER_GT, SEMVER_LT]
INWhether the operator should be case sensitive or not. Defaults to false (being case sensitive).
falseWhether the result should be negated or not. If true, will turn a true result into a false result and vice versa.
falseThe context values that should be used for constraint evaluation. Use this property instead of value for properties that accept multiple values.
["my-app","my-other-app"]The context value that should be used for constraint evaluation. Use this property instead of values for properties that only accept single values.
my-appvariants
object[]
Strategy level variants
The variant name. Must be unique for this feature flag
blue_groupThe weight is the likelihood of any one user getting this variant. It is an integer between 0 and 1000. See the section on variant weights for more information
Possible values: <= 1000
Set to fix if this variant must have exactly the weight allocated to it. If the type is variable, the weight will adjust so that the total weight of all variants adds up to 1000. Refer to the variant weight documentation.
Possible values: [variable, fix]
fixThe stickiness to use for distribution of this variant. Stickiness is how Unleash guarantees that the same user gets the same variant every time
custom.context.fieldpayload
object
Extra data configured for this variant
The type of the value. Commonly used types are string, number, json and csv.
Possible values: [json, csv, string, number]
The actual value of payload
parameters
object
required
A list of parameters for a strategy
Ids of segments to use for this strategy
[1,2]Update a strategy belonging to this feature.
The name of the feature that this change applies to.
my-best-featureThe name of this action.
Possible values: [updateStrategy]
payload
object
required
Update a strategy configuration in a feature
The ID of the strategy to update.
0103487d-8788-4cda-af59-0a68642dbc5aDelete a strategy from this feature.
The name of the feature that this change applies to.
my-best-featureThe name of this action.
Possible values: [deleteStrategy]
payload
object
required
The ID of the strategy to update.
0103487d-8788-4cda-af59-0a68642dbc5aArchive a feature.
The name of the feature that this change applies to.
my-best-featureThe name of this action.
Possible values: [archiveFeature]
Update variants for this feature.
The name of the feature that this change applies to.
my-best-featureThe name of this action.
Possible values: [patchVariant]
payload
object
required
variants
object[]
required
The variants name. Is unique for this feature flag
blue_groupThe weight is the likelihood of any one user getting this variant. It is a number between 0 and 1000. See the section on variant weights for more information
Possible values: <= 1000
Set to fix if this variant must have exactly the weight allocated to it. If the type is variable, the weight will adjust so that the total weight of all variants adds up to 1000
Possible values: [variable, fix]
variableStickiness is how Unleash guarantees that the same user gets the same variant every time
custom.context.fieldpayload
object
Extra data configured for this variant
The type of the value. Commonly used types are string, number, json and csv.
Possible values: [json, csv, string, number]
The actual value of payload
overrides
object[]
Overrides assigning specific variants to specific users. The weighting system automatically assigns users to specific groups for you, but any overrides in this list will take precedence.
The name of the context field used to determine overrides
userIdWhich values that should be overriden
["red","blue"]Reorder strategies for this feature
The name of the feature that this change applies to.
my-best-featureThe name of this action.
Possible values: [reorderStrategy]
payload
object[]
required
An array of strategies with their new sort order
The ID of the strategy
9c40958a-daac-400e-98fb-3bb438567008The new sort order of the strategy
1Add a parent feature dependency.
The name of the feature that this change applies to.
my-best-featureThe name of this action.
Possible values: [addDependency]
payload
object
required
Feature dependency on a parent feature in write model
The name of the feature we depend on.
parent_featureWhether the parent feature should be enabled. When false variants are ignored. true by default.
falseThe list of variants the parent feature should resolve to. Leave empty when you only want to check the enabled status.
["variantA","variantB"]Remove a parent feature dependency or all dependencies if no payload.
The name of the feature that this change applies to.
my-best-featureThe name of this action.
Possible values: [deleteDependency]
Responses
- 200
- 404
changeRequestSchema
- application/json
- Schema
Schema
- MOD1
- MOD2
Array [
Array [
- MOD1
- MOD2
- MOD3
- MOD4
- setStrategySortOrderSchema
Array [
]
]
]
Array [
- MOD1
- MOD2
- MOD3
- MOD4
- setStrategySortOrderSchema
Array [
]
]
Array [
]
Array [
]
Array [
]
Array [
Array [
- MOD1
- MOD2
- MOD3
- MOD4
- setStrategySortOrderSchema
Array [
]
]
]
Array [
- MOD1
- MOD2
- MOD3
- MOD4
- setStrategySortOrderSchema
Array [
]
]
Array [
]
Array [
]
Array [
]
- MOD1
- MOD2
- MOD3
oneOf
This change requests's ID.
3A title describing the change request's content.
Increasing gradual rolloutThe environment in which the changes should be applied.
developmentThe minimum number of approvals required before this change request can be applied.
2The project this change request belongs to.
unleash-projectfeatures
object[]
required
The list of features and their changes that relate to this change request.
The name of the feature
my-featureA string describing the conflicts related to this change. Only present if there are any concflicts on the feature level.
Feature has been archivedchanges
object[]
required
List of changes inside change request. This list may be empty when listing all change requests for a project.
The ID of this change.
33The kind of action that the change contains information about.
updateStrategyA description of the conflict caused by this change. Only present if there are any conflicts.
Strategy has been deletedpayload
object
required
The data required to perform this action.
oneOf
string
boolean
object
number
An array of strategies with their new sort order
The ID of the strategy
9c40958a-daac-400e-98fb-3bb438567008The new sort order of the strategy
1createdBy
object
The user who created this change.
The user's username.
The URL where the user's image can be found.
When this change was suggested
2023-07-31T13:22:03+02:00defaultChange
object
A description of a default change that will be applied with the change request to prevent invalid states.
Default changes are changes that are applied in addition to explicit user-specified changes when a change request is applied. Any default changes are applied in the background and are not a real part of the change request.
The kind of action this is.
addStrategyThe necessary data to perform this change.
{"name":"flexibleRollout","title":"","disabled":false,"segments":[],"parameters":{"groupId":"my-feature","rollout":"100","stickiness":"default"},"constraints":[{"values":["ux"],"inverted":false,"operator":"STR_CONTAINS","contextName":"userId","caseInsensitive":false}]}segments
object[]
required
The list of segments and their changes that relate to this change request.
The ID of this change.
33The kind of action that the change contains information about.
updateStrategyA description of the conflict caused by this change. Only present if there are any conflicts.
Strategy has been deletedpayload
object
required
The data required to perform this action.
oneOf
string
boolean
object
number
An array of strategies with their new sort order
The ID of the strategy
9c40958a-daac-400e-98fb-3bb438567008The new sort order of the strategy
1createdBy
object
The user who created this change.
The user's username.
The URL where the user's image can be found.
When this change was suggested
2023-07-31T13:22:03+02:00The current name of the segment
beta-usersapprovals
object[]
A list of approvals that this change request has received.
createdBy
object
required
Information about the user who gave this approval.
The ID of the user who gave this approval.
33The approving user's username.
unleash-userThe URL where the user's image can be found.
When the approval was given.
2022-12-12T12:13:24.218Zrejections
object[]
A list of rejections that this change request has received.
createdBy
object
required
Information about the user who gave this approval.
The ID of the user who gave this approval.
33The approving user's username.
unleash-userThe URL where the user's image can be found.
When the approval was given.
2022-12-12T12:13:24.218Zcomments
object[]
All comments that have been made on this change request.
The comment's ID. Unique per change request.
33The content of the comment.
This is a commentcreatedBy
object
required
Information about the user who posted the comment
The user's username.
unleash-userThe URL where the user's image can be found.
When the comment was made.
2022-12-12T12:13:24.218ZcreatedBy
object
required
The user who created this change request.
HunterThe URL of the user's profile image.
When this change request was created.
2023-07-31T13:33:02ZThe current state of the change request.
Possible values: [Draft, In review, Approved, Applied, Cancelled, Rejected]
This change requests's ID.
3A title describing the change request's content.
Increasing gradual rolloutThe environment in which the changes should be applied.
developmentThe minimum number of approvals required before this change request can be applied.
2The project this change request belongs to.
unleash-projectfeatures
object[]
required
The list of features and their changes that relate to this change request.
The name of the feature
my-featureA string describing the conflicts related to this change. Only present if there are any concflicts on the feature level.
Feature has been archivedchanges
object[]
required
List of changes inside change request. This list may be empty when listing all change requests for a project.
The ID of this change.
33The kind of action that the change contains information about.
updateStrategyA description of the conflict caused by this change. Only present if there are any conflicts.
Strategy has been deletedpayload
object
required
The data required to perform this action.
oneOf
string
boolean
object
number
An array of strategies with their new sort order
The ID of the strategy
9c40958a-daac-400e-98fb-3bb438567008The new sort order of the strategy
1createdBy
object
The user who created this change.
The user's username.
The URL where the user's image can be found.
When this change was suggested
2023-07-31T13:22:03+02:00defaultChange
object
A description of a default change that will be applied with the change request to prevent invalid states.
Default changes are changes that are applied in addition to explicit user-specified changes when a change request is applied. Any default changes are applied in the background and are not a real part of the change request.
The kind of action this is.
addStrategyThe necessary data to perform this change.
{"name":"flexibleRollout","title":"","disabled":false,"segments":[],"parameters":{"groupId":"my-feature","rollout":"100","stickiness":"default"},"constraints":[{"values":["ux"],"inverted":false,"operator":"STR_CONTAINS","contextName":"userId","caseInsensitive":false}]}segments
object[]
required
The list of segments and their changes that relate to this change request.
The ID of this change.
33The kind of action that the change contains information about.
updateStrategyA description of the conflict caused by this change. Only present if there are any conflicts.
Strategy has been deletedpayload
object
required
The data required to perform this action.
oneOf
string
boolean
object
number
An array of strategies with their new sort order
The ID of the strategy
9c40958a-daac-400e-98fb-3bb438567008The new sort order of the strategy
1createdBy
object
The user who created this change.
The user's username.
The URL where the user's image can be found.
When this change was suggested
2023-07-31T13:22:03+02:00The current name of the segment
beta-usersapprovals
object[]
A list of approvals that this change request has received.
createdBy
object
required
Information about the user who gave this approval.
The ID of the user who gave this approval.
33The approving user's username.
unleash-userThe URL where the user's image can be found.
When the approval was given.
2022-12-12T12:13:24.218Zrejections
object[]
A list of rejections that this change request has received.
createdBy
object
required
Information about the user who gave this approval.
The ID of the user who gave this approval.
33The approving user's username.
unleash-userThe URL where the user's image can be found.
When the approval was given.
2022-12-12T12:13:24.218Zcomments
object[]
All comments that have been made on this change request.
The comment's ID. Unique per change request.
33The content of the comment.
This is a commentcreatedBy
object
required
Information about the user who posted the comment
The user's username.
unleash-userThe URL where the user's image can be found.
When the comment was made.
2022-12-12T12:13:24.218ZcreatedBy
object
required
The user who created this change request.
HunterThe URL of the user's profile image.
When this change request was created.
2023-07-31T13:33:02ZThe current state of the change request.
Possible values: [Scheduled]
schedule
object
required
A schedule for a change request's application. The schedule can either be pending, failed, or suspended. The schedule will always contain the state of the schedule and the last scheduled time, but other data varies between the different states.
oneOf
A pending schedule for a change request.
When this change request will be applied.
2023-07-31T13:33:02ZThe status of the schedule.
Possible values: [pending]
pendingA failed schedule for a change request.
When Unleash last attempted to apply this change request.
2023-07-31T13:33:02ZThe status of the schedule.
Possible values: [failed]
failedThe reason the scheduled failed to apply.
conflictsThe reason the scheduled failed to apply. Deprecated in favor of the reason property.
conflictsA suspended schedule for a change request.
When Unleash would have attempted to apply this change request if the schedule was not suspended.
2023-07-31T13:33:02ZThe status of the schedule.
Possible values: [suspended]
suspendedWhy the schedule was suspended.
The user who scheduled this change request (user id: 123) has been deleted from this Unleash instance.The requested resource was not found.
- application/json
- Schema
- Example (from schema)
Schema
The ID of the error instance
9c40958a-daac-400e-98fb-3bb438567008The name of the error kind
NotFoundErrorA description of what went wrong.
Could not find the addon with ID "12345".{
"id": "9c40958a-daac-400e-98fb-3bb438567008",
"name": "NotFoundError",
"message": "Could not find the addon with ID \"12345\"."
}