{
  "description": "UserProfile is the Schema for the UserProfiles API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "UserProfileSpec defines the desired state of UserProfile.",
      "properties": {
        "domainID": {
          "description": "The ID of the associated Domain.\n\nRegex Pattern: `^d-(-*[a-z0-9]){1,61}$`",
          "type": "string"
        },
        "singleSignOnUserIdentifier": {
          "description": "A specifier for the type of value specified in SingleSignOnUserValue. Currently,\nthe only supported value is \"UserName\". If the Domain's AuthMode is IAM Identity\nCenter, this field is required. If the Domain's AuthMode is not IAM Identity\nCenter, this field cannot be specified.\n\nRegex Pattern: `^UserName$`",
          "type": "string"
        },
        "singleSignOnUserValue": {
          "description": "The username of the associated Amazon Web Services Single Sign-On User for\nthis UserProfile. If the Domain's AuthMode is IAM Identity Center, this field\nis required, and must match a valid username of a user in your directory.\nIf the Domain's AuthMode is not IAM Identity Center, this field cannot be\nspecified.",
          "type": "string"
        },
        "tags": {
          "description": "Each tag consists of a key and an optional value. Tag keys must be unique\nper resource.\n\nTags that you specify for the User Profile are also added to all Apps that\nthe User Profile launches.",
          "items": {
            "description": "A tag object that consists of a key and an optional value, used to manage\nmetadata for SageMaker Amazon Web Services resources.\n\nYou can add tags to notebook instances, training jobs, hyperparameter tuning\njobs, batch transform jobs, models, labeling jobs, work teams, endpoint configurations,\nand endpoints. For more information on adding tags to SageMaker resources,\nsee AddTags (https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html).\n\nFor more information on adding metadata to your Amazon Web Services resources\nwith tagging, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html).\nFor advice on best practices for managing Amazon Web Services resources with\ntagging, see Tagging Best Practices: Implement an Effective Amazon Web Services\nResource Tagging Strategy (https://d1.awsstatic.com/whitepapers/aws-tagging-best-practices.pdf).",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "userProfileName": {
          "description": "A name for the UserProfile. This value is not case sensitive.\n\nRegex Pattern: `^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}$`",
          "type": "string"
        },
        "userSettings": {
          "description": "A collection of settings.",
          "properties": {
            "codeEditorAppSettings": {
              "description": "The Code Editor application settings.\n\nFor more information about Code Editor, see Get started with Code Editor\nin Amazon SageMaker (https://docs.aws.amazon.com/sagemaker/latest/dg/code-editor.html).",
              "properties": {
                "defaultResourceSpec": {
                  "description": "Specifies the ARN's of a SageMaker AI image and SageMaker AI image version,\nand the instance type that the version runs on.\n\nWhen both SageMakerImageVersionArn and SageMakerImageArn are passed, SageMakerImageVersionArn\nis used. Any updates to SageMakerImageArn will not take effect if SageMakerImageVersionArn\nalready exists in the ResourceSpec because SageMakerImageVersionArn always\ntakes precedence. To clear the value set for SageMakerImageVersionArn, pass\nNone as the value.",
                  "properties": {
                    "instanceType": {
                      "type": "string"
                    },
                    "lifecycleConfigARN": {
                      "type": "string"
                    },
                    "sageMakerImageARN": {
                      "type": "string"
                    },
                    "sageMakerImageVersionARN": {
                      "type": "string"
                    },
                    "sageMakerImageVersionAlias": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "lifecycleConfigARNs": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "customFileSystemConfigs": {
              "items": {
                "description": "The settings for assigning a custom file system to a user profile or space\nfor an Amazon SageMaker AI Domain. Permitted users can access this file system\nin Amazon SageMaker AI Studio.",
                "properties": {
                  "efsFileSystemConfig": {
                    "description": "The settings for assigning a custom Amazon EFS file system to a user profile\nor space for an Amazon SageMaker AI Domain.",
                    "properties": {
                      "fileSystemID": {
                        "type": "string"
                      },
                      "fileSystemPath": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "fSxLustreFileSystemConfig": {
                    "description": "The settings for assigning a custom Amazon FSx for Lustre file system to\na user profile or space for an Amazon SageMaker Domain.",
                    "properties": {
                      "fileSystemID": {
                        "type": "string"
                      },
                      "fileSystemPath": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "s3FileSystemConfig": {
                    "description": "Configuration for the custom Amazon S3 file system.",
                    "properties": {
                      "mountPath": {
                        "type": "string"
                      },
                      "s3URI": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "customPosixUserConfig": {
              "description": "Details about the POSIX identity that is used for file system operations.",
              "properties": {
                "gid": {
                  "format": "int64",
                  "type": "integer"
                },
                "uid": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "defaultLandingURI": {
              "type": "string"
            },
            "executionRole": {
              "type": "string"
            },
            "jupyterLabAppSettings": {
              "description": "The settings for the JupyterLab application.",
              "properties": {
                "codeRepositories": {
                  "items": {
                    "description": "A Git repository that SageMaker AI automatically displays to users for cloning\nin the JupyterServer application.",
                    "properties": {
                      "repositoryURL": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "customImages": {
                  "items": {
                    "description": "A custom SageMaker AI image. For more information, see Bring your own SageMaker\nAI image (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html).",
                    "properties": {
                      "appImageConfigName": {
                        "type": "string"
                      },
                      "imageName": {
                        "type": "string"
                      },
                      "imageVersionNumber": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "defaultResourceSpec": {
                  "description": "Specifies the ARN's of a SageMaker AI image and SageMaker AI image version,\nand the instance type that the version runs on.\n\nWhen both SageMakerImageVersionArn and SageMakerImageArn are passed, SageMakerImageVersionArn\nis used. Any updates to SageMakerImageArn will not take effect if SageMakerImageVersionArn\nalready exists in the ResourceSpec because SageMakerImageVersionArn always\ntakes precedence. To clear the value set for SageMakerImageVersionArn, pass\nNone as the value.",
                  "properties": {
                    "instanceType": {
                      "type": "string"
                    },
                    "lifecycleConfigARN": {
                      "type": "string"
                    },
                    "sageMakerImageARN": {
                      "type": "string"
                    },
                    "sageMakerImageVersionARN": {
                      "type": "string"
                    },
                    "sageMakerImageVersionAlias": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "lifecycleConfigARNs": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "jupyterServerAppSettings": {
              "description": "The JupyterServer app settings.",
              "properties": {
                "codeRepositories": {
                  "items": {
                    "description": "A Git repository that SageMaker AI automatically displays to users for cloning\nin the JupyterServer application.",
                    "properties": {
                      "repositoryURL": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "defaultResourceSpec": {
                  "description": "Specifies the ARN's of a SageMaker AI image and SageMaker AI image version,\nand the instance type that the version runs on.\n\nWhen both SageMakerImageVersionArn and SageMakerImageArn are passed, SageMakerImageVersionArn\nis used. Any updates to SageMakerImageArn will not take effect if SageMakerImageVersionArn\nalready exists in the ResourceSpec because SageMakerImageVersionArn always\ntakes precedence. To clear the value set for SageMakerImageVersionArn, pass\nNone as the value.",
                  "properties": {
                    "instanceType": {
                      "type": "string"
                    },
                    "lifecycleConfigARN": {
                      "type": "string"
                    },
                    "sageMakerImageARN": {
                      "type": "string"
                    },
                    "sageMakerImageVersionARN": {
                      "type": "string"
                    },
                    "sageMakerImageVersionAlias": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "lifecycleConfigARNs": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "kernelGatewayAppSettings": {
              "description": "The KernelGateway app settings.",
              "properties": {
                "customImages": {
                  "items": {
                    "description": "A custom SageMaker AI image. For more information, see Bring your own SageMaker\nAI image (https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html).",
                    "properties": {
                      "appImageConfigName": {
                        "type": "string"
                      },
                      "imageName": {
                        "type": "string"
                      },
                      "imageVersionNumber": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "defaultResourceSpec": {
                  "description": "Specifies the ARN's of a SageMaker AI image and SageMaker AI image version,\nand the instance type that the version runs on.\n\nWhen both SageMakerImageVersionArn and SageMakerImageArn are passed, SageMakerImageVersionArn\nis used. Any updates to SageMakerImageArn will not take effect if SageMakerImageVersionArn\nalready exists in the ResourceSpec because SageMakerImageVersionArn always\ntakes precedence. To clear the value set for SageMakerImageVersionArn, pass\nNone as the value.",
                  "properties": {
                    "instanceType": {
                      "type": "string"
                    },
                    "lifecycleConfigARN": {
                      "type": "string"
                    },
                    "sageMakerImageARN": {
                      "type": "string"
                    },
                    "sageMakerImageVersionARN": {
                      "type": "string"
                    },
                    "sageMakerImageVersionAlias": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "lifecycleConfigARNs": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "rStudioServerProAppSettings": {
              "description": "A collection of settings that configure user interaction with the RStudioServerPro\napp.",
              "properties": {
                "accessStatus": {
                  "type": "string"
                },
                "userGroup": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "securityGroups": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "sharingSettings": {
              "description": "Specifies options for sharing Amazon SageMaker AI Studio notebooks. These\nsettings are specified as part of DefaultUserSettings when the CreateDomain\nAPI is called, and as part of UserSettings when the CreateUserProfile API\nis called. When SharingSettings is not specified, notebook sharing isn't\nallowed.",
              "properties": {
                "notebookOutputOption": {
                  "type": "string"
                },
                "s3KMSKeyID": {
                  "type": "string"
                },
                "s3OutputPath": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "spaceStorageSettings": {
              "description": "The default storage settings for a space.",
              "properties": {
                "defaultEBSStorageSettings": {
                  "description": "A collection of default EBS storage settings that apply to spaces created\nwithin a domain or user profile.",
                  "properties": {
                    "defaultEBSVolumeSizeInGb": {
                      "format": "int64",
                      "type": "integer"
                    },
                    "maximumEBSVolumeSizeInGb": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "studioWebPortal": {
              "type": "string"
            },
            "tensorBoardAppSettings": {
              "description": "The TensorBoard app settings.",
              "properties": {
                "defaultResourceSpec": {
                  "description": "Specifies the ARN's of a SageMaker AI image and SageMaker AI image version,\nand the instance type that the version runs on.\n\nWhen both SageMakerImageVersionArn and SageMakerImageArn are passed, SageMakerImageVersionArn\nis used. Any updates to SageMakerImageArn will not take effect if SageMakerImageVersionArn\nalready exists in the ResourceSpec because SageMakerImageVersionArn always\ntakes precedence. To clear the value set for SageMakerImageVersionArn, pass\nNone as the value.",
                  "properties": {
                    "instanceType": {
                      "type": "string"
                    },
                    "lifecycleConfigARN": {
                      "type": "string"
                    },
                    "sageMakerImageARN": {
                      "type": "string"
                    },
                    "sageMakerImageVersionARN": {
                      "type": "string"
                    },
                    "sageMakerImageVersionAlias": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "domainID",
        "userProfileName"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "UserProfileStatus defines the observed state of UserProfile",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member\nthat is used to contain resource sync state, account ownership,\nconstructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a\nglobally-unique identifier and is set only by the ACK service controller\nonce the controller has orchestrated the creation of the resource OR\nwhen it has verified that an \"adopted\" resource (a resource where the\nARN annotation was set by the Kubernetes user on the CR) exists and\nmatches the supplied CR's Spec field values.\nhttps://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the\nbackend AWS service API resource.",
              "type": "string"
            },
            "region": {
              "description": "Region is the AWS region in which the resource exists or will exist.",
              "type": "string"
            }
          },
          "required": [
            "ownerAccountID",
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "All CRs managed by ACK have a common `Status.Conditions` member that\ncontains a collection of `ackv1alpha1.Condition` objects that describe\nthe various terminal states of the CR and its backend AWS service API\nresource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service\ncontrollers to indicate terminal states  of the CR and its backend AWS\nservice API resource",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the Condition",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "status": {
          "description": "The status.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
