--- name: metabase_create_user kind: function lang: go domain: infra version: "1.0.0" purity: impure signature: "func MetabaseCreateUser(client MetabaseClient, firstName, lastName, email, password string, groupIDs []int) (map[string]any, error)" description: "Crea un nuevo usuario en Metabase. Si no se provee password, Metabase envia email de invitacion. Requiere permisos de superusuario. Endpoint: POST /api/user." tags: [metabase, user, create, api] uses_functions: [] uses_types: [MetabaseClient_go_infra] returns: [] returns_optional: false error_type: "error_go_core" imports: [fmt] tested: false tests: [] test_file_path: "" file_path: "functions/infra/metabase_create_user.go" --- ## Ejemplo ```go // Crear usuario con password user, err := MetabaseCreateUser(client, "John", "Doe", "john@example.com", "securePass123", nil) // Crear usuario sin password (envia invitacion por email) user, err := MetabaseCreateUser(client, "Jane", "Smith", "jane@example.com", "", []int{1, 3}) ``` ## Notas ### Parametros para un LLM | Parametro | Tipo | Requerido | Descripcion | |-----------|------|-----------|-------------| | client | MetabaseClient | si | Cliente autenticado con permisos admin | | firstName | string | si | Nombre del usuario | | lastName | string | si | Apellido del usuario | | email | string | si | Email unico del usuario | | password | string | no | Password. Vacio = Metabase envia invitacion | | groupIDs | []int | no | IDs de grupos. nil = solo grupo default | El email debe ser unico. Si ya existe, retorna error 400. Retorna el objeto usuario creado como map (mismos campos que MetabaseGetUser).