Update a JML role
Update a JML role
Path Parameters
- role_id string required
Header Parameters
- SlashID-OrgID string required
The organization ID
Example: af5fbd30-7ce7-4548-8b30-4cd59cb2aba1
- application/json
Request Body required
- name string
Possible values:
<= 120 characters - description string
Possible values:
<= 1000 characters - owner string
entitlements object[]
Possible values:
<= 200Replaces the whole list.
type string requiredPossible values: [
grant,revoke,disable,notify,ticket,webhook,condition,provision,role,access_review]Step vocabulary. grant/revoke are only valid in the access phase (grant is additionally rejected on a leaver policy); the rest are valid in before/after.
roleassigns every entitlement of a JMLRole; access phase only, joiner and mover.access_reviewopens and starts an access review of the person the event is about, configured by its string params:reviewer(one email; that person reviews), else the person's manager, which requiresfallback_reviewer(email) for anyone without one; one of the two must be set.review_window_days(1-365, default 14). While that review is open, the step opens no second one for the same person. On a leaver the review usually finds nothing left to decide once the access phase has revoked it, and closes asnothing_to_review.id stringPossible values: Value must match regular expression
^[a-z0-9][a-z0-9_-]{0,63}$Stable identity of the step; never regenerated once assigned. Optional until the policy contains its first reference: a step with no id still compiles, using its position in the phase ("before-0", etc.) as its action id. Once ANY step carries a
subject, agranting_id_ref, a ValueRef param or a{{.steps.…}}template, every enabled step needs an id, because references resolve through them.Uniqueness is enforced over EFFECTIVE ids across all three phases: an explicit id may not equal another step's positional id either (an explicit "before-1" beside an unnamed second
beforestep is rejected). It must not equal the reserved id "access-policy".name stringOptional display label for the step. Defaults to the catalogue label for the step's
typewhen omitted.connection stringUsed by grant, revoke, disable, provision. For an enabled grant/revoke/disable step with no
subjectbinding, the connection's platform must match the platform of EVERYtrigger.source_connectionsentry — such a step acts on the triggering identity, and the engine resolves the provider action from that identity's platform, so a cross-provider step would never run. Bind asubjectfrom a provision step, or split the policy per source. Unrelated toprovision, whose target platform is the step's own.granting_type stringUsed by grant, revoke — e.g. "okta_group".
granting_id stringUsed by grant, revoke. Exactly one of
granting_idandgranting_id_refis set.granting_id_ref object
A reference to a value that is not known when the policy is authored. Exactly one origin is set:
from_steptogether withoutput(an earlier step's declared output — see the step catalogue'soutputs), orfrom_trigger(a value of the triggering identity). Setting both, neither, orfrom_stepwithoutoutputis rejected on write.from_triggernames either one of the well-known lifecycle values (identifier,display_name,email,source_identifier) orattributes.<key>, where<key>must be discoverable on EVERY trigger source connection.from_step stringThe
idof an earlier step in the policy's chain.output stringThe name of an output that step declares.
from_trigger stringA value of the triggering identity, e.g. "email" or "attributes.department".
subject object
A reference to a value that is not known when the policy is authored. Exactly one origin is set:
from_steptogether withoutput(an earlier step's declared output — see the step catalogue'soutputs), orfrom_trigger(a value of the triggering identity). Setting both, neither, orfrom_stepwithoutoutputis rejected on write.from_triggernames either one of the well-known lifecycle values (identifier,display_name,email,source_identifier) orattributes.<key>, where<key>must be discoverable on EVERY trigger source connection.from_step stringThe
idof an earlier step in the policy's chain.output stringThe name of an output that step declares.
from_trigger stringA value of the triggering identity, e.g. "email" or "attributes.department".
role_id stringUsed by role. The JMLRole whose entitlements are granted.
target stringUsed by provision — the kind of resource to create, e.g. "aws_account". See JMLSource's description for the set supported in this release.
channel stringUsed by notify — e.g. "email", "slack".
to stringUsed by notify. A literal recipient (email address, phone number, Slack channel) — role words like "manager" are rejected at compile time; there is no recipient templating.
provider stringUsed by ticket — e.g. "jira", "servicenow".
params object
Freeform per-step configuration for step types with no typed fields of their own (webhook, condition), plus optional detail for ones that do (ticket). A value may be a ValueRef object instead of a literal, binding the parameter to an earlier step's output or to a value of the triggering identity; the engine resolves it at run time so the provider always receives a literal.
A ValueRef param is valid only on the step types whose compiled action carries bindings — provision, grant, revoke, disable. On notify, ticket, webhook and condition it is rejected; reference an earlier step from those steps' template fields instead (
{{.steps.<id>.<output>}}, with-in the id written as_).enabled booleanDefault value:
trueWhen false the step is kept in the source but skipped entirely at compile time — it produces no action node. Lets a step be turned off without deleting it. Omitted means enabled.
- 200
- 400
- 404
- 409
Updated
- application/json
- Schema
- Example (from schema)
Schema
meta object
pagination object
limit integeroffset integertotal_count int64cursor_pagination object
Cursors are opaque. Follow the tokens the server returns; never construct, parse or modify one.
limit integernext_cursor stringOpaque token addressing the next page. Absent on the last page.
prev_cursor stringOpaque token addressing the previous page. Absent on the first page.
last_cursor stringOpaque token addressing the final page directly, so a client can jump to the end without a total count.
total_count int64Total number of matching items. Returned on the FIRST page only; clients cache it for the remainder of the walk.
errors object[]
httpcode integermessage stringcode stringMachine-readable reason, present only for errors that define one. Values today:
unserved_org_region(the organization is homed in a region this deployment does not serve),wrong_region(the request must be sent to the organization's home region),region_route_missing(this instance has no route to the organization's home region).result object
id stringname stringdescription stringowner stringPerson id of the owner. Defaults to created_by.
entitlements object[]
Steps of type
grantonly in this release.type stringPossible values: [
grant,revoke,disable,notify,ticket,webhook,condition,provision,role,access_review]Step vocabulary. grant/revoke are only valid in the access phase (grant is additionally rejected on a leaver policy); the rest are valid in before/after.
roleassigns every entitlement of a JMLRole; access phase only, joiner and mover.access_reviewopens and starts an access review of the person the event is about, configured by its string params:reviewer(one email; that person reviews), else the person's manager, which requiresfallback_reviewer(email) for anyone without one; one of the two must be set.review_window_days(1-365, default 14). While that review is open, the step opens no second one for the same person. On a leaver the review usually finds nothing left to decide once the access phase has revoked it, and closes asnothing_to_review.id stringPossible values: Value must match regular expression
^[a-z0-9][a-z0-9_-]{0,63}$Stable identity of the step; never regenerated once assigned. Optional until the policy contains its first reference: a step with no id still compiles, using its position in the phase ("before-0", etc.) as its action id. Once ANY step carries a
subject, agranting_id_ref, a ValueRef param or a{{.steps.…}}template, every enabled step needs an id, because references resolve through them.Uniqueness is enforced over EFFECTIVE ids across all three phases: an explicit id may not equal another step's positional id either (an explicit "before-1" beside an unnamed second
beforestep is rejected). It must not equal the reserved id "access-policy".name stringOptional display label for the step. Defaults to the catalogue label for the step's
typewhen omitted.connection stringUsed by grant, revoke, disable, provision. For an enabled grant/revoke/disable step with no
subjectbinding, the connection's platform must match the platform of EVERYtrigger.source_connectionsentry — such a step acts on the triggering identity, and the engine resolves the provider action from that identity's platform, so a cross-provider step would never run. Bind asubjectfrom a provision step, or split the policy per source. Unrelated toprovision, whose target platform is the step's own.granting_type stringUsed by grant, revoke — e.g. "okta_group".
granting_id stringUsed by grant, revoke. Exactly one of
granting_idandgranting_id_refis set.granting_id_ref object
A reference to a value that is not known when the policy is authored. Exactly one origin is set:
from_steptogether withoutput(an earlier step's declared output — see the step catalogue'soutputs), orfrom_trigger(a value of the triggering identity). Setting both, neither, orfrom_stepwithoutoutputis rejected on write.from_triggernames either one of the well-known lifecycle values (identifier,display_name,email,source_identifier) orattributes.<key>, where<key>must be discoverable on EVERY trigger source connection.from_step stringThe
idof an earlier step in the policy's chain.output stringThe name of an output that step declares.
from_trigger stringA value of the triggering identity, e.g. "email" or "attributes.department".
subject object
A reference to a value that is not known when the policy is authored. Exactly one origin is set:
from_steptogether withoutput(an earlier step's declared output — see the step catalogue'soutputs), orfrom_trigger(a value of the triggering identity). Setting both, neither, orfrom_stepwithoutoutputis rejected on write.from_triggernames either one of the well-known lifecycle values (identifier,display_name,email,source_identifier) orattributes.<key>, where<key>must be discoverable on EVERY trigger source connection.from_step stringThe
idof an earlier step in the policy's chain.output stringThe name of an output that step declares.
from_trigger stringA value of the triggering identity, e.g. "email" or "attributes.department".
role_id stringUsed by role. The JMLRole whose entitlements are granted.
target stringUsed by provision — the kind of resource to create, e.g. "aws_account". See JMLSource's description for the set supported in this release.
channel stringUsed by notify — e.g. "email", "slack".
to stringUsed by notify. A literal recipient (email address, phone number, Slack channel) — role words like "manager" are rejected at compile time; there is no recipient templating.
provider stringUsed by ticket — e.g. "jira", "servicenow".
params object
Freeform per-step configuration for step types with no typed fields of their own (webhook, condition), plus optional detail for ones that do (ticket). A value may be a ValueRef object instead of a literal, binding the parameter to an earlier step's output or to a value of the triggering identity; the engine resolves it at run time so the provider always receives a literal.
A ValueRef param is valid only on the step types whose compiled action carries bindings — provision, grant, revoke, disable. On notify, ticket, webhook and condition it is rejected; reference an earlier step from those steps' template fields instead (
{{.steps.<id>.<output>}}, with-in the id written as_).enabled booleanDefault value:
trueWhen false the step is kept in the source but skipped entirely at compile time — it produces no action node. Lets a step be turned off without deleting it. Omitted means enabled.
created_by stringcreated_at date-timeupdated_by stringupdated_at date-time
{
"meta": {
"pagination": {
"limit": 0,
"offset": 0,
"total_count": 0
},
"cursor_pagination": {
"limit": 0,
"next_cursor": "string",
"prev_cursor": "string",
"last_cursor": "string",
"total_count": 0
}
},
"errors": [
{
"httpcode": 0,
"message": "string",
"code": "string"
}
],
"result": {
"id": "string",
"name": "string",
"description": "string",
"owner": "string",
"entitlements": [
{
"type": "grant",
"id": "string",
"name": "string",
"connection": "string",
"granting_type": "string",
"granting_id": "string",
"granting_id_ref": {
"from_step": "string",
"output": "string",
"from_trigger": "string"
},
"subject": {
"from_step": "string",
"output": "string",
"from_trigger": "string"
},
"role_id": "string",
"target": "string",
"channel": "string",
"to": "string",
"provider": "string",
"params": {},
"enabled": true
}
],
"created_by": "string",
"created_at": "2005-12-24T18:29:30.033157Z",
"updated_by": "string",
"updated_at": "2005-12-24T18:29:30.033157Z"
}
}
Bad Request
- application/json
- Schema
- Example (from schema)
Schema
meta object
pagination object
limit integeroffset integertotal_count int64cursor_pagination object
Cursors are opaque. Follow the tokens the server returns; never construct, parse or modify one.
limit integernext_cursor stringOpaque token addressing the next page. Absent on the last page.
prev_cursor stringOpaque token addressing the previous page. Absent on the first page.
last_cursor stringOpaque token addressing the final page directly, so a client can jump to the end without a total count.
total_count int64Total number of matching items. Returned on the FIRST page only; clients cache it for the remainder of the walk.
errors object[]
httpcode integermessage stringcode stringMachine-readable reason, present only for errors that define one. Values today:
unserved_org_region(the organization is homed in a region this deployment does not serve),wrong_region(the request must be sent to the organization's home region),region_route_missing(this instance has no route to the organization's home region).
{
"meta": {
"pagination": {
"limit": 0,
"offset": 0,
"total_count": 0
},
"cursor_pagination": {
"limit": 0,
"next_cursor": "string",
"prev_cursor": "string",
"last_cursor": "string",
"total_count": 0
}
},
"errors": [
{
"httpcode": 0,
"message": "string",
"code": "string"
}
]
}
Not Found
- application/json
- Schema
- Example (from schema)
Schema
meta object
pagination object
limit integeroffset integertotal_count int64cursor_pagination object
Cursors are opaque. Follow the tokens the server returns; never construct, parse or modify one.
limit integernext_cursor stringOpaque token addressing the next page. Absent on the last page.
prev_cursor stringOpaque token addressing the previous page. Absent on the first page.
last_cursor stringOpaque token addressing the final page directly, so a client can jump to the end without a total count.
total_count int64Total number of matching items. Returned on the FIRST page only; clients cache it for the remainder of the walk.
errors object[]
httpcode integermessage stringcode stringMachine-readable reason, present only for errors that define one. Values today:
unserved_org_region(the organization is homed in a region this deployment does not serve),wrong_region(the request must be sent to the organization's home region),region_route_missing(this instance has no route to the organization's home region).
{
"meta": {
"pagination": {
"limit": 0,
"offset": 0,
"total_count": 0
},
"cursor_pagination": {
"limit": 0,
"next_cursor": "string",
"prev_cursor": "string",
"last_cursor": "string",
"total_count": 0
}
},
"errors": [
{
"httpcode": 0,
"message": "string",
"code": "string"
}
]
}
Conflict
- application/json
- Schema
- Example (from schema)
Schema
meta object
pagination object
limit integeroffset integertotal_count int64cursor_pagination object
Cursors are opaque. Follow the tokens the server returns; never construct, parse or modify one.
limit integernext_cursor stringOpaque token addressing the next page. Absent on the last page.
prev_cursor stringOpaque token addressing the previous page. Absent on the first page.
last_cursor stringOpaque token addressing the final page directly, so a client can jump to the end without a total count.
total_count int64Total number of matching items. Returned on the FIRST page only; clients cache it for the remainder of the walk.
errors object[]
httpcode integermessage stringcode stringMachine-readable reason, present only for errors that define one. Values today:
unserved_org_region(the organization is homed in a region this deployment does not serve),wrong_region(the request must be sent to the organization's home region),region_route_missing(this instance has no route to the organization's home region).
{
"meta": {
"pagination": {
"limit": 0,
"offset": 0,
"total_count": 0
},
"cursor_pagination": {
"limit": 0,
"next_cursor": "string",
"prev_cursor": "string",
"last_cursor": "string",
"total_count": 0
}
},
"errors": [
{
"httpcode": 0,
"message": "string",
"code": "string"
}
]
}