{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/oracle/main/json-schema/oracle-model-schema.json", "title": "Model", "description": "Machine-learned Model.", "x-generated": "2026-10-03", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/oracle-aiservicedocument-api-openapi.yml#/components/schemas/Model", "properties": { "aliasName": { "description": "the alias name of the model.", "type": "string" }, "compartmentId": { "description": "The compartment identifier.", "maxLength": 255, "minLength": 1, "type": "string" }, "componentModels": { "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) collection of active custom Key Value models that need to be composed.", "items": { "$ref": "#/$defs/ComponentModel" }, "maxItems": 100, "minItems": 2, "type": "array" }, "definedTags": { "additionalProperties": { "additionalProperties": { "description": "The value of the tag. Only string, integer, and boolean types are supported.\n", "type": "object" }, "description": "A key-value pair representing predefined tags' keys and values scoped to a namespace.\nFor example: `{\"bar-key\": \"value\"}`\n", "type": "object" }, "description": "Defined tags for this resource. Each key is predefined and scoped to a namespace.\nFor example: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`\n", "type": "object" }, "description": { "description": "An optional description of the model.", "maxLength": 400, "minLength": 1, "type": "string" }, "displayName": { "description": "A human-friendly name for the model, which can be changed.", "maxLength": 255, "minLength": 1, "type": "string" }, "freeformTags": { "additionalProperties": { "type": "string" }, "description": "A simple key-value pair that is applied without any predefined name, type, or scope. It exists for cross-compatibility only.\nFor example: `{\"bar-key\": \"value\"}`\n", "type": "object" }, "id": { "description": "A unique identifier that is immutable after creation.", "maxLength": 255, "minLength": 1, "type": "string" }, "inferenceUnits": { "description": "Number of replicas required for this model.", "maximum": 10, "minimum": 1, "type": "integer", "x-default-description": "When unspecified, the number of replicas for the model will be set to 1" }, "isComposedModel": { "default": false, "description": "Set to true when the model is created by using multiple key value extraction models.", "type": "boolean" }, "isQuickMode": { "default": false, "description": "Set to true when experimenting with a new model type or dataset, so model training is quick, with a predefined low number of passes through the training data.", "type": "boolean" }, "labels": { "description": "The collection of labels used to train the custom model.", "items": { "type": "string" }, "type": "array" }, "language": { "default": "ENG", "description": "The document language for model training, abbreviated according to the BCP 47 syntax.", "format": "x-obmcs-human-language", "maxLength": 50, "type": "string", "x-default-description": "when unspecified, the document language will be english" }, "lifecycleDetails": { "description": "A message describing the current state in more detail, that can provide actionable information if training failed.", "type": "string" }, "lifecycleState": { "description": "The current state of the model.", "enum": [ "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED" ], "type": "string" }, "locks": { "description": "Locks associated with this resource.", "items": { "$ref": "#/$defs/ResourceLock" }, "type": "array" }, "maxTrainingTimeInHours": { "description": "The maximum model training time in hours, expressed as a decimal fraction.", "format": "double", "type": "number" }, "metrics": { "$ref": "#/$defs/ModelMetrics" }, "modelSubType": { "$ref": "#/$defs/ModelSubType", "description": "Applicable to only PRE_TRAINED_KEY_VALUE_EXTRACTION, PRE_TRAINED_DOCUMENT_ELEMENTS_EXTRACTION.", "type": "object" }, "modelType": { "description": "The type of the Document model.", "enum": [ "KEY_VALUE_EXTRACTION", "DOCUMENT_CLASSIFICATION", "PRE_TRAINED_TEXT_EXTRACTION", "PRE_TRAINED_TABLE_EXTRACTION", "PRE_TRAINED_KEY_VALUE_EXTRACTION", "PRE_TRAINED_DOCUMENT_CLASSIFICATION", "PRE_TRAINED_DOCUMENT_ELEMENTS_EXTRACTION" ], "type": "string" }, "modelVersion": { "description": "The version of the model.", "type": "string" }, "projectId": { "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the project that contains the model.", "maxLength": 255, "minLength": 1, "type": "string" }, "systemTags": { "additionalProperties": { "additionalProperties": { "description": "The value of the tag. Only string, integer, and boolean types are supported.\n", "type": "object" }, "description": "A key-value pair representing system tags' keys and values scoped to a namespace.\nFor example: `{\"bar-key\": \"value\"}`\n", "type": "object" }, "description": "Usage of system tag keys. These predefined keys are scoped to namespaces.\nFor example: `{\"orcl-cloud\": {\"free-tier-retained\": \"true\"}}`\n", "type": "object" }, "tenancyId": { "description": "The tenancy id of the model.", "type": "string" }, "testingDataset": { "$ref": "#/$defs/Dataset" }, "timeCreated": { "description": "When the model was created, as an RFC3339 datetime string.", "format": "date-time", "type": "string" }, "timeUpdated": { "description": "When the model was updated, as an RFC3339 datetime string.", "format": "date-time", "type": "string" }, "trainedTimeInHours": { "description": "The total hours actually used for model training.", "format": "double", "type": "number" }, "trainingDataset": { "$ref": "#/$defs/Dataset" }, "validationDataset": { "$ref": "#/$defs/Dataset" } }, "required": [ "id", "compartmentId", "projectId", "modelType", "modelVersion", "timeCreated", "lifecycleState" ], "type": "object", "$defs": { "ComponentModel": { "description": "The custom model selected for Composition.", "properties": { "modelId": { "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of active custom Key Value model that need to be composed.", "type": "string" } }, "type": "object" }, "Dataset": { "description": "The base entity which is the input for creating and training a model.", "properties": { "datasetType": { "description": "The dataset type, based on where it is stored.", "enum": [ "DATA_SCIENCE_LABELING", "OBJECT_STORAGE" ], "type": "string" } }, "required": [ "datasetType" ], "type": "object" }, "DatasetSummary": { "description": "Summary of count of samples used during model training.", "properties": { "testSampleCount": { "description": "Number of samples used for testing the model.", "type": "integer" }, "trainingSampleCount": { "description": "Number of samples used for training the model.", "type": "integer" }, "validationSampleCount": { "description": "Number of samples used for validating the model.", "type": "integer" } }, "type": "object" }, "ModelMetrics": { "description": "Trained Model Metrics.", "properties": { "datasetSummary": { "$ref": "#/$defs/DatasetSummary" }, "modelType": { "description": "The type of custom model trained.", "enum": [ "KEY_VALUE_EXTRACTION", "DOCUMENT_CLASSIFICATION", "PRE_TRAINED_TEXT_EXTRACTION", "PRE_TRAINED_TABLE_EXTRACTION", "PRE_TRAINED_KEY_VALUE_EXTRACTION", "PRE_TRAINED_DOCUMENT_CLASSIFICATION", "PRE_TRAINED_DOCUMENT_ELEMENTS_EXTRACTION" ], "type": "string" } }, "required": [ "modelType" ], "type": "object" }, "ModelSubType": { "description": "Sub type model based on the model type.", "properties": { "modelType": { "description": "Sub type model based on the model type.\nThe allowed values are:\n- `PRE_TRAINED_KEY_VALUE_EXTRACTION`\n- `PRE_TRAINED_DOCUMENT_ELEMENTS_EXTRACTION`\n", "enum": [ "PRE_TRAINED_KEY_VALUE_EXTRACTION", "PRE_TRAINED_DOCUMENT_ELEMENTS_EXTRACTION" ], "type": "string" } }, "required": [ "modelType" ], "type": "object" }, "ResourceLock": { "description": "Resource locks prevent certain APIs from being called for the resource.\nA full lock prevents both updating and deleting the resource. A lock delete\nprevents deleting the resource.\n", "properties": { "compartmentId": { "description": "The lock compartment ID.", "type": "string" }, "message": { "description": "A message added by the lock creator. The message typically gives an\nindication of why the resource is locked.\n", "type": "string" }, "relatedResourceId": { "description": "The resource ID that is locking this resource. Indicates that deleting this resource removes the lock.\n", "type": "string" }, "timeCreated": { "description": "Indicates when the lock was created, in the format defined by RFC 3339.", "format": "date-time", "type": "string" }, "type": { "description": "Lock type.", "enum": [ "FULL", "DELETE" ], "type": "string" } }, "required": [ "type", "compartmentId" ], "type": "object" } } }