{
  "typeName" : "AWS::SageMaker::UserProfile",
  "description" : "Resource Type definition for AWS::SageMaker::UserProfile",
  "additionalProperties" : false,
  "properties" : {
    "UserProfileArn" : {
      "type" : "string",
      "description" : "The user profile Amazon Resource Name (ARN).",
      "maxLength" : 256,
      "pattern" : "arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:user-profile/.*"
    },
    "DomainId" : {
      "type" : "string",
      "description" : "The ID of the associated Domain.",
      "minLength" : 1,
      "maxLength" : 63
    },
    "SingleSignOnUserIdentifier" : {
      "type" : "string",
      "description" : "A specifier for the type of value specified in SingleSignOnUserValue. Currently, the only supported value is \"UserName\". If the Domain's AuthMode is SSO, this field is required. If the Domain's AuthMode is not SSO, this field cannot be specified.",
      "pattern" : "UserName"
    },
    "SingleSignOnUserValue" : {
      "type" : "string",
      "description" : "The username of the associated AWS Single Sign-On User for this UserProfile. If the Domain's AuthMode is SSO, this field is required, and must match a valid username of a user in your directory. If the Domain's AuthMode is not SSO, this field cannot be specified.",
      "minLength" : 1,
      "maxLength" : 256
    },
    "UserProfileName" : {
      "type" : "string",
      "description" : "A name for the UserProfile.",
      "minLength" : 1,
      "maxLength" : 63
    },
    "UserSettings" : {
      "$ref" : "#/definitions/UserSettings",
      "description" : "A collection of settings.",
      "uniqueItems" : false,
      "minItems" : 0,
      "maxItems" : 50
    },
    "Tags" : {
      "type" : "array",
      "description" : "A list of tags to apply to the user profile.",
      "uniqueItems" : false,
      "minItems" : 0,
      "maxItems" : 50,
      "items" : {
        "$ref" : "#/definitions/Tag"
      }
    }
  },
  "definitions" : {
    "UserSettings" : {
      "type" : "object",
      "description" : "A collection of settings that apply to users of Amazon SageMaker Studio. These settings are specified when the CreateUserProfile API is called, and as DefaultUserSettings when the CreateDomain API is called.",
      "additionalProperties" : false,
      "properties" : {
        "ExecutionRole" : {
          "type" : "string",
          "description" : "The user profile Amazon Resource Name (ARN).",
          "minLength" : 20,
          "maxLength" : 2048,
          "pattern" : "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$"
        },
        "AutoMountHomeEFS" : {
          "type" : "string",
          "description" : "Indicates whether auto-mounting of an EFS volume is supported for the user profile. ",
          "enum" : [ "Enabled", "Disabled", "DefaultAsDomain" ]
        },
        "JupyterServerAppSettings" : {
          "$ref" : "#/definitions/JupyterServerAppSettings",
          "description" : "The Jupyter server's app settings."
        },
        "KernelGatewayAppSettings" : {
          "$ref" : "#/definitions/KernelGatewayAppSettings",
          "description" : "The kernel gateway app settings."
        },
        "RStudioServerProAppSettings" : {
          "$ref" : "#/definitions/RStudioServerProAppSettings"
        },
        "JupyterLabAppSettings" : {
          "$ref" : "#/definitions/JupyterLabAppSettings"
        },
        "SpaceStorageSettings" : {
          "$ref" : "#/definitions/DefaultSpaceStorageSettings"
        },
        "CodeEditorAppSettings" : {
          "$ref" : "#/definitions/CodeEditorAppSettings"
        },
        "StudioWebPortalSettings" : {
          "$ref" : "#/definitions/StudioWebPortalSettings"
        },
        "DefaultLandingUri" : {
          "type" : "string",
          "description" : "Defines which Amazon SageMaker application users are directed to by default.",
          "maxLength" : 1023
        },
        "StudioWebPortal" : {
          "type" : "string",
          "description" : "Indicates whether the Studio experience is available to users. If not, users cannot access Studio.",
          "enum" : [ "ENABLED", "DISABLED" ]
        },
        "CustomPosixUserConfig" : {
          "$ref" : "#/definitions/CustomPosixUserConfig"
        },
        "CustomFileSystemConfigs" : {
          "type" : "array",
          "uniqueItems" : true,
          "minItems" : 0,
          "maxItems" : 10,
          "items" : {
            "$ref" : "#/definitions/CustomFileSystemConfig"
          }
        },
        "SecurityGroups" : {
          "type" : "array",
          "description" : "The security groups for the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.",
          "uniqueItems" : false,
          "minItems" : 0,
          "maxItems" : 5,
          "items" : {
            "type" : "string",
            "maxLength" : 32,
            "pattern" : "[-0-9a-zA-Z]+"
          }
        },
        "SharingSettings" : {
          "$ref" : "#/definitions/SharingSettings",
          "description" : "The sharing settings."
        }
      }
    },
    "JupyterServerAppSettings" : {
      "type" : "object",
      "description" : "The JupyterServer app settings.",
      "additionalProperties" : false,
      "properties" : {
        "DefaultResourceSpec" : {
          "$ref" : "#/definitions/ResourceSpec"
        },
        "LifecycleConfigArns" : {
          "type" : "array",
          "description" : "A list of LifecycleConfigArns available for use with JupyterServer apps.",
          "uniqueItems" : false,
          "minItems" : 0,
          "maxItems" : 30,
          "items" : {
            "$ref" : "#/definitions/StudioLifecycleConfigArn"
          }
        }
      }
    },
    "ResourceSpec" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "InstanceType" : {
          "$ref" : "#/definitions/AppInstanceType"
        },
        "SageMakerImageArn" : {
          "type" : "string",
          "description" : "The ARN of the SageMaker image that the image version belongs to.",
          "maxLength" : 256,
          "pattern" : "^arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image/[a-z0-9]([-.]?[a-z0-9])*$"
        },
        "SageMakerImageVersionArn" : {
          "type" : "string",
          "description" : "The ARN of the image version created on the instance.",
          "maxLength" : 256,
          "pattern" : "^(arn:aws(-[\\w]+)*:sagemaker:.+:[0-9]{12}:image-version/[a-z0-9]([-.]?[a-z0-9])*/[0-9]+|None)"
        },
        "LifecycleConfigArn" : {
          "type" : "string",
          "description" : "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.",
          "maxLength" : 256,
          "pattern" : "^(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*|None)$"
        }
      }
    },
    "KernelGatewayAppSettings" : {
      "type" : "object",
      "description" : "The kernel gateway app settings.",
      "additionalProperties" : false,
      "properties" : {
        "CustomImages" : {
          "type" : "array",
          "description" : "A list of custom SageMaker images that are configured to run as a KernelGateway app.",
          "uniqueItems" : false,
          "minItems" : 0,
          "maxItems" : 30,
          "items" : {
            "$ref" : "#/definitions/CustomImage"
          }
        },
        "DefaultResourceSpec" : {
          "$ref" : "#/definitions/ResourceSpec",
          "description" : "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app."
        },
        "LifecycleConfigArns" : {
          "type" : "array",
          "description" : "A list of LifecycleConfigArns available for use with KernelGateway apps.",
          "uniqueItems" : false,
          "minItems" : 0,
          "maxItems" : 30,
          "items" : {
            "$ref" : "#/definitions/StudioLifecycleConfigArn"
          }
        }
      }
    },
    "JupyterLabAppSettings" : {
      "type" : "object",
      "description" : "The JupyterLab app settings.",
      "additionalProperties" : false,
      "properties" : {
        "DefaultResourceSpec" : {
          "$ref" : "#/definitions/ResourceSpec",
          "description" : "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterLab app."
        },
        "LifecycleConfigArns" : {
          "type" : "array",
          "description" : "A list of LifecycleConfigArns available for use with JupyterLab apps.",
          "uniqueItems" : false,
          "minItems" : 0,
          "maxItems" : 30,
          "items" : {
            "$ref" : "#/definitions/StudioLifecycleConfigArn"
          }
        },
        "CodeRepositories" : {
          "type" : "array",
          "description" : "A list of CodeRepositories available for use with JupyterLab apps.",
          "uniqueItems" : false,
          "minItems" : 0,
          "maxItems" : 30,
          "items" : {
            "$ref" : "#/definitions/CodeRepository"
          }
        },
        "CustomImages" : {
          "type" : "array",
          "description" : "A list of custom images available for use for JupyterLab apps",
          "uniqueItems" : false,
          "minItems" : 0,
          "maxItems" : 200,
          "items" : {
            "$ref" : "#/definitions/CustomImage"
          }
        },
        "AppLifecycleManagement" : {
          "$ref" : "#/definitions/AppLifecycleManagement"
        },
        "BuiltInLifecycleConfigArn" : {
          "type" : "string",
          "description" : "The lifecycle configuration that runs before the default lifecycle configuration.",
          "maxLength" : 256,
          "pattern" : "^(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*|None)$"
        },
        "EmrSettings" : {
          "$ref" : "#/definitions/EmrSettings",
          "description" : "The configuration parameters for EMR settings."
        }
      }
    },
    "AppLifecycleManagement" : {
      "type" : "object",
      "properties" : {
        "IdleSettings" : {
          "$ref" : "#/definitions/IdleSettings"
        }
      },
      "additionalProperties" : false
    },
    "IdleSettings" : {
      "type" : "object",
      "properties" : {
        "LifecycleManagement" : {
          "$ref" : "#/definitions/LifecycleManagement"
        },
        "IdleTimeoutInMinutes" : {
          "$ref" : "#/definitions/IdleTimeoutInMinutes"
        },
        "MinIdleTimeoutInMinutes" : {
          "$ref" : "#/definitions/MinIdleTimeoutInMinutes"
        },
        "MaxIdleTimeoutInMinutes" : {
          "$ref" : "#/definitions/MaxIdleTimeoutInMinutes"
        }
      },
      "additionalProperties" : false
    },
    "LifecycleManagement" : {
      "type" : "string",
      "description" : "A flag to enable/disable AppLifecycleManagement settings",
      "enum" : [ "ENABLED", "DISABLED" ]
    },
    "IdleTimeoutInMinutes" : {
      "type" : "integer",
      "description" : "The idle timeout value set in minutes",
      "minimum" : 60,
      "maximum" : 525600
    },
    "MinIdleTimeoutInMinutes" : {
      "type" : "integer",
      "description" : "The minimum idle timeout value set in minutes",
      "minimum" : 60,
      "maximum" : 525600
    },
    "MaxIdleTimeoutInMinutes" : {
      "type" : "integer",
      "description" : "The maximum idle timeout value set in minutes",
      "minimum" : 60,
      "maximum" : 525600
    },
    "CodeRepository" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "RepositoryUrl" : {
          "type" : "string",
          "description" : "A CodeRepository (valid URL) to be used within Jupyter's Git extension.",
          "maxLength" : 256,
          "pattern" : "^https://([.\\-_a-zA-Z0-9]+/?){3,1016}$"
        }
      },
      "required" : [ "RepositoryUrl" ]
    },
    "DefaultSpaceStorageSettings" : {
      "type" : "object",
      "description" : "Default storage settings for a space.",
      "additionalProperties" : false,
      "properties" : {
        "DefaultEbsStorageSettings" : {
          "$ref" : "#/definitions/DefaultEbsStorageSettings"
        }
      }
    },
    "DefaultEbsStorageSettings" : {
      "type" : "object",
      "description" : "Properties related to the Amazon Elastic Block Store volume.",
      "additionalProperties" : false,
      "properties" : {
        "DefaultEbsVolumeSizeInGb" : {
          "description" : "Default size of the Amazon EBS volume in Gb",
          "$ref" : "#/definitions/SpaceEbsVolumeSizeInGb"
        },
        "MaximumEbsVolumeSizeInGb" : {
          "description" : "Maximum size of the Amazon EBS volume in Gb. Must be greater than or equal to the DefaultEbsVolumeSizeInGb.",
          "$ref" : "#/definitions/SpaceEbsVolumeSizeInGb"
        }
      },
      "required" : [ "DefaultEbsVolumeSizeInGb", "MaximumEbsVolumeSizeInGb" ]
    },
    "SpaceEbsVolumeSizeInGb" : {
      "type" : "integer",
      "minimum" : 5,
      "maximum" : 16384
    },
    "CodeEditorAppSettings" : {
      "type" : "object",
      "description" : "The CodeEditor app settings.",
      "additionalProperties" : false,
      "properties" : {
        "DefaultResourceSpec" : {
          "$ref" : "#/definitions/ResourceSpec",
          "description" : "The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app."
        },
        "LifecycleConfigArns" : {
          "type" : "array",
          "description" : "A list of LifecycleConfigArns available for use with CodeEditor apps.",
          "uniqueItems" : false,
          "minItems" : 0,
          "maxItems" : 30,
          "items" : {
            "$ref" : "#/definitions/StudioLifecycleConfigArn"
          }
        },
        "CustomImages" : {
          "type" : "array",
          "description" : "A list of custom images for use for CodeEditor apps.",
          "uniqueItems" : false,
          "minItems" : 0,
          "maxItems" : 200,
          "items" : {
            "$ref" : "#/definitions/CustomImage"
          }
        },
        "AppLifecycleManagement" : {
          "$ref" : "#/definitions/AppLifecycleManagement"
        },
        "BuiltInLifecycleConfigArn" : {
          "type" : "string",
          "description" : "The lifecycle configuration that runs before the default lifecycle configuration.",
          "maxLength" : 256,
          "pattern" : "^(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*|None)$"
        }
      }
    },
    "StudioLifecycleConfigArn" : {
      "type" : "string",
      "description" : "The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.",
      "maxLength" : 256,
      "pattern" : "^(arn:aws[a-z\\-]*:sagemaker:[a-z0-9\\-]*:[0-9]{12}:studio-lifecycle-config/.*|None)$"
    },
    "CustomPosixUserConfig" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "Uid" : {
          "type" : "integer",
          "minimum" : 10000,
          "maximum" : 4000000
        },
        "Gid" : {
          "type" : "integer",
          "minimum" : 1001,
          "maximum" : 4000000
        }
      },
      "required" : [ "Uid", "Gid" ]
    },
    "CustomFileSystemConfig" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "EFSFileSystemConfig" : {
          "$ref" : "#/definitions/EFSFileSystemConfig"
        },
        "FSxLustreFileSystemConfig" : {
          "$ref" : "#/definitions/FSxLustreFileSystemConfig"
        },
        "S3FileSystemConfig" : {
          "$ref" : "#/definitions/S3FileSystemConfig"
        }
      }
    },
    "EFSFileSystemConfig" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "FileSystemPath" : {
          "type" : "string",
          "pattern" : "^\\/\\S*$",
          "minLength" : 1,
          "maxLength" : 256
        },
        "FileSystemId" : {
          "type" : "string",
          "minLength" : 11,
          "maxLength" : 21,
          "pattern" : "^(fs-[0-9a-f]{8,})$"
        }
      },
      "required" : [ "FileSystemId" ]
    },
    "FSxLustreFileSystemConfig" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "FileSystemPath" : {
          "type" : "string",
          "pattern" : "^\\/\\S*$",
          "minLength" : 1,
          "maxLength" : 256
        },
        "FileSystemId" : {
          "type" : "string",
          "minLength" : 11,
          "maxLength" : 21,
          "pattern" : "^(fs-[0-9a-f]{8,})$"
        }
      },
      "required" : [ "FileSystemId" ]
    },
    "S3FileSystemConfig" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "MountPath" : {
          "type" : "string",
          "minLength" : 0,
          "maxLength" : 1024
        },
        "S3Uri" : {
          "type" : "string",
          "pattern" : "(s3)://([^/]+)/?(.*)",
          "minLength" : 0,
          "maxLength" : 1024
        }
      }
    },
    "CustomImage" : {
      "type" : "object",
      "description" : "A custom SageMaker image.",
      "additionalProperties" : false,
      "properties" : {
        "AppImageConfigName" : {
          "type" : "string",
          "description" : "The Name of the AppImageConfig.",
          "maxLength" : 63,
          "pattern" : "^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}"
        },
        "ImageName" : {
          "type" : "string",
          "description" : "The name of the CustomImage. Must be unique to your account.",
          "maxLength" : 63,
          "pattern" : "^[a-zA-Z0-9]([-.]?[a-zA-Z0-9]){0,62}$"
        },
        "ImageVersionNumber" : {
          "type" : "integer",
          "description" : "The version number of the CustomImage.",
          "minimum" : 0
        }
      },
      "required" : [ "AppImageConfigName", "ImageName" ]
    },
    "SharingSettings" : {
      "type" : "object",
      "description" : "Specifies options when sharing an Amazon SageMaker Studio notebook. These settings are specified as part of DefaultUserSettings when the CreateDomain API is called, and as part of UserSettings when the CreateUserProfile API is called.",
      "additionalProperties" : false,
      "properties" : {
        "NotebookOutputOption" : {
          "type" : "string",
          "description" : "Whether to include the notebook cell output when sharing the notebook. The default is Disabled.",
          "enum" : [ "Allowed", "Disabled" ]
        },
        "S3KmsKeyId" : {
          "type" : "string",
          "description" : "When NotebookOutputOption is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.",
          "maxLength" : 2048,
          "pattern" : ".*"
        },
        "S3OutputPath" : {
          "type" : "string",
          "description" : "When NotebookOutputOption is Allowed, the Amazon S3 bucket used to store the shared notebook snapshots.",
          "maxLength" : 1024,
          "pattern" : "^(https|s3)://([^/]+)/?(.*)$"
        }
      }
    },
    "Tag" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "Value" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 128
        },
        "Key" : {
          "type" : "string",
          "minLength" : 1,
          "maxLength" : 128
        }
      },
      "required" : [ "Key", "Value" ]
    },
    "RStudioServerProAppSettings" : {
      "type" : "object",
      "description" : "A collection of settings that configure user interaction with the RStudioServerPro app.",
      "additionalProperties" : false,
      "properties" : {
        "AccessStatus" : {
          "type" : "string",
          "description" : "Indicates whether the current user has access to the RStudioServerPro app.",
          "enum" : [ "ENABLED", "DISABLED" ]
        },
        "UserGroup" : {
          "type" : "string",
          "description" : "The level of permissions that the user has within the RStudioServerPro app. This value defaults to User. The Admin value allows the user access to the RStudio Administrative Dashboard.",
          "enum" : [ "R_STUDIO_ADMIN", "R_STUDIO_USER" ]
        }
      }
    },
    "StudioWebPortalSettings" : {
      "type" : "object",
      "description" : "Studio settings. If these settings are applied on a user level, they take priority over the settings applied on a domain level.",
      "additionalProperties" : false,
      "properties" : {
        "HiddenMlTools" : {
          "type" : "array",
          "description" : "The machine learning tools that are hidden from the Studio left navigation pane.",
          "insertionOrder" : false,
          "uniqueItems" : true,
          "minItems" : 0,
          "items" : {
            "$ref" : "#/definitions/MlTools"
          }
        },
        "HiddenAppTypes" : {
          "type" : "array",
          "description" : "Applications supported in Studio that are hidden from the Studio left navigation pane.",
          "insertionOrder" : false,
          "uniqueItems" : true,
          "minItems" : 0,
          "items" : {
            "$ref" : "#/definitions/AppType"
          }
        },
        "HiddenInstanceTypes" : {
          "type" : "array",
          "description" : "The instance types you are hiding from the Studio user interface.",
          "insertionOrder" : false,
          "uniqueItems" : true,
          "minItems" : 0,
          "items" : {
            "$ref" : "#/definitions/AppInstanceType"
          }
        },
        "HiddenSageMakerImageVersionAliases" : {
          "type" : "array",
          "description" : "The version aliases you are hiding from the Studio user interface.",
          "insertionOrder" : false,
          "uniqueItems" : true,
          "minItems" : 0,
          "maxItems" : 5,
          "items" : {
            "$ref" : "#/definitions/HiddenSageMakerImage"
          }
        }
      }
    },
    "MlTools" : {
      "type" : "string",
      "enum" : [ "DataWrangler", "FeatureStore", "EmrClusters", "AutoMl", "Experiments", "Training", "ModelEvaluation", "Pipelines", "Models", "JumpStart", "InferenceRecommender", "Endpoints", "Projects", "InferenceOptimization", "HyperPodClusters", "Comet", "DeepchecksLLMEvaluation", "Fiddler", "LakeraGuard", "PerformanceEvaluation" ]
    },
    "AppType" : {
      "type" : "string",
      "enum" : [ "JupyterServer", "TensorBoard", "RStudioServerPro", "JupyterLab", "CodeEditor", "DetailedProfiler", "Canvas" ]
    },
    "AppInstanceType" : {
      "type" : "string",
      "description" : "The instance type that the image version runs on.",
      "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", "ml.p5.4xlarge", "ml.p6-b200.48xlarge" ]
    },
    "HiddenSageMakerImage" : {
      "type" : "object",
      "additionalProperties" : false,
      "properties" : {
        "SageMakerImageName" : {
          "type" : "string",
          "description" : "The SageMaker image name that you are hiding from the Studio user interface.",
          "enum" : [ "sagemaker_distribution" ]
        },
        "VersionAliases" : {
          "type" : "array",
          "uniqueItems" : false,
          "insertionOrder" : false,
          "maxItems" : 20,
          "items" : {
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 128,
            "pattern" : "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$"
          }
        }
      }
    },
    "EmrSettings" : {
      "type" : "object",
      "description" : "Configuration parameters specifying IAM roles assumed by SageMaker's execution role and cluster instances.",
      "additionalProperties" : false,
      "properties" : {
        "AssumableRoleArns" : {
          "type" : "array",
          "description" : "An array of Amazon Resource Names (ARNs) of the IAM roles that the execution role of SageMaker can assume.",
          "uniqueItems" : false,
          "minItems" : 0,
          "maxItems" : 5,
          "items" : {
            "type" : "string",
            "minLength" : 20,
            "maxLength" : 2048,
            "pattern" : "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$"
          }
        },
        "ExecutionRoleArns" : {
          "type" : "array",
          "description" : "An array of ARNs of IAM roles used by EMR cluster instances or job execution environments.",
          "uniqueItems" : false,
          "minItems" : 0,
          "maxItems" : 5,
          "items" : {
            "type" : "string",
            "minLength" : 20,
            "maxLength" : 2048,
            "pattern" : "^arn:aws[a-z\\-]*:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+$"
          }
        }
      }
    }
  },
  "required" : [ "DomainId", "UserProfileName" ],
  "createOnlyProperties" : [ "/properties/DomainId", "/properties/UserProfileName", "/properties/UserSettings/RStudioServerProAppSettings/AccessStatus", "/properties/SingleSignOnUserIdentifier", "/properties/SingleSignOnUserValue", "/properties/UserSettings/RStudioServerProAppSettings/UserGroup" ],
  "primaryIdentifier" : [ "/properties/UserProfileName", "/properties/DomainId" ],
  "readOnlyProperties" : [ "/properties/UserProfileArn" ],
  "tagging" : {
    "taggable" : true,
    "tagOnCreate" : true,
    "tagUpdatable" : true,
    "cloudFormationSystemTags" : false,
    "tagProperty" : "/properties/Tags",
    "permissions" : [ "sagemaker:AddTags", "sagemaker:ListTags", "sagemaker:DeleteTags" ]
  },
  "handlers" : {
    "create" : {
      "permissions" : [ "sagemaker:CreateUserProfile", "sagemaker:DescribeUserProfile", "sagemaker:DescribeImage", "sagemaker:DescribeImageVersion", "sagemaker:ListTags", "iam:PassRole", "sso:DescribeInstance", "sso:ListInstances", "identitystore:DescribeUser", "identitystore:ListUsers", "sagemaker:AddTags" ],
      "timeoutInMinutes" : 30
    },
    "read" : {
      "permissions" : [ "sagemaker:DescribeUserProfile", "sagemaker:ListTags", "sso:DescribeInstance", "sso:ListInstances", "identitystore:DescribeUser", "identitystore:ListUsers" ]
    },
    "update" : {
      "permissions" : [ "sagemaker:UpdateUserProfile", "sagemaker:DescribeUserProfile", "sagemaker:DescribeImage", "sagemaker:DescribeImageVersion", "sagemaker:AddTags", "sagemaker:DeleteTags", "sagemaker:ListTags", "iam:PassRole", "sso:DescribeInstance", "sso:ListInstances", "identitystore:DescribeUser", "identitystore:ListUsers" ]
    },
    "delete" : {
      "permissions" : [ "sagemaker:DeleteUserProfile", "sagemaker:DescribeUserProfile", "sagemaker:AddTags", "sagemaker:ListTags", "sagemaker:DeleteTags", "sso:DescribeInstance", "sso:ListInstances", "identitystore:DescribeUser", "identitystore:ListUsers" ]
    },
    "list" : {
      "permissions" : [ "sagemaker:ListUserProfiles", "sagemaker:ListTags", "sso:DescribeInstance", "sso:ListInstances", "identitystore:DescribeUser", "identitystore:ListUsers" ]
    }
  }
}