{
 "additionalProperties": false,
 "conditionalCreateOnlyProperties": [
  "/properties/ModelCard",
  "/properties/SourceUri"
 ],
 "createOnlyProperties": [
  "/properties/ModelPackageGroupName",
  "/properties/ModelPackageDescription",
  "/properties/InferenceSpecification",
  "/properties/ValidationSpecification",
  "/properties/SourceAlgorithmSpecification",
  "/properties/MetadataProperties",
  "/properties/ModelMetrics",
  "/properties/ClientToken",
  "/properties/DriftCheckBaselines",
  "/properties/Domain",
  "/properties/Task",
  "/properties/SamplePayloadUrl",
  "/properties/SecurityConfig"
 ],
 "definitions": {
  "AdditionalInferenceSpecificationDefinition": {
   "additionalProperties": false,
   "properties": {
    "Containers": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/ModelPackageContainerDefinition"
     },
     "maxItems": 15,
     "minItems": 1,
     "type": "array"
    },
    "Description": {
     "maxLength": 1024,
     "pattern": ".*",
     "type": "string"
    },
    "Name": {
     "maxLength": 63,
     "minLength": 1,
     "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$",
     "type": "string"
    },
    "SupportedContentTypes": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/ContentType"
     },
     "type": "array"
    },
    "SupportedRealtimeInferenceInstanceTypes": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/InferenceInstanceType"
     },
     "type": "array"
    },
    "SupportedResponseMIMETypes": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/ResponseMIMEType"
     },
     "type": "array"
    },
    "SupportedTransformInstanceTypes": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/TransformInstanceType"
     },
     "minItems": 1,
     "type": "array"
    }
   },
   "required": [
    "Containers",
    "Name"
   ],
   "type": "object"
  },
  "AdditionalInferenceSpecifications": {
   "insertionOrder": true,
   "items": {
    "$ref": "#/definitions/AdditionalInferenceSpecificationDefinition"
   },
   "maxItems": 15,
   "minItems": 1,
   "type": "array"
  },
  "ApprovalDescription": {
   "maxLength": 1024,
   "pattern": ".*",
   "type": "string"
  },
  "Bias": {
   "additionalProperties": false,
   "properties": {
    "PostTrainingReport": {
     "$ref": "#/definitions/MetricsSource"
    },
    "PreTrainingReport": {
     "$ref": "#/definitions/MetricsSource"
    },
    "Report": {
     "$ref": "#/definitions/MetricsSource"
    }
   },
   "type": "object"
  },
  "CertifyForMarketplace": {
   "type": "boolean"
  },
  "ClientToken": {
   "maxLength": 36,
   "minLength": 1,
   "pattern": "^[a-zA-Z0-9-]+$",
   "type": "string"
  },
  "ContentType": {
   "maxLength": 256,
   "pattern": ".*",
   "type": "string"
  },
  "CreationTime": {
   "type": "string"
  },
  "CustomerMetadataProperties": {
   "additionalProperties": false,
   "maxProperties": 50,
   "minProperties": 1,
   "patternProperties": {
    "^([\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)${1,128}": {
     "maxLength": 128,
     "minLength": 1,
     "type": "string"
    },
    "^([\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)${1,256}": {
     "maxLength": 256,
     "minLength": 1,
     "type": "string"
    }
   },
   "type": "object"
  },
  "DataSource": {
   "additionalProperties": false,
   "properties": {
    "S3DataSource": {
     "$ref": "#/definitions/S3DataSource"
    }
   },
   "required": [
    "S3DataSource"
   ],
   "type": "object"
  },
  "Domain": {
   "type": "string"
  },
  "DriftCheckBaselines": {
   "additionalProperties": false,
   "properties": {
    "Bias": {
     "$ref": "#/definitions/DriftCheckBias"
    },
    "Explainability": {
     "$ref": "#/definitions/DriftCheckExplainability"
    },
    "ModelDataQuality": {
     "$ref": "#/definitions/DriftCheckModelDataQuality"
    },
    "ModelQuality": {
     "$ref": "#/definitions/DriftCheckModelQuality"
    }
   },
   "type": "object"
  },
  "DriftCheckBias": {
   "additionalProperties": false,
   "properties": {
    "ConfigFile": {
     "$ref": "#/definitions/FileSource"
    },
    "PostTrainingConstraints": {
     "$ref": "#/definitions/MetricsSource"
    },
    "PreTrainingConstraints": {
     "$ref": "#/definitions/MetricsSource"
    }
   },
   "type": "object"
  },
  "DriftCheckExplainability": {
   "additionalProperties": false,
   "properties": {
    "ConfigFile": {
     "$ref": "#/definitions/FileSource"
    },
    "Constraints": {
     "$ref": "#/definitions/MetricsSource"
    }
   },
   "type": "object"
  },
  "DriftCheckModelDataQuality": {
   "additionalProperties": false,
   "properties": {
    "Constraints": {
     "$ref": "#/definitions/MetricsSource"
    },
    "Statistics": {
     "$ref": "#/definitions/MetricsSource"
    }
   },
   "type": "object"
  },
  "DriftCheckModelQuality": {
   "additionalProperties": false,
   "properties": {
    "Constraints": {
     "$ref": "#/definitions/MetricsSource"
    },
    "Statistics": {
     "$ref": "#/definitions/MetricsSource"
    }
   },
   "type": "object"
  },
  "Environment": {
   "additionalProperties": false,
   "maxProperties": 16,
   "patternProperties": {
    "[\\S\\s]*": {
     "maxLength": 1024,
     "type": "string"
    },
    "[a-zA-Z_][a-zA-Z0-9_]*": {
     "maxLength": 1024,
     "type": "string"
    }
   },
   "type": "object"
  },
  "Explainability": {
   "additionalProperties": false,
   "properties": {
    "Report": {
     "$ref": "#/definitions/MetricsSource"
    }
   },
   "type": "object"
  },
  "FileSource": {
   "additionalProperties": false,
   "properties": {
    "ContentDigest": {
     "maxLength": 72,
     "pattern": "^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$",
     "type": "string"
    },
    "ContentType": {
     "maxLength": 256,
     "pattern": ".*",
     "type": "string"
    },
    "S3Uri": {
     "maxLength": 1024,
     "pattern": "^(https|s3)://([^/]+)/?(.*)$",
     "type": "string"
    }
   },
   "required": [
    "S3Uri"
   ],
   "type": "object"
  },
  "InferenceInstanceType": {
   "enum": [
    "ml.c4.2xlarge",
    "ml.c4.4xlarge",
    "ml.c4.8xlarge",
    "ml.c4.large",
    "ml.c4.xlarge",
    "ml.c5.18xlarge",
    "ml.c5.2xlarge",
    "ml.c5.4xlarge",
    "ml.c5.9xlarge",
    "ml.c5.large",
    "ml.c5.xlarge",
    "ml.c5d.18xlarge",
    "ml.c5d.2xlarge",
    "ml.c5d.4xlarge",
    "ml.c5d.9xlarge",
    "ml.c5d.large",
    "ml.c5d.xlarge",
    "ml.c6g.12xlarge",
    "ml.c6g.16xlarge",
    "ml.c6g.2xlarge",
    "ml.c6g.4xlarge",
    "ml.c6g.8xlarge",
    "ml.c6g.large",
    "ml.c6g.xlarge",
    "ml.c6gd.12xlarge",
    "ml.c6gd.16xlarge",
    "ml.c6gd.2xlarge",
    "ml.c6gd.4xlarge",
    "ml.c6gd.8xlarge",
    "ml.c6gd.large",
    "ml.c6gd.xlarge",
    "ml.c6gn.12xlarge",
    "ml.c6gn.16xlarge",
    "ml.c6gn.2xlarge",
    "ml.c6gn.4xlarge",
    "ml.c6gn.8xlarge",
    "ml.c6gn.large",
    "ml.c6gn.xlarge",
    "ml.c6i.12xlarge",
    "ml.c6i.16xlarge",
    "ml.c6i.24xlarge",
    "ml.c6i.2xlarge",
    "ml.c6i.32xlarge",
    "ml.c6i.4xlarge",
    "ml.c6i.8xlarge",
    "ml.c6i.large",
    "ml.c6i.xlarge",
    "ml.c6in.12xlarge",
    "ml.c6in.16xlarge",
    "ml.c6in.24xlarge",
    "ml.c6in.2xlarge",
    "ml.c6in.32xlarge",
    "ml.c6in.4xlarge",
    "ml.c6in.8xlarge",
    "ml.c6in.large",
    "ml.c6in.xlarge",
    "ml.c7g.12xlarge",
    "ml.c7g.16xlarge",
    "ml.c7g.2xlarge",
    "ml.c7g.4xlarge",
    "ml.c7g.8xlarge",
    "ml.c7g.large",
    "ml.c7g.xlarge",
    "ml.c7i.12xlarge",
    "ml.c7i.16xlarge",
    "ml.c7i.24xlarge",
    "ml.c7i.2xlarge",
    "ml.c7i.48xlarge",
    "ml.c7i.4xlarge",
    "ml.c7i.8xlarge",
    "ml.c7i.large",
    "ml.c7i.xlarge",
    "ml.c8g.12xlarge",
    "ml.c8g.16xlarge",
    "ml.c8g.24xlarge",
    "ml.c8g.2xlarge",
    "ml.c8g.48xlarge",
    "ml.c8g.4xlarge",
    "ml.c8g.8xlarge",
    "ml.c8g.large",
    "ml.c8g.medium",
    "ml.c8g.xlarge",
    "ml.dl1.24xlarge",
    "ml.g4dn.12xlarge",
    "ml.g4dn.16xlarge",
    "ml.g4dn.2xlarge",
    "ml.g4dn.4xlarge",
    "ml.g4dn.8xlarge",
    "ml.g4dn.xlarge",
    "ml.g5.12xlarge",
    "ml.g5.16xlarge",
    "ml.g5.24xlarge",
    "ml.g5.2xlarge",
    "ml.g5.48xlarge",
    "ml.g5.4xlarge",
    "ml.g5.8xlarge",
    "ml.g5.xlarge",
    "ml.g6.12xlarge",
    "ml.g6.16xlarge",
    "ml.g6.24xlarge",
    "ml.g6.2xlarge",
    "ml.g6.48xlarge",
    "ml.g6.4xlarge",
    "ml.g6.8xlarge",
    "ml.g6.xlarge",
    "ml.g6e.12xlarge",
    "ml.g6e.16xlarge",
    "ml.g6e.24xlarge",
    "ml.g6e.2xlarge",
    "ml.g6e.48xlarge",
    "ml.g6e.4xlarge",
    "ml.g6e.8xlarge",
    "ml.g6e.xlarge",
    "ml.inf1.24xlarge",
    "ml.inf1.2xlarge",
    "ml.inf1.6xlarge",
    "ml.inf1.xlarge",
    "ml.inf2.24xlarge",
    "ml.inf2.48xlarge",
    "ml.inf2.8xlarge",
    "ml.inf2.xlarge",
    "ml.m4.10xlarge",
    "ml.m4.16xlarge",
    "ml.m4.2xlarge",
    "ml.m4.4xlarge",
    "ml.m4.xlarge",
    "ml.m5.12xlarge",
    "ml.m5.24xlarge",
    "ml.m5.2xlarge",
    "ml.m5.4xlarge",
    "ml.m5.large",
    "ml.m5.xlarge",
    "ml.m5d.12xlarge",
    "ml.m5d.24xlarge",
    "ml.m5d.2xlarge",
    "ml.m5d.4xlarge",
    "ml.m5d.large",
    "ml.m5d.xlarge",
    "ml.m6g.12xlarge",
    "ml.m6g.16xlarge",
    "ml.m6g.2xlarge",
    "ml.m6g.4xlarge",
    "ml.m6g.8xlarge",
    "ml.m6g.large",
    "ml.m6g.xlarge",
    "ml.m6gd.12xlarge",
    "ml.m6gd.16xlarge",
    "ml.m6gd.2xlarge",
    "ml.m6gd.4xlarge",
    "ml.m6gd.8xlarge",
    "ml.m6gd.large",
    "ml.m6gd.xlarge",
    "ml.m6i.12xlarge",
    "ml.m6i.16xlarge",
    "ml.m6i.24xlarge",
    "ml.m6i.2xlarge",
    "ml.m6i.32xlarge",
    "ml.m6i.4xlarge",
    "ml.m6i.8xlarge",
    "ml.m6i.large",
    "ml.m6i.xlarge",
    "ml.m7i.12xlarge",
    "ml.m7i.16xlarge",
    "ml.m7i.24xlarge",
    "ml.m7i.2xlarge",
    "ml.m7i.48xlarge",
    "ml.m7i.4xlarge",
    "ml.m7i.8xlarge",
    "ml.m7i.large",
    "ml.m7i.xlarge",
    "ml.m8g.12xlarge",
    "ml.m8g.16xlarge",
    "ml.m8g.24xlarge",
    "ml.m8g.2xlarge",
    "ml.m8g.48xlarge",
    "ml.m8g.4xlarge",
    "ml.m8g.8xlarge",
    "ml.m8g.large",
    "ml.m8g.medium",
    "ml.m8g.xlarge",
    "ml.p2.16xlarge",
    "ml.p2.8xlarge",
    "ml.p2.xlarge",
    "ml.p3.16xlarge",
    "ml.p3.2xlarge",
    "ml.p3.8xlarge",
    "ml.p4d.24xlarge",
    "ml.p4de.24xlarge",
    "ml.p5.48xlarge",
    "ml.p5.4xlarge",
    "ml.p5e.48xlarge",
    "ml.p5en.48xlarge",
    "ml.p6-b200.48xlarge",
    "ml.p6e-gb200.36xlarge",
    "ml.r5.12xlarge",
    "ml.r5.24xlarge",
    "ml.r5.2xlarge",
    "ml.r5.4xlarge",
    "ml.r5.large",
    "ml.r5.xlarge",
    "ml.r5d.12xlarge",
    "ml.r5d.24xlarge",
    "ml.r5d.2xlarge",
    "ml.r5d.4xlarge",
    "ml.r5d.large",
    "ml.r5d.xlarge",
    "ml.r6g.12xlarge",
    "ml.r6g.16xlarge",
    "ml.r6g.2xlarge",
    "ml.r6g.4xlarge",
    "ml.r6g.8xlarge",
    "ml.r6g.large",
    "ml.r6g.xlarge",
    "ml.r6gd.12xlarge",
    "ml.r6gd.16xlarge",
    "ml.r6gd.2xlarge",
    "ml.r6gd.4xlarge",
    "ml.r6gd.8xlarge",
    "ml.r6gd.large",
    "ml.r6gd.xlarge",
    "ml.r6i.12xlarge",
    "ml.r6i.16xlarge",
    "ml.r6i.24xlarge",
    "ml.r6i.2xlarge",
    "ml.r6i.32xlarge",
    "ml.r6i.4xlarge",
    "ml.r6i.8xlarge",
    "ml.r6i.large",
    "ml.r6i.xlarge",
    "ml.r7gd.12xlarge",
    "ml.r7gd.16xlarge",
    "ml.r7gd.2xlarge",
    "ml.r7gd.4xlarge",
    "ml.r7gd.8xlarge",
    "ml.r7gd.large",
    "ml.r7gd.medium",
    "ml.r7gd.xlarge",
    "ml.r7i.12xlarge",
    "ml.r7i.16xlarge",
    "ml.r7i.24xlarge",
    "ml.r7i.2xlarge",
    "ml.r7i.48xlarge",
    "ml.r7i.4xlarge",
    "ml.r7i.8xlarge",
    "ml.r7i.large",
    "ml.r7i.xlarge",
    "ml.r8g.12xlarge",
    "ml.r8g.16xlarge",
    "ml.r8g.24xlarge",
    "ml.r8g.2xlarge",
    "ml.r8g.48xlarge",
    "ml.r8g.4xlarge",
    "ml.r8g.8xlarge",
    "ml.r8g.large",
    "ml.r8g.medium",
    "ml.r8g.xlarge",
    "ml.t2.2xlarge",
    "ml.t2.large",
    "ml.t2.medium",
    "ml.t2.xlarge",
    "ml.trn1.2xlarge",
    "ml.trn1.32xlarge",
    "ml.trn1n.32xlarge",
    "ml.trn2.48xlarge"
   ],
   "type": "string"
  },
  "InferenceSpecification": {
   "additionalProperties": false,
   "properties": {
    "Containers": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/ModelPackageContainerDefinition"
     },
     "maxItems": 15,
     "minItems": 1,
     "type": "array",
     "uniqueItems": true
    },
    "SupportedContentTypes": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/ContentType"
     },
     "type": "array"
    },
    "SupportedRealtimeInferenceInstanceTypes": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/InferenceInstanceType"
     },
     "type": "array"
    },
    "SupportedResponseMIMETypes": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/ResponseMIMEType"
     },
     "type": "array"
    },
    "SupportedTransformInstanceTypes": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/TransformInstanceType"
     },
     "minItems": 1,
     "type": "array"
    }
   },
   "required": [
    "Containers",
    "SupportedContentTypes",
    "SupportedResponseMIMETypes"
   ],
   "type": "object"
  },
  "LastModifiedTime": {
   "type": "string"
  },
  "MetadataProperties": {
   "additionalProperties": false,
   "properties": {
    "CommitId": {
     "maxLength": 1024,
     "pattern": ".*",
     "type": "string"
    },
    "GeneratedBy": {
     "maxLength": 1024,
     "pattern": ".*",
     "type": "string"
    },
    "ProjectId": {
     "maxLength": 1024,
     "pattern": ".*",
     "type": "string"
    },
    "Repository": {
     "maxLength": 1024,
     "pattern": ".*",
     "type": "string"
    }
   },
   "type": "object"
  },
  "MetricsSource": {
   "additionalProperties": false,
   "properties": {
    "ContentDigest": {
     "maxLength": 72,
     "pattern": "^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$",
     "type": "string"
    },
    "ContentType": {
     "maxLength": 256,
     "pattern": ".*",
     "type": "string"
    },
    "S3Uri": {
     "maxLength": 1024,
     "pattern": "^(https|s3)://([^/]+)/?(.*)$",
     "type": "string"
    }
   },
   "required": [
    "ContentType",
    "S3Uri"
   ],
   "type": "object"
  },
  "ModelAccessConfig": {
   "additionalProperties": false,
   "properties": {
    "AcceptEula": {
     "type": "boolean"
    }
   },
   "required": [
    "AcceptEula"
   ],
   "type": "object"
  },
  "ModelApprovalStatus": {
   "enum": [
    "Approved",
    "Rejected",
    "PendingManualApproval"
   ],
   "type": "string"
  },
  "ModelCard": {
   "additionalProperties": false,
   "properties": {
    "ModelCardContent": {
     "maxLength": 100000,
     "minLength": 0,
     "pattern": ".*",
     "type": "string"
    },
    "ModelCardStatus": {
     "enum": [
      "Draft",
      "PendingReview",
      "Approved",
      "Archived"
     ],
     "type": "string"
    }
   },
   "required": [
    "ModelCardContent",
    "ModelCardStatus"
   ],
   "type": "object"
  },
  "ModelDataQuality": {
   "additionalProperties": false,
   "properties": {
    "Constraints": {
     "$ref": "#/definitions/MetricsSource"
    },
    "Statistics": {
     "$ref": "#/definitions/MetricsSource"
    }
   },
   "type": "object"
  },
  "ModelDataSource": {
   "additionalProperties": false,
   "properties": {
    "S3DataSource": {
     "$ref": "#/definitions/S3ModelDataSource"
    }
   },
   "type": "object"
  },
  "ModelMetrics": {
   "additionalProperties": false,
   "properties": {
    "Bias": {
     "$ref": "#/definitions/Bias"
    },
    "Explainability": {
     "$ref": "#/definitions/Explainability"
    },
    "ModelDataQuality": {
     "$ref": "#/definitions/ModelDataQuality"
    },
    "ModelQuality": {
     "$ref": "#/definitions/ModelQuality"
    }
   },
   "type": "object"
  },
  "ModelPackageArn": {
   "maxLength": 2048,
   "minLength": 1,
   "pattern": "^arn:aws(-cn|-us-gov|-iso-f)?:sagemaker:[a-z0-9\\-]{9,16}:[0-9]{12}:model-package/[\\S]{1,2048}$",
   "type": "string"
  },
  "ModelPackageContainerDefinition": {
   "additionalProperties": false,
   "properties": {
    "ContainerHostname": {
     "maxLength": 63,
     "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}",
     "type": "string"
    },
    "Environment": {
     "$ref": "#/definitions/Environment"
    },
    "Framework": {
     "type": "string"
    },
    "FrameworkVersion": {
     "maxLength": 10,
     "minLength": 3,
     "pattern": "[0-9]\\.[A-Za-z0-9.]+",
     "type": "string"
    },
    "Image": {
     "maxLength": 255,
     "minLength": 1,
     "pattern": "[\\S]{1,255}",
     "type": "string"
    },
    "ImageDigest": {
     "maxLength": 72,
     "pattern": "^[Ss][Hh][Aa]256:[0-9a-fA-F]{64}$",
     "type": "string"
    },
    "ModelDataSource": {
     "$ref": "#/definitions/ModelDataSource"
    },
    "ModelDataUrl": {
     "maxLength": 1024,
     "pattern": "^(https|s3)://([^/]+)/?(.*)$",
     "type": "string"
    },
    "ModelInput": {
     "additionalProperties": false,
     "properties": {
      "DataInputConfig": {
       "maxLength": 1024,
       "minLength": 1,
       "pattern": "[\\S\\s]+",
       "type": "string"
      }
     },
     "required": [
      "DataInputConfig"
     ],
     "type": "object"
    },
    "NearestModelName": {
     "type": "string"
    }
   },
   "required": [
    "Image"
   ],
   "type": "object"
  },
  "ModelPackageDescription": {
   "maxLength": 1024,
   "pattern": "[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}]*",
   "type": "string"
  },
  "ModelPackageGroupName": {
   "maxLength": 170,
   "minLength": 1,
   "pattern": "(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:[a-z\\-]*\\/)?([a-zA-Z0-9]([a-zA-Z0-9-]){0,62})(?<!-)$",
   "type": "string"
  },
  "ModelPackageName": {
   "maxLength": 63,
   "minLength": 1,
   "pattern": "[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}",
   "type": "string"
  },
  "ModelPackageStatus": {
   "enum": [
    "Pending",
    "Deleting",
    "InProgress",
    "Completed",
    "Failed"
   ],
   "type": "string"
  },
  "ModelPackageStatusDetails": {
   "additionalProperties": false,
   "properties": {
    "ValidationStatuses": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/ModelPackageStatusItem"
     },
     "type": "array"
    }
   },
   "type": "object"
  },
  "ModelPackageStatusItem": {
   "additionalProperties": false,
   "properties": {
    "FailureReason": {
     "type": "string"
    },
    "Name": {
     "maxLength": 63,
     "minLength": 1,
     "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$",
     "type": "string"
    },
    "Status": {
     "enum": [
      "NotStarted",
      "Failed",
      "InProgress",
      "Completed"
     ],
     "type": "string"
    }
   },
   "required": [
    "Name",
    "Status"
   ],
   "type": "object"
  },
  "ModelPackageVersion": {
   "minimum": 1,
   "type": "integer"
  },
  "ModelQuality": {
   "additionalProperties": false,
   "properties": {
    "Constraints": {
     "$ref": "#/definitions/MetricsSource"
    },
    "Statistics": {
     "$ref": "#/definitions/MetricsSource"
    }
   },
   "type": "object"
  },
  "ResponseMIMEType": {
   "maxLength": 1024,
   "pattern": "^[-\\w]+\\/.+$",
   "type": "string"
  },
  "S3DataSource": {
   "additionalProperties": false,
   "properties": {
    "S3DataType": {
     "enum": [
      "ManifestFile",
      "S3Prefix",
      "AugmentedManifestFile"
     ],
     "type": "string"
    },
    "S3Uri": {
     "maxLength": 1024,
     "pattern": "^(https|s3)://([^/]+)/?(.*)$",
     "type": "string"
    }
   },
   "required": [
    "S3DataType",
    "S3Uri"
   ],
   "type": "object"
  },
  "S3ModelDataSource": {
   "additionalProperties": false,
   "properties": {
    "CompressionType": {
     "enum": [
      "None",
      "Gzip"
     ],
     "type": "string"
    },
    "ModelAccessConfig": {
     "$ref": "#/definitions/ModelAccessConfig"
    },
    "S3DataType": {
     "enum": [
      "S3Prefix",
      "S3Object"
     ],
     "type": "string"
    },
    "S3Uri": {
     "maxLength": 1024,
     "pattern": "^(https|s3)://([^/]+)/?(.*)$",
     "type": "string"
    }
   },
   "required": [
    "S3DataType",
    "S3Uri",
    "CompressionType"
   ],
   "type": "object"
  },
  "SamplePayloadUrl": {
   "maxLength": 1024,
   "pattern": "^(https|s3)://([^/]+)/?(.*)$",
   "type": "string"
  },
  "SecurityConfig": {
   "additionalProperties": false,
   "properties": {
    "KmsKeyId": {
     "maxLength": 2048,
     "pattern": "^[a-zA-Z0-9:/_-]*$",
     "type": "string"
    }
   },
   "required": [
    "KmsKeyId"
   ],
   "type": "object"
  },
  "SkipModelValidation": {
   "enum": [
    "None",
    "All"
   ],
   "type": "string"
  },
  "SourceAlgorithm": {
   "additionalProperties": false,
   "properties": {
    "AlgorithmName": {
     "maxLength": 170,
     "minLength": 1,
     "pattern": "(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:[a-z\\-]*\\/)?([a-zA-Z0-9]([a-zA-Z0-9-]){0,62})(?<!-)$",
     "type": "string"
    },
    "ModelDataUrl": {
     "maxLength": 1024,
     "pattern": "^(https|s3)://([^/]+)/?(.*)$",
     "type": "string"
    }
   },
   "required": [
    "AlgorithmName"
   ],
   "type": "object"
  },
  "SourceAlgorithmSpecification": {
   "additionalProperties": false,
   "insertionOrder": true,
   "properties": {
    "SourceAlgorithms": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/SourceAlgorithm"
     },
     "maxItems": 1,
     "minItems": 1,
     "type": "array"
    }
   },
   "required": [
    "SourceAlgorithms"
   ],
   "type": "object"
  },
  "SourceUri": {
   "maxLength": 1024,
   "minLength": 0,
   "pattern": "[\\p{L}\\p{M}\\p{Z}\\p{N}\\p{P}]{0,1024}",
   "type": "string"
  },
  "Tag": {
   "additionalProperties": false,
   "properties": {
    "Key": {
     "maxLength": 128,
     "minLength": 1,
     "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$",
     "type": "string"
    },
    "Value": {
     "maxLength": 256,
     "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$",
     "type": "string"
    }
   },
   "required": [
    "Key",
    "Value"
   ],
   "type": "object"
  },
  "Task": {
   "type": "string"
  },
  "TransformInput": {
   "additionalProperties": false,
   "properties": {
    "CompressionType": {
     "enum": [
      "None",
      "Gzip"
     ],
     "type": "string"
    },
    "ContentType": {
     "maxLength": 256,
     "pattern": ".*",
     "type": "string"
    },
    "DataSource": {
     "$ref": "#/definitions/DataSource"
    },
    "SplitType": {
     "enum": [
      "None",
      "TFRecord",
      "Line",
      "RecordIO"
     ],
     "type": "string"
    }
   },
   "required": [
    "DataSource"
   ],
   "type": "object"
  },
  "TransformInstanceType": {
   "enum": [
    "ml.c4.2xlarge",
    "ml.c4.4xlarge",
    "ml.c4.8xlarge",
    "ml.c4.xlarge",
    "ml.c5.18xlarge",
    "ml.c5.2xlarge",
    "ml.c5.4xlarge",
    "ml.c5.9xlarge",
    "ml.c5.xlarge",
    "ml.c6i.12xlarge",
    "ml.c6i.16xlarge",
    "ml.c6i.24xlarge",
    "ml.c6i.2xlarge",
    "ml.c6i.32xlarge",
    "ml.c6i.4xlarge",
    "ml.c6i.8xlarge",
    "ml.c6i.large",
    "ml.c6i.xlarge",
    "ml.c7i.12xlarge",
    "ml.c7i.16xlarge",
    "ml.c7i.24xlarge",
    "ml.c7i.2xlarge",
    "ml.c7i.48xlarge",
    "ml.c7i.4xlarge",
    "ml.c7i.8xlarge",
    "ml.c7i.large",
    "ml.c7i.xlarge",
    "ml.g4dn.12xlarge",
    "ml.g4dn.16xlarge",
    "ml.g4dn.2xlarge",
    "ml.g4dn.4xlarge",
    "ml.g4dn.8xlarge",
    "ml.g4dn.xlarge",
    "ml.g5.12xlarge",
    "ml.g5.16xlarge",
    "ml.g5.24xlarge",
    "ml.g5.2xlarge",
    "ml.g5.48xlarge",
    "ml.g5.4xlarge",
    "ml.g5.8xlarge",
    "ml.g5.xlarge",
    "ml.g6.12xlarge",
    "ml.g6.16xlarge",
    "ml.g6.24xlarge",
    "ml.g6.2xlarge",
    "ml.g6.48xlarge",
    "ml.g6.4xlarge",
    "ml.g6.8xlarge",
    "ml.g6.xlarge",
    "ml.inf2.24xlarge",
    "ml.inf2.48xlarge",
    "ml.inf2.8xlarge",
    "ml.inf2.xlarge",
    "ml.m4.10xlarge",
    "ml.m4.16xlarge",
    "ml.m4.2xlarge",
    "ml.m4.4xlarge",
    "ml.m4.xlarge",
    "ml.m5.12xlarge",
    "ml.m5.24xlarge",
    "ml.m5.2xlarge",
    "ml.m5.4xlarge",
    "ml.m5.large",
    "ml.m5.xlarge",
    "ml.m6i.12xlarge",
    "ml.m6i.16xlarge",
    "ml.m6i.24xlarge",
    "ml.m6i.2xlarge",
    "ml.m6i.32xlarge",
    "ml.m6i.4xlarge",
    "ml.m6i.8xlarge",
    "ml.m6i.large",
    "ml.m6i.xlarge",
    "ml.m7i.12xlarge",
    "ml.m7i.16xlarge",
    "ml.m7i.24xlarge",
    "ml.m7i.2xlarge",
    "ml.m7i.48xlarge",
    "ml.m7i.4xlarge",
    "ml.m7i.8xlarge",
    "ml.m7i.large",
    "ml.m7i.xlarge",
    "ml.p2.16xlarge",
    "ml.p2.8xlarge",
    "ml.p2.xlarge",
    "ml.p3.16xlarge",
    "ml.p3.2xlarge",
    "ml.p3.8xlarge",
    "ml.r6i.12xlarge",
    "ml.r6i.16xlarge",
    "ml.r6i.24xlarge",
    "ml.r6i.2xlarge",
    "ml.r6i.32xlarge",
    "ml.r6i.4xlarge",
    "ml.r6i.8xlarge",
    "ml.r6i.large",
    "ml.r6i.xlarge",
    "ml.r7i.12xlarge",
    "ml.r7i.16xlarge",
    "ml.r7i.24xlarge",
    "ml.r7i.2xlarge",
    "ml.r7i.48xlarge",
    "ml.r7i.4xlarge",
    "ml.r7i.8xlarge",
    "ml.r7i.large",
    "ml.r7i.xlarge",
    "ml.trn1.2xlarge",
    "ml.trn1.32xlarge"
   ],
   "type": "string"
  },
  "TransformJobDefinition": {
   "additionalProperties": false,
   "properties": {
    "BatchStrategy": {
     "enum": [
      "MultiRecord",
      "SingleRecord"
     ],
     "type": "string"
    },
    "Environment": {
     "$ref": "#/definitions/Environment"
    },
    "MaxConcurrentTransforms": {
     "minimum": 0,
     "type": "integer"
    },
    "MaxPayloadInMB": {
     "minimum": 0,
     "type": "integer"
    },
    "TransformInput": {
     "$ref": "#/definitions/TransformInput"
    },
    "TransformOutput": {
     "$ref": "#/definitions/TransformOutput"
    },
    "TransformResources": {
     "$ref": "#/definitions/TransformResources"
    }
   },
   "required": [
    "TransformResources",
    "TransformOutput",
    "TransformInput"
   ],
   "type": "object"
  },
  "TransformOutput": {
   "additionalProperties": false,
   "properties": {
    "Accept": {
     "maxLength": 256,
     "pattern": ".*",
     "type": "string"
    },
    "AssembleWith": {
     "enum": [
      "None",
      "Line"
     ],
     "type": "string"
    },
    "KmsKeyId": {
     "maxLength": 2048,
     "pattern": ".*",
     "type": "string"
    },
    "S3OutputPath": {
     "maxLength": 1024,
     "pattern": "^(https|s3)://([^/]+)/?(.*)$",
     "type": "string"
    }
   },
   "required": [
    "S3OutputPath"
   ],
   "type": "object"
  },
  "TransformResources": {
   "additionalProperties": false,
   "properties": {
    "InstanceCount": {
     "minimum": 1,
     "type": "integer"
    },
    "InstanceType": {
     "enum": [
      "ml.c4.2xlarge",
      "ml.c4.4xlarge",
      "ml.c4.8xlarge",
      "ml.c4.xlarge",
      "ml.c5.18xlarge",
      "ml.c5.2xlarge",
      "ml.c5.4xlarge",
      "ml.c5.9xlarge",
      "ml.c5.xlarge",
      "ml.c6i.12xlarge",
      "ml.c6i.16xlarge",
      "ml.c6i.24xlarge",
      "ml.c6i.2xlarge",
      "ml.c6i.32xlarge",
      "ml.c6i.4xlarge",
      "ml.c6i.8xlarge",
      "ml.c6i.large",
      "ml.c6i.xlarge",
      "ml.c7i.12xlarge",
      "ml.c7i.16xlarge",
      "ml.c7i.24xlarge",
      "ml.c7i.2xlarge",
      "ml.c7i.48xlarge",
      "ml.c7i.4xlarge",
      "ml.c7i.8xlarge",
      "ml.c7i.large",
      "ml.c7i.xlarge",
      "ml.g4dn.12xlarge",
      "ml.g4dn.16xlarge",
      "ml.g4dn.2xlarge",
      "ml.g4dn.4xlarge",
      "ml.g4dn.8xlarge",
      "ml.g4dn.xlarge",
      "ml.g5.12xlarge",
      "ml.g5.16xlarge",
      "ml.g5.24xlarge",
      "ml.g5.2xlarge",
      "ml.g5.48xlarge",
      "ml.g5.4xlarge",
      "ml.g5.8xlarge",
      "ml.g5.xlarge",
      "ml.g6.12xlarge",
      "ml.g6.16xlarge",
      "ml.g6.24xlarge",
      "ml.g6.2xlarge",
      "ml.g6.48xlarge",
      "ml.g6.4xlarge",
      "ml.g6.8xlarge",
      "ml.g6.xlarge",
      "ml.inf2.24xlarge",
      "ml.inf2.48xlarge",
      "ml.inf2.8xlarge",
      "ml.inf2.xlarge",
      "ml.m4.10xlarge",
      "ml.m4.16xlarge",
      "ml.m4.2xlarge",
      "ml.m4.4xlarge",
      "ml.m4.xlarge",
      "ml.m5.12xlarge",
      "ml.m5.24xlarge",
      "ml.m5.2xlarge",
      "ml.m5.4xlarge",
      "ml.m5.large",
      "ml.m5.xlarge",
      "ml.m6i.12xlarge",
      "ml.m6i.16xlarge",
      "ml.m6i.24xlarge",
      "ml.m6i.2xlarge",
      "ml.m6i.32xlarge",
      "ml.m6i.4xlarge",
      "ml.m6i.8xlarge",
      "ml.m6i.large",
      "ml.m6i.xlarge",
      "ml.m7i.12xlarge",
      "ml.m7i.16xlarge",
      "ml.m7i.24xlarge",
      "ml.m7i.2xlarge",
      "ml.m7i.48xlarge",
      "ml.m7i.4xlarge",
      "ml.m7i.8xlarge",
      "ml.m7i.large",
      "ml.m7i.xlarge",
      "ml.p2.16xlarge",
      "ml.p2.8xlarge",
      "ml.p2.xlarge",
      "ml.p3.16xlarge",
      "ml.p3.2xlarge",
      "ml.p3.8xlarge",
      "ml.r6i.12xlarge",
      "ml.r6i.16xlarge",
      "ml.r6i.24xlarge",
      "ml.r6i.2xlarge",
      "ml.r6i.32xlarge",
      "ml.r6i.4xlarge",
      "ml.r6i.8xlarge",
      "ml.r6i.large",
      "ml.r6i.xlarge",
      "ml.r7i.12xlarge",
      "ml.r7i.16xlarge",
      "ml.r7i.24xlarge",
      "ml.r7i.2xlarge",
      "ml.r7i.48xlarge",
      "ml.r7i.4xlarge",
      "ml.r7i.8xlarge",
      "ml.r7i.large",
      "ml.r7i.xlarge",
      "ml.trn1.2xlarge",
      "ml.trn1.32xlarge"
     ],
     "type": "string"
    },
    "VolumeKmsKeyId": {
     "maxLength": 2048,
     "pattern": ".*",
     "type": "string"
    }
   },
   "required": [
    "InstanceCount",
    "InstanceType"
   ],
   "type": "object"
  },
  "ValidationProfile": {
   "additionalProperties": false,
   "properties": {
    "ProfileName": {
     "maxLength": 63,
     "minLength": 1,
     "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$",
     "type": "string"
    },
    "TransformJobDefinition": {
     "$ref": "#/definitions/TransformJobDefinition"
    }
   },
   "required": [
    "TransformJobDefinition",
    "ProfileName"
   ],
   "type": "object"
  },
  "ValidationSpecification": {
   "additionalProperties": false,
   "insertionOrder": true,
   "properties": {
    "ValidationProfiles": {
     "insertionOrder": true,
     "items": {
      "$ref": "#/definitions/ValidationProfile"
     },
     "maxItems": 1,
     "minItems": 1,
     "type": "array"
    },
    "ValidationRole": {
     "maxLength": 2048,
     "minLength": 20,
     "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$",
     "type": "string"
    }
   },
   "required": [
    "ValidationProfiles",
    "ValidationRole"
   ],
   "type": "object"
  }
 },
 "primaryIdentifier": [
  "/properties/ModelPackageArn"
 ],
 "properties": {
  "AdditionalInferenceSpecifications": {
   "$ref": "#/definitions/AdditionalInferenceSpecifications"
  },
  "AdditionalInferenceSpecificationsToAdd": {
   "$ref": "#/definitions/AdditionalInferenceSpecifications"
  },
  "ApprovalDescription": {
   "$ref": "#/definitions/ApprovalDescription"
  },
  "CertifyForMarketplace": {
   "$ref": "#/definitions/CertifyForMarketplace"
  },
  "ClientToken": {
   "$ref": "#/definitions/ClientToken"
  },
  "CreationTime": {
   "$ref": "#/definitions/CreationTime"
  },
  "CustomerMetadataProperties": {
   "$ref": "#/definitions/CustomerMetadataProperties"
  },
  "Domain": {
   "$ref": "#/definitions/Domain"
  },
  "DriftCheckBaselines": {
   "$ref": "#/definitions/DriftCheckBaselines"
  },
  "InferenceSpecification": {
   "$ref": "#/definitions/InferenceSpecification"
  },
  "LastModifiedTime": {
   "$ref": "#/definitions/LastModifiedTime"
  },
  "MetadataProperties": {
   "$ref": "#/definitions/MetadataProperties"
  },
  "ModelApprovalStatus": {
   "$ref": "#/definitions/ModelApprovalStatus"
  },
  "ModelCard": {
   "$ref": "#/definitions/ModelCard"
  },
  "ModelMetrics": {
   "$ref": "#/definitions/ModelMetrics"
  },
  "ModelPackageArn": {
   "$ref": "#/definitions/ModelPackageArn"
  },
  "ModelPackageDescription": {
   "$ref": "#/definitions/ModelPackageDescription"
  },
  "ModelPackageGroupName": {
   "$ref": "#/definitions/ModelPackageGroupName"
  },
  "ModelPackageName": {
   "$ref": "#/definitions/ModelPackageName"
  },
  "ModelPackageStatus": {
   "$ref": "#/definitions/ModelPackageStatus"
  },
  "ModelPackageStatusDetails": {
   "$ref": "#/definitions/ModelPackageStatusDetails"
  },
  "ModelPackageVersion": {
   "$ref": "#/definitions/ModelPackageVersion"
  },
  "SamplePayloadUrl": {
   "$ref": "#/definitions/SamplePayloadUrl"
  },
  "SecurityConfig": {
   "$ref": "#/definitions/SecurityConfig"
  },
  "SkipModelValidation": {
   "$ref": "#/definitions/SkipModelValidation"
  },
  "SourceAlgorithmSpecification": {
   "$ref": "#/definitions/SourceAlgorithmSpecification"
  },
  "SourceUri": {
   "$ref": "#/definitions/SourceUri"
  },
  "Tags": {
   "items": {
    "$ref": "#/definitions/Tag"
   },
   "maxItems": 50,
   "type": "array"
  },
  "Task": {
   "$ref": "#/definitions/Task"
  },
  "ValidationSpecification": {
   "$ref": "#/definitions/ValidationSpecification"
  }
 },
 "readOnlyProperties": [
  "/properties/ModelPackageArn",
  "/properties/CreationTime",
  "/properties/ModelPackageStatus"
 ],
 "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sagemaker",
 "tagging": {
  "cloudFormationSystemTags": false,
  "tagOnCreate": true,
  "tagProperty": "/properties/Tags",
  "tagUpdatable": true,
  "taggable": true
 },
 "typeName": "AWS::SageMaker::ModelPackage",
 "writeOnlyProperties": [
  "/properties/ClientToken",
  "/properties/AdditionalInferenceSpecificationsToAdd"
 ]
}
