{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-sagemaker-model.json",
  "title": "AWSSageMakerModelProperties",
  "description": "Resource Type definition for AWS::SageMaker::Model. Source:- No source definition found, add manually please",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-sagemaker-model.json",
    "sourceSha256": "0ae9aed3478e42ccc7544c68cc67b9599c7cd53e927da009b4d44bf8d415d5f3"
  },
  "type": "object",
  "properties": {
    "ExecutionRoleArn": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "EnableNetworkIsolation": {
      "type": "boolean"
    },
    "PrimaryContainer": {
      "$ref": "#/$defs/ContainerDefinition"
    },
    "ModelName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "VpcConfig": {
      "$ref": "#/$defs/VpcConfig"
    },
    "Containers": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "$ref": "#/$defs/ContainerDefinition"
      }
    },
    "InferenceExecutionConfig": {
      "$ref": "#/$defs/InferenceExecutionConfig"
    },
    "Tags": {
      "type": "array",
      "uniqueItems": false,
      "items": {
        "$ref": "#/$defs/Tag"
      }
    }
  },
  "typeName": "AWS::SageMaker::Model",
  "readOnlyProperties": [
    "/properties/Id"
  ],
  "$defs": {
    "ImageConfig": {
      "type": "object",
      "title": "AWSSageMakerModelImageConfigDefinition",
      "properties": {
        "RepositoryAuthConfig": {
          "$ref": "#/$defs/RepositoryAuthConfig"
        },
        "RepositoryAccessMode": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "RepositoryAccessMode"
      ],
      "additionalProperties": false
    },
    "VpcConfig": {
      "type": "object",
      "title": "AWSSageMakerModelVpcConfigDefinition",
      "properties": {
        "SecurityGroupIds": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        },
        "Subnets": {
          "type": "array",
          "uniqueItems": false,
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "Subnets",
        "SecurityGroupIds"
      ],
      "additionalProperties": false
    },
    "RepositoryAuthConfig": {
      "type": "object",
      "title": "AWSSageMakerModelRepositoryAuthConfigDefinition",
      "properties": {
        "RepositoryCredentialsProviderArn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "RepositoryCredentialsProviderArn"
      ],
      "additionalProperties": false
    },
    "ContainerDefinition": {
      "type": "object",
      "title": "AWSSageMakerModelContainerDefinition",
      "properties": {
        "ImageConfig": {
          "$ref": "#/$defs/ImageConfig"
        },
        "InferenceSpecificationName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ContainerHostname": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ModelPackageName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Mode": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Environment": {
          "type": "object"
        },
        "ModelDataUrl": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Image": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "MultiModelConfig": {
          "$ref": "#/$defs/MultiModelConfig"
        }
      },
      "additionalProperties": false
    },
    "InferenceExecutionConfig": {
      "type": "object",
      "title": "AWSSageMakerModelInferenceExecutionConfigDefinition",
      "properties": {
        "Mode": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Mode"
      ],
      "additionalProperties": false
    },
    "Tag": {
      "type": "object",
      "title": "AWSSageMakerModelTagDefinition",
      "properties": {
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Key": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Value",
        "Key"
      ],
      "additionalProperties": false
    },
    "MultiModelConfig": {
      "type": "object",
      "title": "AWSSageMakerModelMultiModelConfigDefinition",
      "properties": {
        "ModelCacheSetting": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    }
  },
  "primaryIdentifier": [
    "/properties/Id"
  ],
  "additionalProperties": false,
  "required": [
    "ExecutionRoleArn"
  ],
  "createOnlyProperties": [
    "/properties/ExecutionRoleArn",
    "/properties/EnableNetworkIsolation",
    "/properties/InferenceExecutionConfig",
    "/properties/PrimaryContainer",
    "/properties/ModelName",
    "/properties/VpcConfig",
    "/properties/Containers"
  ]
}
