Skip to content

Set an enrollment's notification address

PATCH
/api/certs/service/enrollments/{id}/notification-email
curl --request PATCH \
--url https://example.com/api/certs/service/enrollments/example/notification-email \
--header 'Content-Type: application/json' \
--header 'X-Ssoossh-Key-Secret: <X-Ssoossh-Key-Secret>' \
--data '{}'

Points every notification about this enrollment at one address instead of fanning out to every holder of its service account. An empty value clears it and restores fan-out.

This exists for the cases fan-out cannot serve: a service account whose holders have never logged in reaches nobody, an identity provider that releases no email claim silences every holder, and a large holder set turns every redemption into a mailshot where a team alias would do.

Allowed to any holder of the enrollment’s service account, and to SOC operators. Auditor is not enough: it is a read role, and this write redirects every future message about a credential.

id
required
string

The enrollment’s UUID

The address, or empty to clear it

Media typeapplication/json
One of:
object

Example generated

{}

The stored address

Media typeapplication/json
object
data
required
object
notification_email

NotificationEmail is the address every notification about this enrollment goes to. Empty clears it, restoring fan-out to every holder of the service account.

No omitempty: an absent field and an empty one must mean the same thing here, because clearing the address is the whole reason to send an empty one.

string
error
string

Example generated

{
"data": {
"notification_email": "example"
},
"error": "example"
}

Not a valid email address

Media typeapplication/json
object
data

Data is always null on an error response.

error
required

Error is a human-readable message. Branch on the HTTP status rather than this string; it is for humans and logs.

string
error_code
required

ErrorCode is a machine-readable error classifier. One of the error_code constants from internal/apitypes; use this to decide whether to retry or branch on the failure mode.

string

Example

{
"error": "certificate request \"9f1c…\" not found",
"error_code": "not_found"
}

No valid session

Media typeapplication/json
object
data

Data is always null on an error response.

error
required

Error is a human-readable message. Branch on the HTTP status rather than this string; it is for humans and logs.

string
error_code
required

ErrorCode is a machine-readable error classifier. One of the error_code constants from internal/apitypes; use this to decide whether to retry or branch on the failure mode.

string

Example

{
"error": "certificate request \"9f1c…\" not found",
"error_code": "not_found"
}

Not a holder of the service account

Media typeapplication/json
object
data

Data is always null on an error response.

error
required

Error is a human-readable message. Branch on the HTTP status rather than this string; it is for humans and logs.

string
error_code
required

ErrorCode is a machine-readable error classifier. One of the error_code constants from internal/apitypes; use this to decide whether to retry or branch on the failure mode.

string

Example

{
"error": "certificate request \"9f1c…\" not found",
"error_code": "not_found"
}

No such enrollment

Media typeapplication/json
object
data

Data is always null on an error response.

error
required

Error is a human-readable message. Branch on the HTTP status rather than this string; it is for humans and logs.

string
error_code
required

ErrorCode is a machine-readable error classifier. One of the error_code constants from internal/apitypes; use this to decide whether to retry or branch on the failure mode.

string

Example

{
"error": "certificate request \"9f1c…\" not found",
"error_code": "not_found"
}