User Enrollments
package goodmem // import "fury.io/pairsys/goodmem"One-time human-user enrollment completion.
Methods are called as client.UserEnrollments().<Method>(ctx, ...) on a *goodmem.Client. Service: UserEnrollmentsService.
Index
type UserEnrollmentsService
type UserEnrollmentsService struct{ … }
Access this service as client.UserEnrollments() on a *goodmem.Client. Its methods follow.
func (s *UserEnrollmentsService) Complete
func (s *UserEnrollmentsService) Complete(ctx context.Context, req *models.CompleteUserEnrollmentRequest) (*models.CompleteUserEnrollmentResponse, error)
Exchanges a one-time enrollment credential for the human's initial self-owned API key. This endpoint does not use ordinary API-key authentication. Omit both optional key fields for server generation; a fresh response discloses the raw key exactly once and cannot be safely retried after an ambiguous outcome. Supply and retain both fields for client mode, where only an exact tuple retry is safe and raw material is never echoed. Status precedence is request-shape errors (400), then the same generic authentication failure for every nonblank unusable enrollment (401); key conflicts or concurrent lifecycle winners return 409, rate limits return 429, and unexpected failures return 500.
HTTP — POST /v1/user-enrollments:complete
Parameters
ctx(context.Context) — carries the deadline and cancellation signal for the call.req(*models.CompleteUserEnrollmentRequest) — the request payload. The linked type documents every field and its JSON wire name.
Returns — (*models.CompleteUserEnrollmentResponse, error)
Example
completed, err := client.UserEnrollments().Complete(
ctx,
&models.CompleteUserEnrollmentRequest{EnrollmentToken: "gme_..."},
)
if err != nil {
log.Fatal(err)
}
// Server-generated raw API keys are disclosed only on fresh completion.
_ = completed.RawAPIKeytype CompleteUserEnrollmentRequest
type CompleteUserEnrollmentRequest struct{ … }
Exchanges one enrollment credential for the target human's initial API key. Omit both apiKeyId and rawApiKey for server-generated key material, or supply both for exact-retry-safe client-generated completion; supplying only one is invalid.
EnrollmentToken(string, wireenrollmentToken) — Required one-time enrollment credential. Never log or persist it.APIKeyID(string, optional, wireapiKeyId) — Optional client-generated API-key UUID retained for exact retries. Must be supplied together with rawApiKey, or both fields must be omitted.RawAPIKey(string, optional, wirerawApiKey) — Optional canonical client-generated API key. Must be supplied together with apiKeyId, never logged, and retained for exact retries; omit both fields for server generation.
type CompleteUserEnrollmentResponse
type CompleteUserEnrollmentResponse struct{ … }
Initial API-key metadata, exact-retry classification, and one-time raw key material only for a fresh server-generated completion. Client-supplied keys are never echoed.
APIKey(models.ApiKeyResponse, wireapiKey) — OUTPUT_ONLY; metadata for the newly published initial API key.AlreadyCompleted(bool, wirealreadyCompleted) — OUTPUT_ONLY; true when the exact completion tuple already committed.RawAPIKey(string, optional, wirerawApiKey) — OUTPUT_ONLY; one-time raw API key returned only by a fresh server-generated completion. Omitted for client-supplied completion and every replay.