Rotate now.
curl --request POST \ --url https://stratum.example.com/v1/projects/example/secrets/example/rotate \ --header 'Authorization: Bearer <token>'Marks the schedule due; the secrets reconciler runs the rotation on its
next pass (within a minute) and the schedule’s lastRotation* fields
report the outcome. Cedar-gated on secrets:RotateSecret. 404 when the
secret has no schedule.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”Rotation requested.
A secret’s rotation schedule (0–1 per secret). At 2.0
the rotator is a built-in: iam_access_key (a service account’s signing
key), s3_access_key, or db_master (a Stratum Database instance’s
master password, the service keeps one on a password it
generated; set one yourself to rotate a password you supplied). The
platform decides WHEN (this schedule, run by
the secrets reconciler) and the built-in decides HOW. A rotation puts the
new credential as PENDING, verifies it authenticates, promotes it to
CURRENT, and retires the previous credential after
rotationWindowHours. A failure before promote leaves CURRENT
untouched and revokes the new credential again.
object
The credential owner the rotator acts on — a service account id or ARN for iam_access_key; the S3 access-key owner for s3_access_key; the database instance id or ARN for db_master, set on that instance’s own master secret. Must belong to the secret’s project.
Standard 5-field cron (minute hour day-of-month month day-of-week), e.g. 0 3 1 * *.
How long the previous credential stays valid after a promote, and how long a rotation may take before it is failed as stuck (1–168, default 6).
Set by POST.../rotate; cleared when the rotation starts.
Example
{ "rotationType": "iam_access_key", "lastRotationResult": "success"}Authenticated but not authorized.
object
The findings of a rejected IAM policy document (custom and resource policies).
One finding of a rejected IAM policy document. A rejection lists every finding, so the author fixes the document in one round trip.
object
The finding, e.g. INVALID_DOCUMENT, UNKNOWN_ACTION, ACTION_NOT_APPLICABLE.
Index of the statement at fault; -1 for the document as a whole.
The offending action, where one is at fault (ACTION_NOT_APPLICABLE).
Field errors, for codes that carry them: each problem at its field
(see FieldError). Documented on the responses that set it, e.g.
approveNodeJoin’s INVALID_INPUT and JOIN_APPROVAL_REFUSED.
Absent otherwise.
One field’s problem, the stage-2 installer API’s shape.
field is the field’s path, message what is wrong with it.
object
The field’s path, e.g. links[0].interface, disks[1].confirm,
mgmt.address or role; empty for the whole request.
Structured facts about the refusal, for codes that carry them. The
shape is fixed per code and documented on the response that answers
it, e.g. IMAGE_POOL_MISMATCH (see ImagePoolMismatchDetails) and
IMAGE_IN_USE. Absent for codes that carry none.
object
Example
{ "issues": [ { "code": "ACTION_NOT_APPLICABLE", "action": "compute:CreateVpc" } ]}Resource not found.
object
The findings of a rejected IAM policy document (custom and resource policies).
One finding of a rejected IAM policy document. A rejection lists every finding, so the author fixes the document in one round trip.
object
The finding, e.g. INVALID_DOCUMENT, UNKNOWN_ACTION, ACTION_NOT_APPLICABLE.
Index of the statement at fault; -1 for the document as a whole.
The offending action, where one is at fault (ACTION_NOT_APPLICABLE).
Field errors, for codes that carry them: each problem at its field
(see FieldError). Documented on the responses that set it, e.g.
approveNodeJoin’s INVALID_INPUT and JOIN_APPROVAL_REFUSED.
Absent otherwise.
One field’s problem, the stage-2 installer API’s shape.
field is the field’s path, message what is wrong with it.
object
The field’s path, e.g. links[0].interface, disks[1].confirm,
mgmt.address or role; empty for the whole request.
Structured facts about the refusal, for codes that carry them. The
shape is fixed per code and documented on the response that answers
it, e.g. IMAGE_POOL_MISMATCH (see ImagePoolMismatchDetails) and
IMAGE_IN_USE. Absent for codes that carry none.
object
Example
{ "issues": [ { "code": "ACTION_NOT_APPLICABLE", "action": "compute:CreateVpc" } ]}