Create a decision model
POST /v1/decision-models: Saves the connection settings for a decision model.
Saves the connection settings for a decision model. Requires CREATE_DECISION_MODEL for the new model and its owner. You can register the same provider connection more than once, but each registration must have a unique UUID. Credentials are omitted from the response.
In: header
Header Parameters
Optional waiting budget in milliseconds, measured from REST servlet ingress and shared across all internal gRPC calls. Supply one decimal integer from 1 to 86400000. Omission adds no deadline. Existing shorter deadlines still apply. Expiry returns HTTP 504 before streaming starts; after streaming starts, no successful completion event is sent. Use SSE or opt into GoodMem-Stream-Terminal for an explicit terminal outcome. Retrieval work is cooperatively cancelled. An accepted mutation may still commit after timeout or disconnect; a failed response does not imply rollback.
int641 <= value <= 86400000Name shown in the console and CLI.
Optional description.
Provider used by this model. This cannot be changed after creation.
"JEV" | "LAYA" | "CLEF"Base URL of the provider, starting with http:// or https://. Do not include a query string, fragment, or username and password.
Path appended to endpointUrl when sending a request. Jev and Laya use /v1/systemone if omitted. Clef requires the path for your account and model.
Model identifier accepted by the provider.
API key for the provider, supplied in credentials.apiKey.inlineSecret with kind set to CREDENTIAL_KIND_API_KEY. May be omitted for Laya when the endpoint allows anonymous access.
{"apiKey":{"inlineSecret":"sk-1234567890abcdef","secretRef":{"uri":"vault://path/to/secret"},"headerName":"Authorization","prefix":"Bearer "},"gcpAdc":{"scopes":["https://www.googleapis.com/auth/cloud-platform"],"quotaProjectId":"my-quota-project"}}Structured credential payload describing how GoodMem should authenticate with an upstream provider.
Credential strategy — fixed to CREDENTIAL_KIND_API_KEY for this variant
Configuration when kind is CREDENTIAL_KIND_API_KEY
{"inlineSecret":"sk-1234567890abcdef","secretRef":{"uri":"vault://path/to/secret"},"headerName":"Authorization","prefix":"Bearer "}Optional annotations to aid operators (e.g., "owner=vertex")
properties <= 20Empty Object
Structured credential payload describing how GoodMem should authenticate with an upstream provider.
Credential strategy — fixed to CREDENTIAL_KIND_GCP_ADC for this variant
Configuration when kind is CREDENTIAL_KIND_GCP_ADC
{"scopes":["https://www.googleapis.com/auth/cloud-platform"],"quotaProjectId":"my-quota-project"}Optional annotations to aid operators (e.g., "owner=vertex")
properties <= 20Empty Object
Provider settings. Supported keys are image_preview (Jev only), timeout_millis, and max_response_bytes. These settings cannot change which features the model supports.
Empty Object
Labels for filtering and organization.
Empty Object
Optional version label.
Optional URL for the provider health or metrics endpoint. Must start with http:// or https://.
UUID of the principal that will own the model. If omitted, the authenticated principal becomes the owner.
uuidOptional UUID for the new model. GoodMem generates one if omitted. A UUID that is already in use returns 409; reusing connection settings is allowed.
uuidResponse Body
curl -X POST "https://your-goodmem-server.example.com/v1/decision-models" \ -H "GoodMem-Timeout-Ms: 30000" \ -H "Content-Type: application/json" \ -d '{ "credentials": { "apiKey": { "inlineSecret": "sk-1234567890abcdef", "secretRef": { "uri": "vault://path/to/secret" }, "headerName": "Authorization", "prefix": "Bearer " } } }'{
"decisionModelId": "a426a8bc-ce04-41fc-a635-cb0d9e15bae3",
"displayName": "string",
"description": "string",
"providerType": "JEV",
"endpointUrl": "string",
"apiPath": "string",
"modelIdentifier": "string",
"credentials": {
"apiKey": {
"inlineSecret": "sk-1234567890abcdef",
"secretRef": {
"uri": "vault://path/to/secret"
},
"headerName": "Authorization",
"prefix": "Bearer "
},
"gcpAdc": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"quotaProjectId": "my-quota-project"
}
},
"configuration": {},
"labels": {
"property1": "string",
"property2": "string"
},
"version": "string",
"monitoringEndpoint": "string",
"ownerId": "4d206909-730f-409a-88f6-dcfaa8fc28cc",
"capabilities": {
"questionTypes": [
"string"
],
"media": [
{
"kind": "IMAGE",
"mimeTypes": [
"string"
],
"placements": [
"string"
],
"limits": [
{
"type": "MAX_ITEMS",
"value": 0
}
]
}
],
"limits": [
{
"type": "MAX_QUESTIONS",
"value": 0
}
],
"contextBoundLimits": [
"string"
],
"semantics": [
{
"questionType": "CHOICE",
"confidence": "ADJUSTED_TOP_PROBABILITY",
"output": "CANDIDATE_IDENTIFIER"
}
],
"inputOverflow": "REJECTS"
},
"createdAt": 0,
"updatedAt": 0,
"createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
"updatedById": "d8bc6076-4141-4a88-80b9-0eb31643066f"
}