{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/oracle/main/json-schema/oracle-create-model-details-schema.json",
  "title": "CreateModelDetails",
  "description": "The information needed to create a new 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/CreateModelDetails",
  "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) list 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": {
      "default": "The description of the Model.",
      "description": "An optional description of the model.",
      "maxLength": 400,
      "minLength": 1,
      "type": "string"
    },
    "displayName": {
      "default": "The display name of the model.",
      "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"
    },
    "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"
    },
    "isQuickMode": {
      "default": false,
      "description": "Set to true when experimenting with a new model type or dataset, so the model training is quick, with a predefined low number of passes through the training data.",
      "type": "boolean"
    },
    "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"
    },
    "maxTrainingTimeInHours": {
      "description": "The maximum model training time in hours, expressed as a decimal fraction.",
      "format": "double",
      "type": "number"
    },
    "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.",
      "type": "string",
      "x-obmcs-enumref": "#/definitions/Model/modelType"
    },
    "modelVersion": {
      "description": "The model version",
      "maxLength": 255,
      "minLength": 1,
      "type": "string",
      "x-default-description": "If not provided, a default one will be generated by the service."
    },
    "projectId": {
      "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the project that contains the model.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "testingDataset": {
      "$ref": "#/$defs/Dataset"
    },
    "trainingDataset": {
      "$ref": "#/$defs/Dataset"
    },
    "validationDataset": {
      "$ref": "#/$defs/Dataset"
    }
  },
  "required": [
    "modelType",
    "compartmentId",
    "projectId"
  ],
  "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"
    },
    "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"
    }
  }
}