{
 "additionalProperties": false,
 "createOnlyProperties": [
  "/properties/DomainId",
  "/properties/UserProfileName",
  "/properties/SingleSignOnUserIdentifier",
  "/properties/SingleSignOnUserValue",
  "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus",
  "/properties/UserSettings/RStudioServerProAppSettings/UserGroup",
  "/properties/Tags"
 ],
 "definitions": {
  "AppInstanceType": {
   "enum": [
    "system",
    "ml.t3.micro",
    "ml.t3.small",
    "ml.t3.medium",
    "ml.t3.large",
    "ml.t3.xlarge",
    "ml.t3.2xlarge",
    "ml.m5.large",
    "ml.m5.xlarge",
    "ml.m5.2xlarge",
    "ml.m5.4xlarge",
    "ml.m5.8xlarge",
    "ml.m5.12xlarge",
    "ml.m5.16xlarge",
    "ml.m5.24xlarge",
    "ml.m5d.large",
    "ml.m5d.xlarge",
    "ml.m5d.2xlarge",
    "ml.m5d.4xlarge",
    "ml.m5d.8xlarge",
    "ml.m5d.12xlarge",
    "ml.m5d.16xlarge",
    "ml.m5d.24xlarge",
    "ml.c5.large",
    "ml.c5.xlarge",
    "ml.c5.2xlarge",
    "ml.c5.4xlarge",
    "ml.c5.9xlarge",
    "ml.c5.12xlarge",
    "ml.c5.18xlarge",
    "ml.c5.24xlarge",
    "ml.p3.2xlarge",
    "ml.p3.8xlarge",
    "ml.p3.16xlarge",
    "ml.p3dn.24xlarge",
    "ml.g4dn.xlarge",
    "ml.g4dn.2xlarge",
    "ml.g4dn.4xlarge",
    "ml.g4dn.8xlarge",
    "ml.g4dn.12xlarge",
    "ml.g4dn.16xlarge",
    "ml.r5.large",
    "ml.r5.xlarge",
    "ml.r5.2xlarge",
    "ml.r5.4xlarge",
    "ml.r5.8xlarge",
    "ml.r5.12xlarge",
    "ml.r5.16xlarge",
    "ml.r5.24xlarge",
    "ml.g5.xlarge",
    "ml.g5.2xlarge",
    "ml.g5.4xlarge",
    "ml.g5.8xlarge",
    "ml.g5.12xlarge",
    "ml.g5.16xlarge",
    "ml.g5.24xlarge",
    "ml.g5.48xlarge",
    "ml.g6.xlarge",
    "ml.g6.2xlarge",
    "ml.g6.4xlarge",
    "ml.g6.8xlarge",
    "ml.g6.12xlarge",
    "ml.g6.16xlarge",
    "ml.g6.24xlarge",
    "ml.g6.48xlarge",
    "ml.g6e.xlarge",
    "ml.g6e.2xlarge",
    "ml.g6e.4xlarge",
    "ml.g6e.8xlarge",
    "ml.g6e.12xlarge",
    "ml.g6e.16xlarge",
    "ml.g6e.24xlarge",
    "ml.g6e.48xlarge",
    "ml.geospatial.interactive",
    "ml.p4d.24xlarge",
    "ml.p4de.24xlarge",
    "ml.trn1.2xlarge",
    "ml.trn1.32xlarge",
    "ml.trn1n.32xlarge",
    "ml.p5.48xlarge",
    "ml.p5e.48xlarge",
    "ml.p5en.48xlarge",
    "ml.m6i.large",
    "ml.m6i.xlarge",
    "ml.m6i.2xlarge",
    "ml.m6i.4xlarge",
    "ml.m6i.8xlarge",
    "ml.m6i.12xlarge",
    "ml.m6i.16xlarge",
    "ml.m6i.24xlarge",
    "ml.m6i.32xlarge",
    "ml.m7i.large",
    "ml.m7i.xlarge",
    "ml.m7i.2xlarge",
    "ml.m7i.4xlarge",
    "ml.m7i.8xlarge",
    "ml.m7i.12xlarge",
    "ml.m7i.16xlarge",
    "ml.m7i.24xlarge",
    "ml.m7i.48xlarge",
    "ml.c6i.large",
    "ml.c6i.xlarge",
    "ml.c6i.2xlarge",
    "ml.c6i.4xlarge",
    "ml.c6i.8xlarge",
    "ml.c6i.12xlarge",
    "ml.c6i.16xlarge",
    "ml.c6i.24xlarge",
    "ml.c6i.32xlarge",
    "ml.c7i.large",
    "ml.c7i.xlarge",
    "ml.c7i.2xlarge",
    "ml.c7i.4xlarge",
    "ml.c7i.8xlarge",
    "ml.c7i.12xlarge",
    "ml.c7i.16xlarge",
    "ml.c7i.24xlarge",
    "ml.c7i.48xlarge",
    "ml.r6i.large",
    "ml.r6i.xlarge",
    "ml.r6i.2xlarge",
    "ml.r6i.4xlarge",
    "ml.r6i.8xlarge",
    "ml.r6i.12xlarge",
    "ml.r6i.16xlarge",
    "ml.r6i.24xlarge",
    "ml.r6i.32xlarge",
    "ml.r7i.large",
    "ml.r7i.xlarge",
    "ml.r7i.2xlarge",
    "ml.r7i.4xlarge",
    "ml.r7i.8xlarge",
    "ml.r7i.12xlarge",
    "ml.r7i.16xlarge",
    "ml.r7i.24xlarge",
    "ml.r7i.48xlarge",
    "ml.m6id.large",
    "ml.m6id.xlarge",
    "ml.m6id.2xlarge",
    "ml.m6id.4xlarge",
    "ml.m6id.8xlarge",
    "ml.m6id.12xlarge",
    "ml.m6id.16xlarge",
    "ml.m6id.24xlarge",
    "ml.m6id.32xlarge",
    "ml.c6id.large",
    "ml.c6id.xlarge",
    "ml.c6id.2xlarge",
    "ml.c6id.4xlarge",
    "ml.c6id.8xlarge",
    "ml.c6id.12xlarge",
    "ml.c6id.16xlarge",
    "ml.c6id.24xlarge",
    "ml.c6id.32xlarge",
    "ml.r6id.large",
    "ml.r6id.xlarge",
    "ml.r6id.2xlarge",
    "ml.r6id.4xlarge",
    "ml.r6id.8xlarge",
    "ml.r6id.12xlarge",
    "ml.r6id.16xlarge",
    "ml.r6id.24xlarge",
    "ml.r6id.32xlarge"
   ],
   "type": "string"
  },
  "AppLifecycleManagement": {
   "additionalProperties": false,
   "properties": {
    "IdleSettings": {
     "$ref": "#/definitions/IdleSettings"
    }
   },
   "type": "object"
  },
  "AppType": {
   "enum": [
    "JupyterServer",
    "TensorBoard",
    "RStudioServerPro",
    "JupyterLab",
    "CodeEditor",
    "DetailedProfiler",
    "Canvas"
   ],
   "type": "string"
  },
  "CodeEditorAppSettings": {
   "additionalProperties": false,
   "properties": {
    "BuiltInLifecycleConfigArn": {
     "maxLength": 256,
     "pattern": "^(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*|None)$",
     "type": "string"
    },
    "CustomImages": {
     "items": {
      "$ref": "#/definitions/CustomImage"
     },
     "maxItems": 200,
     "minItems": 0,
     "type": "array",
     "uniqueItems": false
    },
    "DefaultResourceSpec": {
     "$ref": "#/definitions/ResourceSpec"
    },
    "LifecycleConfigArns": {
     "items": {
      "$ref": "#/definitions/StudioLifecycleConfigArn"
     },
     "maxItems": 30,
     "minItems": 0,
     "type": "array",
     "uniqueItems": false
    }
   },
   "type": "object"
  },
  "CodeRepository": {
   "additionalProperties": false,
   "properties": {
    "RepositoryUrl": {
     "maxLength": 256,
     "pattern": "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$",
     "type": "string"
    }
   },
   "required": [
    "RepositoryUrl"
   ],
   "type": "object"
  },
  "CustomFileSystemConfig": {
   "additionalProperties": false,
   "properties": {
    "EFSFileSystemConfig": {
     "$ref": "#/definitions/EFSFileSystemConfig"
    },
    "FSxLustreFileSystemConfig": {
     "$ref": "#/definitions/FSxLustreFileSystemConfig"
    },
    "S3FileSystemConfig": {
     "$ref": "#/definitions/S3FileSystemConfig"
    }
   },
   "type": "object"
  },
  "CustomImage": {
   "additionalProperties": false,
   "properties": {
    "AppImageConfigName": {
     "maxLength": 63,
     "pattern": "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}",
     "type": "string"
    },
    "ImageName": {
     "maxLength": 63,
     "pattern": "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$",
     "type": "string"
    },
    "ImageVersionNumber": {
     "minimum": 0,
     "type": "integer"
    }
   },
   "required": [
    "AppImageConfigName",
    "ImageName"
   ],
   "type": "object"
  },
  "CustomPosixUserConfig": {
   "additionalProperties": false,
   "properties": {
    "Gid": {
     "maximum": 4000000,
     "minimum": 1001,
     "type": "integer"
    },
    "Uid": {
     "maximum": 4000000,
     "minimum": 10000,
     "type": "integer"
    }
   },
   "required": [
    "Uid",
    "Gid"
   ],
   "type": "object"
  },
  "DefaultEbsStorageSettings": {
   "additionalProperties": false,
   "properties": {
    "DefaultEbsVolumeSizeInGb": {
     "$ref": "#/definitions/SpaceEbsVolumeSizeInGb"
    },
    "MaximumEbsVolumeSizeInGb": {
     "$ref": "#/definitions/SpaceEbsVolumeSizeInGb"
    }
   },
   "required": [
    "DefaultEbsVolumeSizeInGb",
    "MaximumEbsVolumeSizeInGb"
   ],
   "type": "object"
  },
  "DefaultSpaceStorageSettings": {
   "additionalProperties": false,
   "properties": {
    "DefaultEbsStorageSettings": {
     "$ref": "#/definitions/DefaultEbsStorageSettings"
    }
   },
   "type": "object"
  },
  "EFSFileSystemConfig": {
   "additionalProperties": false,
   "properties": {
    "FileSystemId": {
     "maxLength": 21,
     "minLength": 11,
     "pattern": "^(fs-[0-9a-f]{8,})$",
     "type": "string"
    },
    "FileSystemPath": {
     "maxLength": 256,
     "minLength": 1,
     "pattern": "^\\/\\S*$",
     "type": "string"
    }
   },
   "required": [
    "FileSystemId"
   ],
   "type": "object"
  },
  "FSxLustreFileSystemConfig": {
   "additionalProperties": false,
   "properties": {
    "FileSystemId": {
     "maxLength": 21,
     "minLength": 11,
     "pattern": "^(fs-[0-9a-f]{8,})$",
     "type": "string"
    },
    "FileSystemPath": {
     "maxLength": 256,
     "minLength": 1,
     "pattern": "^\\/\\S*$",
     "type": "string"
    }
   },
   "required": [
    "FileSystemId"
   ],
   "type": "object"
  },
  "HiddenSageMakerImage": {
   "additionalProperties": false,
   "properties": {
    "SageMakerImageName": {
     "enum": [
      "sagemaker_distribution"
     ],
     "type": "string"
    },
    "VersionAliases": {
     "insertionOrder": false,
     "items": {
      "maxLength": 128,
      "minLength": 1,
      "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
      "type": "string"
     },
     "maxItems": 20,
     "type": "array",
     "uniqueItems": false
    }
   },
   "type": "object"
  },
  "IdleSettings": {
   "additionalProperties": false,
   "properties": {
    "IdleTimeoutInMinutes": {
     "$ref": "#/definitions/IdleTimeoutInMinutes"
    },
    "LifecycleManagement": {
     "$ref": "#/definitions/LifecycleManagement"
    },
    "MaxIdleTimeoutInMinutes": {
     "$ref": "#/definitions/MaxIdleTimeoutInMinutes"
    },
    "MinIdleTimeoutInMinutes": {
     "$ref": "#/definitions/MinIdleTimeoutInMinutes"
    }
   },
   "type": "object"
  },
  "IdleTimeoutInMinutes": {
   "maximum": 525600,
   "minimum": 60,
   "type": "integer"
  },
  "JupyterLabAppSettings": {
   "additionalProperties": false,
   "properties": {
    "BuiltInLifecycleConfigArn": {
     "maxLength": 256,
     "pattern": "^(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*|None)$",
     "type": "string"
    },
    "CodeRepositories": {
     "items": {
      "$ref": "#/definitions/CodeRepository"
     },
     "maxItems": 30,
     "minItems": 0,
     "type": "array",
     "uniqueItems": false
    },
    "CustomImages": {
     "items": {
      "$ref": "#/definitions/CustomImage"
     },
     "maxItems": 200,
     "minItems": 0,
     "type": "array",
     "uniqueItems": false
    },
    "DefaultResourceSpec": {
     "$ref": "#/definitions/ResourceSpec"
    },
    "LifecycleConfigArns": {
     "items": {
      "$ref": "#/definitions/StudioLifecycleConfigArn"
     },
     "maxItems": 30,
     "minItems": 0,
     "type": "array",
     "uniqueItems": false
    }
   },
   "type": "object"
  },
  "JupyterServerAppSettings": {
   "additionalProperties": false,
   "properties": {
    "DefaultResourceSpec": {
     "$ref": "#/definitions/ResourceSpec"
    },
    "LifecycleConfigArns": {
     "items": {
      "$ref": "#/definitions/StudioLifecycleConfigArn"
     },
     "maxItems": 30,
     "minItems": 0,
     "type": "array",
     "uniqueItems": false
    }
   },
   "type": "object"
  },
  "KernelGatewayAppSettings": {
   "additionalProperties": false,
   "properties": {
    "CustomImages": {
     "items": {
      "$ref": "#/definitions/CustomImage"
     },
     "maxItems": 30,
     "minItems": 0,
     "type": "array",
     "uniqueItems": false
    },
    "DefaultResourceSpec": {
     "$ref": "#/definitions/ResourceSpec"
    },
    "LifecycleConfigArns": {
     "items": {
      "$ref": "#/definitions/StudioLifecycleConfigArn"
     },
     "maxItems": 30,
     "minItems": 0,
     "type": "array",
     "uniqueItems": false
    }
   },
   "type": "object"
  },
  "LifecycleManagement": {
   "enum": [
    "ENABLED",
    "DISABLED"
   ],
   "type": "string"
  },
  "MaxIdleTimeoutInMinutes": {
   "maximum": 525600,
   "minimum": 60,
   "type": "integer"
  },
  "MinIdleTimeoutInMinutes": {
   "maximum": 525600,
   "minimum": 60,
   "type": "integer"
  },
  "MlTools": {
   "enum": [
    "DataWrangler",
    "FeatureStore",
    "EmrClusters",
    "AutoMl",
    "Experiments",
    "Training",
    "ModelEvaluation",
    "Pipelines",
    "Models",
    "JumpStart",
    "InferenceRecommender",
    "Endpoints",
    "Projects",
    "InferenceOptimization",
    "HyperPodClusters",
    "Comet",
    "DeepchecksLLMEvaluation",
    "Fiddler",
    "LakeraGuard",
    "PerformanceEvaluation"
   ],
   "type": "string"
  },
  "RStudioServerProAppSettings": {
   "additionalProperties": false,
   "properties": {
    "AccessStatus": {
     "enum": [
      "ENABLED",
      "DISABLED"
     ],
     "type": "string"
    },
    "UserGroup": {
     "enum": [
      "R_STUDIO_ADMIN",
      "R_STUDIO_USER"
     ],
     "type": "string"
    }
   },
   "type": "object"
  },
  "ResourceSpec": {
   "additionalProperties": false,
   "properties": {
    "InstanceType": {
     "$ref": "#/definitions/AppInstanceType"
    },
    "LifecycleConfigArn": {
     "maxLength": 256,
     "pattern": "^(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*|None)$",
     "type": "string"
    },
    "SageMakerImageArn": {
     "maxLength": 256,
     "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$",
     "type": "string"
    },
    "SageMakerImageVersionArn": {
     "maxLength": 256,
     "pattern": "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+$",
     "type": "string"
    }
   },
   "type": "object"
  },
  "S3FileSystemConfig": {
   "additionalProperties": false,
   "properties": {
    "MountPath": {
     "maxLength": 1024,
     "minLength": 0,
     "type": "string"
    },
    "S3Uri": {
     "maxLength": 1024,
     "minLength": 0,
     "pattern": "(s3)://([^/]+)/?(.*)",
     "type": "string"
    }
   },
   "type": "object"
  },
  "SharingSettings": {
   "additionalProperties": false,
   "properties": {
    "NotebookOutputOption": {
     "enum": [
      "Allowed",
      "Disabled"
     ],
     "type": "string"
    },
    "S3KmsKeyId": {
     "maxLength": 2048,
     "pattern": ".*",
     "type": "string"
    },
    "S3OutputPath": {
     "maxLength": 1024,
     "pattern": "^(https|s3)://([^/]+)/?(.*)$",
     "type": "string"
    }
   },
   "type": "object"
  },
  "SpaceEbsVolumeSizeInGb": {
   "maximum": 16384,
   "minimum": 5,
   "type": "integer"
  },
  "StudioLifecycleConfigArn": {
   "maxLength": 256,
   "pattern": "^(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*|None)$",
   "type": "string"
  },
  "StudioWebPortalSettings": {
   "additionalProperties": false,
   "properties": {
    "HiddenAppTypes": {
     "insertionOrder": false,
     "items": {
      "$ref": "#/definitions/AppType"
     },
     "minItems": 0,
     "type": "array",
     "uniqueItems": true
    },
    "HiddenInstanceTypes": {
     "insertionOrder": false,
     "items": {
      "$ref": "#/definitions/AppInstanceType"
     },
     "minItems": 0,
     "type": "array",
     "uniqueItems": true
    },
    "HiddenMlTools": {
     "insertionOrder": false,
     "items": {
      "$ref": "#/definitions/MlTools"
     },
     "minItems": 0,
     "type": "array",
     "uniqueItems": true
    },
    "HiddenSageMakerImageVersionAliases": {
     "insertionOrder": false,
     "items": {
      "$ref": "#/definitions/HiddenSageMakerImage"
     },
     "maxItems": 5,
     "minItems": 0,
     "type": "array",
     "uniqueItems": true
    }
   },
   "type": "object"
  },
  "Tag": {
   "additionalProperties": false,
   "properties": {
    "Key": {
     "maxLength": 128,
     "minLength": 1,
     "pattern": "([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)",
     "type": "string"
    },
    "Value": {
     "maxLength": 128,
     "minLength": 1,
     "pattern": "([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)",
     "type": "string"
    }
   },
   "required": [
    "Key",
    "Value"
   ],
   "type": "object"
  },
  "UserSettings": {
   "additionalProperties": false,
   "properties": {
    "AutoMountHomeEFS": {
     "enum": [
      "Enabled",
      "Disabled",
      "DefaultAsDomain"
     ],
     "type": "string"
    },
    "CodeEditorAppSettings": {
     "$ref": "#/definitions/CodeEditorAppSettings"
    },
    "CustomFileSystemConfigs": {
     "items": {
      "$ref": "#/definitions/CustomFileSystemConfig"
     },
     "maxItems": 2,
     "minItems": 0,
     "type": "array",
     "uniqueItems": true
    },
    "CustomPosixUserConfig": {
     "$ref": "#/definitions/CustomPosixUserConfig"
    },
    "DefaultLandingUri": {
     "maxLength": 1023,
     "type": "string"
    },
    "ExecutionRole": {
     "maxLength": 2048,
     "minLength": 20,
     "pattern": "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$",
     "type": "string"
    },
    "JupyterLabAppSettings": {
     "$ref": "#/definitions/JupyterLabAppSettings"
    },
    "JupyterServerAppSettings": {
     "$ref": "#/definitions/JupyterServerAppSettings"
    },
    "KernelGatewayAppSettings": {
     "$ref": "#/definitions/KernelGatewayAppSettings"
    },
    "RStudioServerProAppSettings": {
     "$ref": "#/definitions/RStudioServerProAppSettings"
    },
    "SecurityGroups": {
     "format": "AWS::EC2::SecurityGroup.Ids",
     "items": {
      "format": "AWS::EC2::SecurityGroup.Id",
      "maxLength": 32,
      "pattern": "[-0-9a-zA-Z]+",
      "type": "string"
     },
     "maxItems": 5,
     "minItems": 0,
     "type": "array",
     "uniqueItems": false
    },
    "SharingSettings": {
     "$ref": "#/definitions/SharingSettings"
    },
    "SpaceStorageSettings": {
     "$ref": "#/definitions/DefaultSpaceStorageSettings"
    },
    "StudioWebPortal": {
     "enum": [
      "ENABLED",
      "DISABLED"
     ],
     "type": "string"
    },
    "StudioWebPortalSettings": {
     "$ref": "#/definitions/StudioWebPortalSettings"
    }
   },
   "type": "object"
  }
 },
 "primaryIdentifier": [
  "/properties/UserProfileName",
  "/properties/DomainId"
 ],
 "properties": {
  "DomainId": {
   "maxLength": 63,
   "minLength": 1,
   "pattern": "d-(-*[a-z0-9]){1,61}",
   "type": "string"
  },
  "SingleSignOnUserIdentifier": {
   "pattern": "UserName",
   "type": "string"
  },
  "SingleSignOnUserValue": {
   "maxLength": 256,
   "minLength": 1,
   "type": "string"
  },
  "Tags": {
   "items": {
    "$ref": "#/definitions/Tag"
   },
   "maxItems": 50,
   "minItems": 0,
   "type": "array",
   "uniqueItems": false
  },
  "UserProfileArn": {
   "maxLength": 256,
   "pattern": "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*",
   "type": "string"
  },
  "UserProfileName": {
   "maxLength": 63,
   "minLength": 1,
   "pattern": "[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}",
   "type": "string"
  },
  "UserSettings": {
   "$ref": "#/definitions/UserSettings",
   "maxItems": 50,
   "minItems": 0,
   "uniqueItems": false
  }
 },
 "readOnlyProperties": [
  "/properties/UserProfileArn"
 ],
 "required": [
  "DomainId",
  "UserProfileName"
 ],
 "typeName": "AWS::SageMaker::UserProfile",
 "writeOnlyProperties": [
  "/properties/Tags"
 ]
}
