{
  "enumDefs": [
    {
      "category": "ENUM",
      "version": 1,
      "name": "ml_model_deployment_status",
      "description": "The deployment status of a ML model build",
      "typeVersion": "1.0",
      "elementDefs": [
        {
          "value": "unknown",
          "ordinal": 0
        },
        {
          "value": "deploying",
          "ordinal": 1
        },
        {
          "value": "deployed",
          "ordinal": 2
        },
        {
          "value": "stopping",
          "ordinal": 3
        },
        {
          "value": "stopped",
          "ordinal": 4
        }
      ]
    }
  ],
  "structDefs": [],
  "classificationDefs": [],
  "entityDefs": [
    {
      "name": "ml_project",
      "description": "Represent a ML Project that contains source code and related resources",
      "superTypes": [
        "DataSet"
      ],
      "serviceType": "ml",
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name": "metadata",
          "description": "Contains key-value pairs that provide project metadata",
          "typeName": "map<string,string>",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional": true,
          "isUnique": false,
          "options": {
            "isAppendOnPartialUpdate": "true"
          }
        },
        {
          "name": "createTime",
          "typeName": "date",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "modifiedTime",
          "typeName": "date",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        }
      ]
    },
    {
      "name": "ml_model_build",
      "description": "An immutable container image built from a ML project and its training data",
      "superTypes": [
        "DataSet"
      ],
      "serviceType": "ml",
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name": "version",
          "typeName": "int",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": false,
          "isUnique": false
        },
        {
          "name": "metadata",
          "description": "Contains key-value pairs that provide metadata",
          "typeName": "map<string,string>",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional": true,
          "isUnique": false,
          "options": {
            "isAppendOnPartialUpdate": "true"
          }
        },
        {
          "name": "defaultCpuMillicores",
          "typeName": "int",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "defaultMemoryMb",
          "typeName": "int",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "defaultGpus",
          "typeName": "int",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "imageTag",
          "description": "Include URL to get the container image of this model build",
          "typeName": "string",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": false,
          "includeInNotification": false
        },
        {
          "name": "imageHash",
          "description": "Image signature. Combined with imageTag to uniquely identify a model build",
          "typeName": "string",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": false,
          "includeInNotification": false
        },
        {
          "name": "exampleRequest",
          "description": "request example to the model as a JSON string",
          "typeName": "string",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": false,
          "includeInNotification": false
        },
        {
          "name": "exampleResponse",
          "description": "response example from the model as a JSON string",
          "typeName": "string",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": false,
          "includeInNotification": false
        },
        {
          "name": "createTime",
          "typeName": "date",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": true,
          "isUnique": false
        }
      ]
    },
    {
      "name": "ml_model_deployment",
      "description": "A deployed instance of a model build",
      "superTypes": [
        "DataSet"
      ],
      "serviceType": "ml",
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name": "createTime",
          "typeName": "date",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional": false,
          "isUnique": false
        },
        {
          "name": "deployedTime",
          "typeName": "date",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional": false,
          "isUnique": false
        },
        {
          "name": "metadata",
          "description": "Contains key-value pairs that provide metadata",
          "typeName": "map<string,string>",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional": true,
          "isUnique": false,
          "options": {
            "isAppendOnPartialUpdate": "true"
          }
        },
        {
          "name": "modelEndpointURL",
          "description": "The URL to receive request and send back prediction",
          "typeName": "string",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": false,
          "includeInNotification": false
        },
        {
          "name": "status",
          "typeName": "ml_model_deployment_status",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": false,
          "isUnique": false
        },
        {
          "name": "cpuMillicores",
          "typeName": "int",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional": false,
          "isUnique": false
        },
        {
          "name": "memoryMb",
          "typeName": "int",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "gpus",
          "typeName": "int",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional": true,
          "isUnique": false
        },
        {
          "name": "replicas",
          "typeName": "int",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional": true,
          "isUnique": false
        }
      ]
    },
    {
      "name": "ml_project_create_process",
      "description": "process that creates a ML project",
      "superTypes": [
        "Process"
      ],
      "serviceType": "ml",
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name": "userName",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": false,
          "isUnique": false
        }
      ]
    },
    {
      "name": "ml_model_train_build_process",
      "description": "process that trains a model and builds an immutable model build",
      "superTypes": [
        "Process"
      ],
      "serviceType": "ml",
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name": "userName",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": false,
          "isUnique": false
        }
      ]
    },
    {
      "name": "ml_model_deploy_process",
      "description": "process that deploys a model build and creates replicated instances",
      "superTypes": [
        "Process"
      ],
      "serviceType": "ml",
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name": "userName",
          "typeName": "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional": false,
          "isUnique": false
        }
      ]
    }
  ],
  "relationshipDefs": [
    {
      "name": "ml_project_model_build",
      "serviceType": "ml",
      "typeVersion": "1.0",
      "relationshipCategory": "COMPOSITION",
      "relationshipLabel": "__ml_project.builds",
      "endDef1": {
        "type": "ml_project",
        "name": "builds",
        "isContainer": true,
        "cardinality": "SET"
      },
      "endDef2": {
        "type": "ml_model_build",
        "name": "project",
        "isContainer": false,
        "cardinality": "SINGLE"
      },
      "propagateTags": "NONE"
    },
    {
      "name": "ml_build_deployment",
      "serviceType": "ml",
      "typeVersion": "1.0",
      "relationshipCategory": "COMPOSITION",
      "relationshipLabel": "__ml_build.deployments",
      "endDef1": {
        "type": "ml_model_build",
        "name": "deployments",
        "isContainer": true,
        "cardinality": "SET"
      },
      "endDef2": {
        "type": "ml_model_deployment",
        "name": "build",
        "isContainer": false,
        "cardinality": "SINGLE"
      },
      "propagateTags": "NONE"
    }
  ]
}
